@dsh-workbench/core 0.1.7 → 0.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 (31) hide show
  1. package/client.js +858 -408
  2. package/dist/client/client.body.js +858 -408
  3. package/dist/client/index.js +858 -408
  4. package/dist/host/index.js +154 -6
  5. package/dist/types/app/client.d.ts +78 -15
  6. package/dist/types/app/layouts/env-gate/__tests__/gate-deadline.test.d.ts +1 -0
  7. package/dist/types/app/layouts/env-gate/gate-deadline.d.ts +4 -0
  8. package/dist/types/app/layouts/rightbar/ColumnSwitch.d.ts +10 -0
  9. package/dist/types/app/layouts/rightbar/MarketStates.d.ts +7 -0
  10. package/dist/types/app/layouts/rightbar/MarketView.d.ts +2 -1
  11. package/dist/types/app/layouts/rightbar/Rightbar.d.ts +3 -1
  12. package/dist/types/app/layouts/rightbar/SharedSection.d.ts +11 -0
  13. package/dist/types/app/layouts/rightbar/__tests__/market-change.test.d.ts +1 -0
  14. package/dist/types/app/layouts/rightbar/__tests__/market-live.test.d.ts +1 -0
  15. package/dist/types/app/layouts/rightbar/__tests__/market-settle.test.d.ts +1 -0
  16. package/dist/types/app/layouts/rightbar/dsh-column-source.d.ts +6 -0
  17. package/dist/types/app/layouts/rightbar/dsh-column-source.test.d.ts +1 -0
  18. package/dist/types/app/layouts/rightbar/market-change.d.ts +4 -0
  19. package/dist/types/app/layouts/rightbar/market-rows.d.ts +3 -1
  20. package/dist/types/app/layouts/rightbar/market-settle.d.ts +2 -0
  21. package/dist/types/app/layouts/rightbar/market-view-text.d.ts +10 -0
  22. package/dist/types/app/layouts/rightbar/presentation.d.ts +9 -0
  23. package/dist/types/app/layouts/rightbar/presentation.test.d.ts +1 -0
  24. package/dist/types/app/layouts/rightbar/store.d.ts +9 -0
  25. package/dist/types/modules/panels/__tests__/market-registries.test.d.ts +1 -0
  26. package/dist/types/modules/panels/model/market.d.ts +2 -0
  27. package/dist/types/shared/api/host/__tests__/profile-registries.test.d.ts +1 -0
  28. package/dist/types/shared/api/host/profile-registries.d.ts +21 -0
  29. package/docs/OPERATIONS.md +2 -0
  30. package/package.json +2 -2
  31. package/dist/types/app/layouts/rightbar/ExpandButton.d.ts +0 -9
@@ -428,6 +428,7 @@ var PANEL_POLL_MS = 2e3;
428
428
  var DEFAULT_WORKSPACE_TITLE = "default-workspace";
429
429
  var STORAGE_KEY_PROJECT = "dsh-workbench.project";
430
430
  var STORAGE_KEY_RIGHTBAR = "dsh-workbench.rightbar.expanded";
431
+ var STORAGE_KEY_RIGHTBAR_COLUMN = "dsh-workbench.rightbar.column";
431
432
  var LOCALE_NS = "workbench";
432
433
  var LOCALES = ["zh", "en"];
433
434
  //#endregion
@@ -476,11 +477,46 @@ var h = react.createElement;
476
477
  var Fragment = react.Fragment;
477
478
  var useState = react.useState;
478
479
  var useEffect = react.useEffect;
480
+ var useLayoutEffect = react.useLayoutEffect;
479
481
  var useMemo = react.useMemo;
480
482
  var useCallback = react.useCallback;
481
483
  var useRef = react.useRef;
482
484
  var useSyncExternalStore = react.useSyncExternalStore;
483
485
  //#endregion
486
+ //#region ../shared/dist/components/Activity.js
487
+ function ActivityBlock({ head, children }) {
488
+ return h("div", { className: "wb-activityBlock" }, head === void 0 ? null : h("div", { className: "wb-activityBlockHead" }, head), children);
489
+ }
490
+ function ActivityLine({ dot, text, at, actions }) {
491
+ return h("div", { className: "wb-activityLine" }, dot, h("span", { className: "wb-activityLineText" }, text), at === void 0 ? null : h("span", { className: "wb-activityLineAt" }, at), actions === void 0 ? null : h("span", { className: "wb-activityLineActions" }, actions));
492
+ }
493
+ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
494
+ const tip = hint ?? label;
495
+ if (href !== void 0) return h("a", {
496
+ className: "wb-iconButton",
497
+ href,
498
+ target: "_blank",
499
+ rel: "noreferrer noopener",
500
+ title: tip,
501
+ "aria-label": label
502
+ }, icon);
503
+ return h(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
504
+ side: "bottom",
505
+ align: "end",
506
+ gap: 6,
507
+ portal: true,
508
+ label: tip
509
+ }, h(_deepseek_ai_dsh_client_ui_primitives.Button, {
510
+ type: "button",
511
+ variant: "ghost",
512
+ size: "sm",
513
+ className: failed === true ? "wb-iconButton wb-activityActionFailed" : "wb-iconButton",
514
+ "aria-label": label,
515
+ icon,
516
+ onClick
517
+ }));
518
+ }
519
+ //#endregion
484
520
  //#region ../shared/dist/components/ApprovalDetail.js
485
521
  function callOf(snapshot, callId) {
486
522
  if (callId === void 0) return void 0;
@@ -524,6 +560,14 @@ function ApprovalDetail(props) {
524
560
  });
525
561
  }
526
562
  //#endregion
563
+ //#region ../shared/dist/components/ApprovalPlan.js
564
+ function ApprovalPlan({ rows, hint, warn, children }) {
565
+ return h("div", { className: "wb-approvalPlan" }, hint === void 0 ? null : h("p", { className: "wb-approvalHint" }, hint), h("dl", { className: "wb-approvalRows" }, rows.map((row, index) => h("div", {
566
+ className: "wb-approvalRow",
567
+ key: String(index)
568
+ }, h("dt", { className: "wb-approvalLabel" }, row.label), h("dd", { className: "wb-approvalValue" }, row.value)))), children, warn === void 0 ? null : h("p", { className: "wb-approvalWarn" }, warn));
569
+ }
570
+ //#endregion
527
571
  //#region ../shared/dist/components/CardHead.js
528
572
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
529
573
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
@@ -572,6 +616,17 @@ function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onTog
572
616
  })));
573
617
  }
574
618
  //#endregion
619
+ //#region ../shared/dist/components/Card.js
620
+ function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
621
+ return h("section", { className: "wb-card" }, head === void 0 ? h(CardHead, {
622
+ t,
623
+ title,
624
+ refreshing,
625
+ onRefresh,
626
+ meta
627
+ }) : head, h("div", { className: "wb-cardBody" }, children));
628
+ }
629
+ //#endregion
575
630
  //#region ../shared/dist/components/ChoiceGroup.js
576
631
  function ChoiceGroup({ label, name, value, options, disabled, onChange }) {
577
632
  return h("div", {
@@ -658,6 +713,12 @@ function MockStrip({ mocks, index, onPick, note, real }) {
658
713
  }, mock.label)));
659
714
  }
660
715
  //#endregion
716
+ //#region ../shared/dist/components/Note.js
717
+ function Note({ tone = "muted", as, children }) {
718
+ const className = tone === "problem" ? "wb-problem" : "wb-note";
719
+ return as === "span" ? h("span", { className }, children) : h("p", { className }, children);
720
+ }
721
+ //#endregion
661
722
  //#region ../shared/dist/components/ResourceStates.js
662
723
  function SkeletonRows({ rows = 4 }) {
663
724
  return h("div", {
@@ -685,6 +746,14 @@ function EmptyState({ text, icon = null, compact = false }) {
685
746
  });
686
747
  }
687
748
  //#endregion
749
+ //#region ../shared/dist/components/Rows.js
750
+ function Rows({ children }) {
751
+ return h("div", { className: "wb-rows" }, children);
752
+ }
753
+ function Row({ label, value }) {
754
+ return h("div", { className: "wb-row" }, h("span", { className: "wb-rowKey" }, label), h("span", { className: "wb-rowValue" }, value));
755
+ }
756
+ //#endregion
688
757
  //#region ../shared/dist/components/SaveBar.js
689
758
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
690
759
  return h("div", { className: "wb-formActions" }, h(_deepseek_ai_dsh_client_ui_primitives.Button, {
@@ -702,6 +771,25 @@ function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
702
771
  }, busy ? labels.saving : labels.save));
703
772
  }
704
773
  //#endregion
774
+ //#region ../shared/dist/components/SettingsSection.js
775
+ function SettingsSection({ label, title, action, children }) {
776
+ return h("section", {
777
+ className: "wb-settings",
778
+ role: "group",
779
+ "aria-label": label
780
+ }, h("header", { className: "wb-settingsHead" }, h("span", { className: "wb-settingsTitle" }, title), action), children);
781
+ }
782
+ //#endregion
783
+ //#region ../shared/dist/components/Stack.js
784
+ function Stack({ children }) {
785
+ return h("div", { className: "wb-stack" }, children);
786
+ }
787
+ //#endregion
788
+ //#region ../shared/dist/components/StateBlock.js
789
+ function StateBlock({ title, dot, hint, actions, resolving, children }) {
790
+ return h("div", { className: "wb-stateBlock" }, title === void 0 && dot === void 0 ? null : h("p", { className: "wb-stateBlockTitle" }, dot, title), resolving === void 0 ? null : h("p", { className: "wb-stateBlockResolving" }, resolving), hint === void 0 ? null : h("p", { className: "wb-stateBlockHint" }, hint), children, actions === void 0 ? null : h("div", { className: "wb-stateBlockActions" }, actions));
791
+ }
792
+ //#endregion
705
793
  //#region ../shared/dist/components/TextField.js
706
794
  function TextField({ invalid = false, className, ...rest }) {
707
795
  return h("input", {
@@ -793,6 +881,20 @@ function IconModules({ size = 16 }) {
793
881
  strokeWidth: "1.2"
794
882
  }));
795
883
  }
884
+ function IconPanelScreen({ size = 16 }) {
885
+ return h("svg", {
886
+ width: size,
887
+ height: size,
888
+ viewBox: "0 0 1024 1024",
889
+ fill: "currentColor",
890
+ xmlns: "http://www.w3.org/2000/svg",
891
+ "aria-hidden": "true",
892
+ style: {
893
+ display: "block",
894
+ overflow: "hidden"
895
+ }
896
+ }, h("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" }));
897
+ }
796
898
  //#endregion
797
899
  //#region ../shared/dist/config/storage.js
798
900
  function readText(key) {
@@ -899,7 +1001,7 @@ var en = {
899
1001
  "panels.market.empty": "No modules available",
900
1002
  "panels.market.installedSection": "Installed",
901
1003
  "panels.market.moduleOutdated": "update available",
902
- "panels.market.moduleRestartHint": "it may need a restart after installing",
1004
+ "panels.market.moduleRestartHint": "installed but not active — restart dsh once to bring it up",
903
1005
  "panels.market.restartNeeded": "The new version is installed — restart once to pick it up.",
904
1006
  "panels.market.foot": "After installing, enable it in the panel page of that project.",
905
1007
  "panels.market.recheck": "Check for updates",
@@ -1095,13 +1197,16 @@ var en = {
1095
1197
  "rightbar.label": "Data panels",
1096
1198
  "rightbar.expand": "Expand the data panel",
1097
1199
  "rightbar.collapse": "Collapse the data panel",
1200
+ "rightbar.column.label": "Right column",
1201
+ "rightbar.column.workbench": "Workbench panel",
1202
+ "rightbar.column.dsh": "dsh panel",
1098
1203
  "rightbar.refresh": "Refresh",
1099
1204
  "rightbar.refreshing": "Refreshing…",
1100
1205
  "rightbar.updatedAt": "updated {time}",
1101
1206
  "rightbar.noProject": "The current session has no workspace",
1102
1207
  "coding.notARepo.title": "This workspace is not a Coding repository",
1103
1208
  "error.unknown": "Something went wrong",
1104
- "board.title": "Board",
1209
+ "board.title": "Workbench panel",
1105
1210
  "panel.conversation": "Conversation",
1106
1211
  "panels.label": "Global panels"
1107
1212
  };
@@ -1188,7 +1293,7 @@ var zh = {
1188
1293
  "panels.market.empty": "暂无可用模块",
1189
1294
  "panels.market.installedSection": "已装",
1190
1295
  "panels.market.moduleOutdated": "有新版",
1191
- "panels.market.moduleRestartHint": "安装完成后可能需要重启才生效",
1296
+ "panels.market.moduleRestartHint": "装好了但还没生效 —— 重启一次 dsh 就会出来",
1192
1297
  "panels.market.restartNeeded": "新版装好了,重启一次才生效。",
1193
1298
  "panels.market.foot": "装好后到那个项目的面板页勾选它,模块才会出现。",
1194
1299
  "panels.market.recheck": "重新检查更新",
@@ -1384,13 +1489,16 @@ var zh = {
1384
1489
  "rightbar.label": "数据面板",
1385
1490
  "rightbar.expand": "展开数据面板",
1386
1491
  "rightbar.collapse": "收起数据面板",
1492
+ "rightbar.column.label": "右侧栏",
1493
+ "rightbar.column.workbench": "工作台面板",
1494
+ "rightbar.column.dsh": "dsh 面板",
1387
1495
  "rightbar.refresh": "刷新",
1388
1496
  "rightbar.refreshing": "刷新中…",
1389
1497
  "rightbar.updatedAt": "更新于 {time}",
1390
1498
  "rightbar.noProject": "当前会话没有所属项目",
1391
1499
  "coding.notARepo.title": "这个项目不是 Coding 仓库",
1392
1500
  "error.unknown": "出错了",
1393
- "board.title": "看板",
1501
+ "board.title": "工作台面板",
1394
1502
  "panel.conversation": "对话",
1395
1503
  "panels.label": "全局面板"
1396
1504
  };
@@ -1497,9 +1605,14 @@ function excerpt(text, limit = 80) {
1497
1605
  var dist_exports = /* @__PURE__ */ __exportAll({
1498
1606
  ACTIONS_PREFIX: () => ACTIONS_PREFIX,
1499
1607
  API_PREFIX: () => API_PREFIX,
1608
+ ActivityAction: () => ActivityAction,
1609
+ ActivityBlock: () => ActivityBlock,
1610
+ ActivityLine: () => ActivityLine,
1500
1611
  ApprovalDetail: () => ApprovalDetail,
1612
+ ApprovalPlan: () => ApprovalPlan,
1501
1613
  CODING_ISSUES_SERVICE: () => CODING_ISSUES_SERVICE,
1502
1614
  CONTEXT_MARKER_NAME: () => CONTEXT_MARKER_NAME,
1615
+ Card: () => Card,
1503
1616
  CardHead: () => CardHead,
1504
1617
  CenteredState: () => CenteredState,
1505
1618
  ChoiceGroup: () => ChoiceGroup,
@@ -1514,6 +1627,7 @@ var dist_exports = /* @__PURE__ */ __exportAll({
1514
1627
  IconBrandMark: () => IconBrandMark,
1515
1628
  IconConversation: () => IconConversation,
1516
1629
  IconModules: () => IconModules,
1630
+ IconPanelScreen: () => IconPanelScreen,
1517
1631
  LOCALES: () => LOCALES,
1518
1632
  LOCALE_NS: () => LOCALE_NS,
1519
1633
  LONG_TASK_IDLE_MS: () => LONG_TASK_IDLE_MS,
@@ -1521,6 +1635,7 @@ var dist_exports = /* @__PURE__ */ __exportAll({
1521
1635
  LongTaskRow: () => LongTaskRow,
1522
1636
  MIN_BUSY_MS: () => 500,
1523
1637
  MockStrip: () => MockStrip,
1638
+ Note: () => Note,
1524
1639
  OPENCLI_MAX_CONCURRENT: () => 4,
1525
1640
  OPENCLI_PIN: () => OPENCLI_PIN,
1526
1641
  OPENCLI_TIMEOUT_MS: () => OPENCLI_TIMEOUT_MS,
@@ -1531,10 +1646,17 @@ var dist_exports = /* @__PURE__ */ __exportAll({
1531
1646
  PREFS_PREFIX: () => PREFS_PREFIX,
1532
1647
  PROBE_TTL_MS: () => PROBE_TTL_MS,
1533
1648
  PROVISION_PREFIX: () => PROVISION_PREFIX,
1649
+ RIGHTBAR_FULLSCREEN_WIDTH: () => 768,
1650
+ Row: () => Row,
1651
+ Rows: () => Rows,
1534
1652
  STORAGE_KEY_PROJECT: () => STORAGE_KEY_PROJECT,
1535
1653
  STORAGE_KEY_RIGHTBAR: () => STORAGE_KEY_RIGHTBAR,
1654
+ STORAGE_KEY_RIGHTBAR_COLUMN: () => STORAGE_KEY_RIGHTBAR_COLUMN,
1536
1655
  SaveBar: () => SaveBar,
1656
+ SettingsSection: () => SettingsSection,
1537
1657
  SkeletonRows: () => SkeletonRows,
1658
+ Stack: () => Stack,
1659
+ StateBlock: () => StateBlock,
1538
1660
  TextField: () => TextField,
1539
1661
  UNITS_SERVICE: () => UNITS_SERVICE,
1540
1662
  VERSION_CHECK_TIMEOUT_MS: () => VERSION_CHECK_TIMEOUT_MS,
@@ -1581,6 +1703,7 @@ var dist_exports = /* @__PURE__ */ __exportAll({
1581
1703
  unitFactScope: () => unitFactScope,
1582
1704
  useCallback: () => useCallback,
1583
1705
  useEffect: () => useEffect,
1706
+ useLayoutEffect: () => useLayoutEffect,
1584
1707
  useMemo: () => useMemo,
1585
1708
  useRef: () => useRef,
1586
1709
  useState: () => useState,
@@ -1914,6 +2037,14 @@ function shouldProbeOnEnter(input) {
1914
2037
  return input.now - input.checkedAt >= input.staleMs;
1915
2038
  }
1916
2039
  //#endregion
2040
+ //#region src/app/layouts/rightbar/market-settle.ts
2041
+ var MODULE_SETTLE_MS = 15e3;
2042
+ function holdBack(installed, roster, active, previous) {
2043
+ const pending = installed.filter((unit) => !roster.has(unit));
2044
+ const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
2045
+ return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
2046
+ }
2047
+ //#endregion
1917
2048
  //#region src/app/layouts/rightbar/market-mock.ts
1918
2049
  function installable(manifest) {
1919
2050
  return {
@@ -2505,20 +2636,21 @@ var manifest = {
2505
2636
  host: { inject: [] }
2506
2637
  };
2507
2638
  function FixtureCard({ t, onRefresh }) {
2508
- return /* @__PURE__ */ h("section", { className: "wb-card" }, /* @__PURE__ */ h(CardHead, {
2639
+ return /* @__PURE__ */ h(Card, {
2509
2640
  t,
2510
2641
  title: t(KEY.cardTitle),
2511
2642
  meta: t(KEY.cardMeta),
2512
2643
  refreshing: false,
2513
2644
  onRefresh
2514
- }), /* @__PURE__ */ h("div", { className: "wb-cardBody" }, /* @__PURE__ */ h("div", { className: "wb-rows" }, [
2645
+ }, /* @__PURE__ */ h(Rows, null, [
2515
2646
  1,
2516
2647
  2,
2517
2648
  3
2518
- ].map((n) => /* @__PURE__ */ h("div", {
2519
- className: "wb-row",
2520
- key: String(n)
2521
- }, /* @__PURE__ */ h("span", { className: "wb-rowKey" }, t(KEY.rowKey)), /* @__PURE__ */ h("span", { className: "wb-rowValue" }, t(KEY.rowValue, { n: String(n) })))))));
2649
+ ].map((n) => /* @__PURE__ */ h(Row, {
2650
+ key: String(n),
2651
+ label: t(KEY.rowKey),
2652
+ value: t(KEY.rowValue, { n: String(n) })
2653
+ }))));
2522
2654
  }
2523
2655
  var FIXTURE_FACE = {
2524
2656
  manifest,
@@ -2553,7 +2685,17 @@ var MARKET_DOT = {
2553
2685
  unchecked: "idle",
2554
2686
  unknown: "idle"
2555
2687
  };
2556
- function installedRows(modules, manifests, listed) {
2688
+ function mergeTitles(known, manifests) {
2689
+ let next = null;
2690
+ for (const manifest of manifests) {
2691
+ const titleKey = manifest.card?.titleKey;
2692
+ if (titleKey === void 0 || known.has(manifest.id)) continue;
2693
+ next ??= new Map(known);
2694
+ next.set(manifest.id, titleKey);
2695
+ }
2696
+ return next ?? known;
2697
+ }
2698
+ function installedRows(modules, manifests, listed, known) {
2557
2699
  const titles = new Map(manifests.map((manifest) => [manifest.id, manifest.card?.titleKey]));
2558
2700
  const rows = [];
2559
2701
  for (const module of modules) {
@@ -2562,8 +2704,9 @@ function installedRows(modules, manifests, listed) {
2562
2704
  const outdated = latest !== void 0 && latest !== module.installed;
2563
2705
  rows.push({
2564
2706
  id: module.unit,
2565
- titleKey: titles.get(module.unit) ?? module.pkg,
2707
+ titleKey: titles.get(module.unit) ?? known?.get(module.unit) ?? module.pkg,
2566
2708
  state: outdated ? "outdated" : "installed",
2709
+ hint: "panels.market.moduleRestartHint",
2567
2710
  pkg: module.pkg,
2568
2711
  canInstall: false,
2569
2712
  canUpdate: outdated,
@@ -2622,6 +2765,12 @@ function noteOf(state, install, manifest) {
2622
2765
  function isOnMachine(state) {
2623
2766
  return state === "installed" || state === "outdated";
2624
2767
  }
2768
+ function liveManifests(manifests, capabilities, installed) {
2769
+ if (capabilities === null || installed === null) return manifests;
2770
+ const gone = new Set(marketRows(manifests, capabilities).filter((row) => !installed.has(row.id) && marketActions$1(row).length === 0 && (row.state === "unknown" || row.state === "unchecked")).map((row) => row.id));
2771
+ if (gone.size === 0) return manifests;
2772
+ return manifests.filter((manifest) => !gone.has(manifest.id));
2773
+ }
2625
2774
  function marketHasUpdates(rows, shared = []) {
2626
2775
  return rows.some((row) => row.state === "outdated" || row.moduleUpdate !== void 0) || shared.some((row) => row.state === "outdated" || row.state === "unsatisfied");
2627
2776
  }
@@ -2751,6 +2900,7 @@ function sharedRows(manifests, capabilities) {
2751
2900
  ...bucket.installed === void 0 ? {} : { installed: bucket.installed },
2752
2901
  ...bucket.latest === void 0 ? {} : { latest: bucket.latest }
2753
2902
  };
2903
+ const detail = bucket.purpose === void 0 && bucket.command === void 0 ? void 0 : `${bucket.label}${bucket.purpose === void 0 ? "" : ` —— ${bucket.purpose}`}${bucket.command === void 0 ? "" : ` · ${bucket.command}`}`;
2754
2904
  rows.push({
2755
2905
  id: `${bucket.kind}:${bucket.name}`,
2756
2906
  label: bucket.label,
@@ -2758,7 +2908,7 @@ function sharedRows(manifests, capabilities) {
2758
2908
  state,
2759
2909
  canUpdate: state === "outdated" || state === "unsatisfied",
2760
2910
  ...version === void 0 ? {} : { version },
2761
- detail: `${bucket.label}${bucket.purpose === void 0 ? "" : ` —— ${bucket.purpose}`}${bucket.command === void 0 ? "" : ` · ${bucket.command}`}`
2911
+ ...detail === void 0 ? {} : { detail }
2762
2912
  });
2763
2913
  }
2764
2914
  return rows;
@@ -2815,15 +2965,188 @@ function useHostWrite(options) {
2815
2965
  clear
2816
2966
  };
2817
2967
  }
2818
- var PanelFoot_module_default = {
2819
- foot: "_foot_1us83_1",
2820
- footText: "_footText_1us83_12",
2821
- footTextMd: "_footTextMd_1us83_17"
2968
+ //#endregion
2969
+ //#region src/app/layouts/market/add-module-text.ts
2970
+ var GUIDE_ITEMS = [
2971
+ {
2972
+ titleKey: "panels.market.add.guideIdTitle",
2973
+ exampleKey: "panels.market.add.guideIdExample",
2974
+ hintKey: "panels.market.add.guideIdHint"
2975
+ },
2976
+ {
2977
+ titleKey: "panels.market.add.guideGitTitle",
2978
+ exampleKey: "panels.market.add.guideGitExample",
2979
+ hintKey: "panels.market.add.guideGitHint"
2980
+ },
2981
+ {
2982
+ titleKey: "panels.market.add.guidePathTitle",
2983
+ exampleKey: "panels.market.add.guidePathExample",
2984
+ hintKey: "panels.market.add.guidePathHint"
2985
+ }
2986
+ ];
2987
+ function hostOf(url) {
2988
+ try {
2989
+ return new URL(url).host;
2990
+ } catch {
2991
+ return url;
2992
+ }
2993
+ }
2994
+ var OFFICIAL_NPM_HOST = "registry.npmjs.org";
2995
+ var KNOWN_HOSTS = {
2996
+ [OFFICIAL_NPM_HOST]: "panels.market.add.registryOfficial",
2997
+ "registry.npmmirror.com": "panels.market.add.registryMirror"
2998
+ };
2999
+ function registryNameKey(host) {
3000
+ return KNOWN_HOSTS[host];
3001
+ }
3002
+ function normalizeRegistry(url) {
3003
+ const parsed = new URL(url);
3004
+ if (!parsed.pathname.endsWith("/")) parsed.pathname += "/";
3005
+ return parsed.href;
3006
+ }
3007
+ function registryKey(url, resolved) {
3008
+ const target = url ?? resolved;
3009
+ if (target === null) return "";
3010
+ try {
3011
+ return normalizeRegistry(target);
3012
+ } catch {
3013
+ return target;
3014
+ }
3015
+ }
3016
+ function registryOptions(registries) {
3017
+ const resolved = registries === null ? null : registries.resolved;
3018
+ const entries = [
3019
+ registries === null ? null : registries.registry,
3020
+ ...registries === null ? [] : registries.fallbackRegistries,
3021
+ null
3022
+ ];
3023
+ const offered = [];
3024
+ const keys = /* @__PURE__ */ new Set();
3025
+ for (const entry of entries) {
3026
+ const key = registryKey(entry, resolved);
3027
+ if (keys.has(key)) continue;
3028
+ keys.add(key);
3029
+ const url = entry ?? resolved;
3030
+ if (url === null) {
3031
+ offered.push({
3032
+ choice: {
3033
+ kind: "default",
3034
+ value: ""
3035
+ },
3036
+ host: OFFICIAL_NPM_HOST,
3037
+ nameKey: "panels.market.add.registryDefault"
3038
+ });
3039
+ continue;
3040
+ }
3041
+ const host = hostOf(url);
3042
+ const nameKey = registryNameKey(host);
3043
+ offered.push({
3044
+ choice: entry === null ? {
3045
+ kind: "default",
3046
+ value: ""
3047
+ } : {
3048
+ kind: "url",
3049
+ value: entry
3050
+ },
3051
+ host,
3052
+ ...nameKey === void 0 ? {} : { nameKey }
3053
+ });
3054
+ }
3055
+ offered.push({ choice: {
3056
+ kind: "custom",
3057
+ value: ""
3058
+ } });
3059
+ return offered;
3060
+ }
3061
+ function customRegistryAllowed(value) {
3062
+ return /^https?:\/\//.test(value.trim());
3063
+ }
3064
+ function registryOf(choice, custom) {
3065
+ if (choice.kind === "custom") return customRegistryAllowed(custom) ? custom.trim() : void 0;
3066
+ return choice.value === "" ? void 0 : choice.value;
3067
+ }
3068
+ function registryName(option, t) {
3069
+ if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3070
+ if (option.nameKey !== void 0) return t(option.nameKey);
3071
+ return option.host ?? t("panels.market.add.registryDefault");
3072
+ }
3073
+ function optionLabel(option, t) {
3074
+ if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3075
+ if (option.host === void 0) return t("panels.market.add.registryDefault");
3076
+ return option.nameKey === void 0 ? option.host : t("panels.market.add.registryWithHost", {
3077
+ name: t(option.nameKey),
3078
+ host: option.host
3079
+ });
3080
+ }
3081
+ var PROBLEM_KEYS = {
3082
+ "invalid-spec": "panels.market.add.problemInvalid",
3083
+ "already-installed": "panels.market.add.problemInstalled",
3084
+ "not-found": "panels.market.add.problemNotFound",
3085
+ "not-a-package": "panels.market.add.problemNotPackage",
3086
+ "not-a-bundle": "panels.market.add.problemNotBundle",
3087
+ network: "panels.market.add.problemNetwork",
3088
+ unknown: "panels.market.add.problemUnknown"
3089
+ };
3090
+ function problemKey(problem) {
3091
+ return PROBLEM_KEYS[problem] ?? PROBLEM_KEYS.unknown;
3092
+ }
3093
+ var FAILURE_KEYS = {
3094
+ network: "panels.market.add.failureNetwork",
3095
+ "spec-host": "panels.market.add.failureNetworkHost",
3096
+ "not-found": "panels.market.add.failureNotFound",
3097
+ "no-matching-version": "panels.market.add.failureNoMatchingVersion",
3098
+ "disk-full": "panels.market.add.failureDiskFull",
3099
+ permission: "panels.market.add.failurePermission",
3100
+ "build-blocked": "panels.market.add.failureBuildBlocked",
3101
+ integrity: "panels.market.add.failureIntegrity",
3102
+ timeout: "panels.market.add.failureTimeout",
3103
+ "pnpm-missing": "panels.market.add.failurePnpmMissing",
3104
+ "operation-error": "panels.market.add.failureGeneric",
3105
+ "incompatible-version": "panels.market.add.failureGeneric",
3106
+ "not-bundle": "panels.market.add.failureGeneric",
3107
+ "invalid-spec": "panels.market.add.failureGeneric",
3108
+ "bundle-in-use": "panels.market.add.failureGeneric",
3109
+ "not-removable": "panels.market.add.failureGeneric",
3110
+ "stop-profile": "panels.market.add.failureGeneric",
3111
+ "stale-approval": "panels.market.add.failureGeneric"
3112
+ };
3113
+ function failureCode(change) {
3114
+ if (change.failedAt === "spec-host") return "spec-host";
3115
+ return change.errorCode ?? change.packageResult?.kind ?? change.application;
3116
+ }
3117
+ function failureReasonKey(code) {
3118
+ return FAILURE_KEYS[code];
3119
+ }
3120
+ function failureReason(code, application, t) {
3121
+ const key = failureReasonKey(code);
3122
+ if (key !== void 0) return t(key);
3123
+ if (code === application) return t("panels.market.add.reason.unknown");
3124
+ return code;
3125
+ }
3126
+ var SUPPLY_KEYS = {
3127
+ "pending-restart": "panels.market.add.supplyPending",
3128
+ failed: "panels.market.add.supplyFailed",
3129
+ "not-a-module": "panels.market.add.notModule",
3130
+ "no-needs": void 0
2822
3131
  };
3132
+ function supplyKey(state) {
3133
+ return SUPPLY_KEYS[state];
3134
+ }
2823
3135
  //#endregion
2824
- //#region src/shared/components/PanelFoot.tsx
2825
- function PanelFoot({ text, size = "sm", children }) {
2826
- return /* @__PURE__ */ h("footer", { className: PanelFoot_module_default.foot }, /* @__PURE__ */ h("span", { className: size === "md" ? PanelFoot_module_default.footTextMd : PanelFoot_module_default.footText }, text), children ?? null);
3136
+ //#region src/app/layouts/rightbar/market-change.ts
3137
+ var SHIPPED = [
3138
+ "applied",
3139
+ "restart-required",
3140
+ "overridden"
3141
+ ];
3142
+ function changeOf(value) {
3143
+ const change = value?.change;
3144
+ if (typeof change !== "object" || change === null) return void 0;
3145
+ return typeof change.application === "string" ? change : void 0;
3146
+ }
3147
+ function changeFailure(change, t) {
3148
+ if (change === void 0 || SHIPPED.includes(change.application)) return void 0;
3149
+ return failureReason(failureCode(change), change.application, t);
2827
3150
  }
2828
3151
  var MarketPage_module_default = {
2829
3152
  marketList: "_marketList_7yq35_1",
@@ -2858,7 +3181,18 @@ var MarketPage_module_default = {
2858
3181
  marketEmptyTitle: "_marketEmptyTitle_7yq35_267"
2859
3182
  };
2860
3183
  //#endregion
2861
- //#region src/app/layouts/rightbar/MarketView.tsx
3184
+ //#region src/app/layouts/rightbar/MarketStates.tsx
3185
+ function MarketChecking({ t }) {
3186
+ return /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketChecking }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
3187
+ state: "ongoing",
3188
+ size: 14
3189
+ }), t("panels.market.checking")));
3190
+ }
3191
+ function MarketEmpty({ t }) {
3192
+ return /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmptyTitle }, t("panels.market.empty")));
3193
+ }
3194
+ //#endregion
3195
+ //#region src/app/layouts/rightbar/market-view-text.ts
2862
3196
  var PROGRESS_KEY = {
2863
3197
  install: "panels.market.installing",
2864
3198
  update: "panels.market.updating",
@@ -2875,18 +3209,22 @@ var ACTION_LABEL_KEY = {
2875
3209
  uninstall: "panels.market.uninstall",
2876
3210
  "update-dependency": "panels.market.update"
2877
3211
  };
2878
- function MarketLine({ t, row, pending, failure, onAct }) {
3212
+ //#endregion
3213
+ //#region src/app/layouts/rightbar/SharedSection.tsx
3214
+ function SharedLine({ t, row, pending, failure, onAct }) {
2879
3215
  const running = pending !== null && pending.id === row.id ? pending : null;
2880
3216
  const locked = pending !== null;
2881
- const actions = marketActions$1(row);
2882
- const stateText = t(row.moduleUpdate === void 0 ? MARKET_STATE_KEY[row.state] : "panels.market.moduleOutdated");
3217
+ const actions = sharedActions(row);
3218
+ const stateText = t(SHARED_STATE_KEY[row.state]);
3219
+ const version = row.version;
3220
+ const name = /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketName }, row.label, version === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketVersion }, version.installed !== void 0 && version.latest !== void 0 && version.installed !== version.latest ? t("panels.market.versionArrow", {
3221
+ from: version.installed,
3222
+ to: version.latest
3223
+ }) : version.installed ?? version.latest ?? ""));
2883
3224
  return /* @__PURE__ */ h("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ h("span", {
2884
3225
  className: MarketPage_module_default.marketIcon,
2885
3226
  "aria-hidden": "true"
2886
- }, /* @__PURE__ */ h(IconModules, { size: 18 })), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketMain }, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketName }, t(row.titleKey), row.version === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketVersion }, row.version.installed !== void 0 && row.version.latest !== void 0 && row.version.installed !== row.version.latest ? t("panels.market.versionArrow", {
2887
- from: row.version.installed,
2888
- to: row.version.latest
2889
- }) : row.version.installed ?? row.version.latest ?? "")), /* @__PURE__ */ h(Tip, { label: stateText }, /* @__PURE__ */ h("span", {
3227
+ }, /* @__PURE__ */ h(IconModules, { size: 18 })), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketMain }, row.detail === void 0 ? name : /* @__PURE__ */ h(Tip, { label: row.detail }, name), /* @__PURE__ */ h("span", {
2890
3228
  className: MarketPage_module_default.marketDesc,
2891
3229
  role: "img",
2892
3230
  "aria-label": stateText
@@ -2894,39 +3232,57 @@ function MarketLine({ t, row, pending, failure, onAct }) {
2894
3232
  state: "ongoing",
2895
3233
  size: 14
2896
3234
  }) : /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2897
- state: MARKET_DOT[row.state],
3235
+ state: SHARED_DOT[row.state],
2898
3236
  size: 9
2899
- }), stateText, row.hint === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketUsedBy }, t(row.hint))))), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
3237
+ }), stateText, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketUsedBy }, t("panels.market.sharedUsedBy", { modules: row.usedByKeys.map((key) => t(key)).join(t("panels.market.listSeparator")) })))), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2900
3238
  state: "ongoing",
2901
3239
  size: 14
2902
- }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
2903
- const danger = action === "uninstall" || action === "remove-bundle";
2904
- return /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
2905
- key: action,
2906
- type: "button",
2907
- size: "sm",
2908
- variant: action === "install" ? "primary" : "outline",
2909
- className: danger ? "wb-dangerAction" : void 0,
2910
- icon: danger ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 13 }) : void 0,
2911
- "aria-label": danger ? t("panels.market.uninstallLabel", { name: t(row.titleKey) }) : void 0,
2912
- disabled: locked,
2913
- onClick: () => onAct(action)
2914
- }, t(ACTION_LABEL_KEY[action]));
2915
- }))), row.note === void 0 ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketNote }, t(row.note.key, row.note.params)), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
3240
+ }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3241
+ key: action,
3242
+ type: "button",
3243
+ size: "sm",
3244
+ variant: "outline",
3245
+ disabled: locked,
3246
+ onClick: () => onAct(action)
3247
+ }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
2916
3248
  }
2917
- function SharedLine({ t, row, pending, failure, onAct }) {
3249
+ function SharedSection({ t, rows, pending, failureOf, act }) {
3250
+ if (rows.length === 0) return null;
3251
+ return /* @__PURE__ */ h("section", { className: MarketPage_module_default.marketSection }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ h("h2", { className: MarketPage_module_default.marketSectionTitle }, t("panels.market.sectionShared")), /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketSectionCount }, rows.length)), /* @__PURE__ */ h("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ h(SharedLine, {
3252
+ key: row.id,
3253
+ t,
3254
+ row,
3255
+ pending,
3256
+ failure: failureOf(row.id),
3257
+ onAct: (action) => void act(row.id, action)
3258
+ }))));
3259
+ }
3260
+ var PanelFoot_module_default = {
3261
+ foot: "_foot_1us83_1",
3262
+ footText: "_footText_1us83_12",
3263
+ footTextMd: "_footTextMd_1us83_17"
3264
+ };
3265
+ //#endregion
3266
+ //#region src/shared/components/PanelFoot.tsx
3267
+ function PanelFoot({ text, size = "sm", children }) {
3268
+ return /* @__PURE__ */ h("footer", { className: PanelFoot_module_default.foot }, /* @__PURE__ */ h("span", { className: size === "md" ? PanelFoot_module_default.footTextMd : PanelFoot_module_default.footText }, text), children ?? null);
3269
+ }
3270
+ //#endregion
3271
+ //#region src/app/layouts/rightbar/MarketView.tsx
3272
+ var CONFIRM_UNINSTALL = ["uninstall", "remove-bundle"];
3273
+ var CONFIRM_REMOVE = ["remove-bundle"];
3274
+ function MarketLine({ t, row, pending, failure, onAct }) {
2918
3275
  const running = pending !== null && pending.id === row.id ? pending : null;
2919
3276
  const locked = pending !== null;
2920
- const actions = sharedActions(row);
2921
- const stateText = t(SHARED_STATE_KEY[row.state]);
2922
- const version = row.version;
3277
+ const actions = marketActions$1(row);
3278
+ const stateText = t(row.moduleUpdate === void 0 ? MARKET_STATE_KEY[row.state] : "panels.market.moduleOutdated");
2923
3279
  return /* @__PURE__ */ h("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ h("span", {
2924
3280
  className: MarketPage_module_default.marketIcon,
2925
3281
  "aria-hidden": "true"
2926
- }, /* @__PURE__ */ h(IconModules, { size: 18 })), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketMain }, /* @__PURE__ */ h(Tip, { label: row.detail ?? "" }, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketName }, row.label, version === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketVersion }, version.installed !== void 0 && version.latest !== void 0 && version.installed !== version.latest ? t("panels.market.versionArrow", {
2927
- from: version.installed,
2928
- to: version.latest
2929
- }) : version.installed ?? version.latest ?? ""))), /* @__PURE__ */ h(Tip, { label: stateText }, /* @__PURE__ */ h("span", {
3282
+ }, /* @__PURE__ */ h(IconModules, { size: 18 })), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketMain }, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketName }, t(row.titleKey), row.version === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketVersion }, row.version.installed !== void 0 && row.version.latest !== void 0 && row.version.installed !== row.version.latest ? t("panels.market.versionArrow", {
3283
+ from: row.version.installed,
3284
+ to: row.version.latest
3285
+ }) : row.version.installed ?? row.version.latest ?? "")), /* @__PURE__ */ h("span", {
2930
3286
  className: MarketPage_module_default.marketDesc,
2931
3287
  role: "img",
2932
3288
  "aria-label": stateText
@@ -2934,19 +3290,25 @@ function SharedLine({ t, row, pending, failure, onAct }) {
2934
3290
  state: "ongoing",
2935
3291
  size: 14
2936
3292
  }) : /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2937
- state: SHARED_DOT[row.state],
3293
+ state: MARKET_DOT[row.state],
2938
3294
  size: 9
2939
- }), stateText, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketUsedBy }, t("panels.market.sharedUsedBy", { modules: row.usedByKeys.map((key) => t(key)).join(t("panels.market.listSeparator")) }))))), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
3295
+ }), stateText, row.hint === void 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketUsedBy }, t(row.hint)))), /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEnd }, running !== null ? /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketProgress }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2940
3296
  state: "ongoing",
2941
3297
  size: 14
2942
- }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
2943
- key: action,
2944
- type: "button",
2945
- size: "sm",
2946
- variant: "outline",
2947
- disabled: locked,
2948
- onClick: () => onAct(action)
2949
- }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
3298
+ }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
3299
+ const danger = action === "uninstall" || action === "remove-bundle";
3300
+ return /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3301
+ key: action,
3302
+ type: "button",
3303
+ size: "sm",
3304
+ variant: action === "install" ? "primary" : "outline",
3305
+ className: danger ? "wb-dangerAction" : void 0,
3306
+ icon: danger ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 13 }) : void 0,
3307
+ "aria-label": danger ? t("panels.market.uninstallLabel", { name: t(row.titleKey) }) : void 0,
3308
+ disabled: locked,
3309
+ onClick: () => onAct(action)
3310
+ }, t(ACTION_LABEL_KEY[action]));
3311
+ }))), row.note === void 0 ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketNote }, t(row.note.key, row.note.params)), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
2950
3312
  }
2951
3313
  function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
2952
3314
  const [acknowledged, setAcknowledged] = useState(false);
@@ -2964,7 +3326,7 @@ function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
2964
3326
  onConfirm
2965
3327
  });
2966
3328
  }
2967
- function MarketSection({ t, titleKey, rows, pending, failureOf, act, confirmAction, onConfirming }) {
3329
+ function MarketSection({ t, titleKey, rows, pending, failureOf, act, confirmActions, onConfirming }) {
2968
3330
  if (rows.length === 0) return null;
2969
3331
  return /* @__PURE__ */ h("section", { className: MarketPage_module_default.marketSection }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ h("h2", { className: MarketPage_module_default.marketSectionTitle }, t(titleKey)), /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketSectionCount }, rows.length)), /* @__PURE__ */ h("ul", { className: MarketPage_module_default.marketList }, rows.map((row) => /* @__PURE__ */ h(MarketLine, {
2970
3332
  key: row.id,
@@ -2972,29 +3334,50 @@ function MarketSection({ t, titleKey, rows, pending, failureOf, act, confirmActi
2972
3334
  row,
2973
3335
  pending,
2974
3336
  failure: failureOf(row.id),
2975
- onAct: (action) => action === confirmAction ? onConfirming(row.id) : void act(row.id, action)
3337
+ onAct: (action) => confirmActions.includes(action) ? onConfirming(row.id) : void act(row.id, action)
2976
3338
  }))));
2977
3339
  }
2978
- function MarketView({ t, manifests, capabilities, freshness, onChanged, updates, installed, installedRead, mock }) {
2979
- const source = mock?.manifests ?? manifests;
3340
+ function MarketView({ t, manifests, capabilities, freshness, onChanged, updates, installed, installedRead, settling, mock }) {
3341
+ const [titles, setTitles] = useState(/* @__PURE__ */ new Map());
3342
+ useEffect(() => {
3343
+ if (mock === void 0) setTitles((known) => mergeTitles(known, manifests));
3344
+ }, [manifests, mock]);
3345
+ const catalog = mock?.manifests ?? manifests;
2980
3346
  const effective = mock === void 0 ? capabilities : mock.capabilities;
3347
+ const source = liveManifests(catalog, effective, mock === void 0 && installed !== void 0 ? new Set(installed.map((item) => item.unit)) : null);
2981
3348
  const rows = marketRows(source, effective, mock?.updates ?? updates ?? {});
2982
3349
  const shared = sharedRows(source, effective);
2983
- const installedList = installedRows(mock?.installed ?? installed ?? [], source, new Set(rows.map((row) => row.id)));
2984
- const rowById = new Map([...rows, ...installedList].map((row) => [row.id, row]));
2985
3350
  const [pending, setPending] = useState(mock?.pending ?? null);
2986
3351
  const provision = useHostWrite({
2987
3352
  channel: "provision",
2988
3353
  networkText: t("panels.failed")
2989
3354
  });
2990
3355
  const [confirming, setConfirming] = useState(mock?.confirming ?? null);
2991
- const confirmingRow = confirming === null ? void 0 : rowById.get(confirming);
2992
3356
  const [failed, setFailed] = useState(mock?.failure ?? null);
3357
+ const removing = pending !== null && pending.action === "remove-bundle" && failed?.id !== pending.id ? pending.id : null;
3358
+ const installedList = installedRows((mock?.installed ?? installed ?? []).filter((module) => !(settling?.has(module.unit) ?? false) && module.unit !== removing), source, new Set(rows.map((row) => row.id)), titles);
3359
+ const pendingRow = removing === null || pending === null || rows.some((row) => row.id === removing) ? void 0 : {
3360
+ id: removing,
3361
+ titleKey: pending.titleKey ?? titles.get(removing) ?? removing,
3362
+ state: "installed",
3363
+ canInstall: false,
3364
+ canUpdate: false,
3365
+ canUninstall: true,
3366
+ ...pending.pkg === void 0 ? {} : { pkg: pending.pkg },
3367
+ ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
3368
+ };
3369
+ const shown = pendingRow === void 0 ? rows : [...rows, pendingRow];
3370
+ const rowById = new Map([...shown, ...installedList].map((row) => [row.id, row]));
3371
+ const confirmingRow = confirming === null ? void 0 : rowById.get(confirming);
2993
3372
  const act = async (id, action) => {
2994
3373
  if (mock !== void 0) return;
3374
+ const row = rowById.get(id);
2995
3375
  setPending({
2996
3376
  id,
2997
- action
3377
+ action,
3378
+ ...row?.titleKey === void 0 ? {} : { titleKey: row.titleKey },
3379
+ ...row?.pkg === void 0 ? {} : { pkg: row.pkg },
3380
+ ...row?.version?.installed === void 0 ? {} : { version: row.version.installed }
2998
3381
  });
2999
3382
  setConfirming(null);
3000
3383
  setFailed(null);
@@ -3011,20 +3394,23 @@ function MarketView({ t, manifests, capabilities, freshness, onChanged, updates,
3011
3394
  });
3012
3395
  setPending(null);
3013
3396
  if (!outcome.ok) {
3397
+ onChanged();
3014
3398
  setFailed({
3015
3399
  id,
3016
3400
  message: t("panels.market.failed", { reason: outcome.message })
3017
3401
  });
3018
3402
  return;
3019
3403
  }
3404
+ const reason = changeFailure(changeOf(outcome.value), t);
3020
3405
  onChanged();
3406
+ if (reason !== void 0) setFailed({
3407
+ id,
3408
+ message: t("panels.market.failed", { reason })
3409
+ });
3021
3410
  };
3022
- if (!(freshness.loaded && installedRead !== false)) return /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketChecking }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
3023
- state: "ongoing",
3024
- size: 14
3025
- }), t("panels.market.checking")));
3026
- if (rows.length === 0 && installedList.length === 0) return /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmptyTitle }, t("panels.market.empty")));
3027
- return /* @__PURE__ */ h(Fragment, null, marketSections(rows).map((section) => /* @__PURE__ */ h(MarketSection, {
3411
+ if (!(freshness.loaded && installedRead !== false) || (settling?.size ?? 0) > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ h(MarketChecking, { t });
3412
+ if (shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ h(MarketEmpty, { t });
3413
+ return /* @__PURE__ */ h(Fragment, null, marketSections(shown).map((section) => /* @__PURE__ */ h(MarketSection, {
3028
3414
  key: section.id,
3029
3415
  t,
3030
3416
  titleKey: section.titleKey,
@@ -3032,7 +3418,7 @@ function MarketView({ t, manifests, capabilities, freshness, onChanged, updates,
3032
3418
  pending,
3033
3419
  failureOf: (id) => failed?.id === id ? failed.message : null,
3034
3420
  act,
3035
- confirmAction: "uninstall",
3421
+ confirmActions: CONFIRM_UNINSTALL,
3036
3422
  onConfirming: setConfirming
3037
3423
  })), /* @__PURE__ */ h(MarketSection, {
3038
3424
  t,
@@ -3041,19 +3427,18 @@ function MarketView({ t, manifests, capabilities, freshness, onChanged, updates,
3041
3427
  pending,
3042
3428
  failureOf: (id) => failed?.id === id ? failed.message : null,
3043
3429
  act,
3044
- confirmAction: "remove-bundle",
3430
+ confirmActions: CONFIRM_REMOVE,
3045
3431
  onConfirming: setConfirming
3046
3432
  }), /* @__PURE__ */ h(PanelFoot, {
3047
3433
  size: "md",
3048
3434
  text: t("panels.market.foot")
3049
- }), shared.length === 0 ? null : /* @__PURE__ */ h("section", { className: MarketPage_module_default.marketSection }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketSectionHead }, /* @__PURE__ */ h("h2", { className: MarketPage_module_default.marketSectionTitle }, t("panels.market.sectionShared")), /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketSectionCount }, shared.length)), /* @__PURE__ */ h("ul", { className: MarketPage_module_default.marketList }, shared.map((row) => /* @__PURE__ */ h(SharedLine, {
3050
- key: row.id,
3435
+ }), /* @__PURE__ */ h(SharedSection, {
3051
3436
  t,
3052
- row,
3437
+ rows: shared,
3053
3438
  pending,
3054
- failure: failed?.id === row.id ? failed.message : null,
3055
- onAct: (action) => void act(row.id, action)
3056
- })))), /* @__PURE__ */ h(ConfirmUninstall, {
3439
+ failureOf: (id) => failed?.id === id ? failed.message : null,
3440
+ act
3441
+ }), /* @__PURE__ */ h(ConfirmUninstall, {
3057
3442
  key: confirming ?? "",
3058
3443
  t,
3059
3444
  name: confirmingRow === void 0 ? null : t(confirmingRow.titleKey),
@@ -3082,227 +3467,60 @@ function readBundleInspection(spec, registry) {
3082
3467
  ...registry === void 0 || registry === "" ? {} : { registry }
3083
3468
  });
3084
3469
  }
3085
- function readModuleVersions(force = false) {
3086
- return apiGet(MODULE_VERSIONS_ROUTE, force ? { force: "1" } : void 0);
3087
- }
3088
- var AddModule_module_default = {
3089
- wide: "_wide_1coeb_1",
3090
- dialog: "_dialog_1coeb_8",
3091
- content: "_content_1coeb_13",
3092
- stack: "_stack_1coeb_18",
3093
- body: "_body_1coeb_25",
3094
- field: "_field_1coeb_32",
3095
- input: "_input_1coeb_39",
3096
- registryField: "_registryField_1coeb_45",
3097
- options: "_options_1coeb_51",
3098
- guideToggle: "_guideToggle_1coeb_59",
3099
- registryToggle: "_registryToggle_1coeb_78",
3100
- registryWrap: "_registryWrap_1coeb_87",
3101
- registryChosen: "_registryChosen_1coeb_121",
3102
- registry: "_registry_1coeb_45",
3103
- registryOption: "_registryOption_1coeb_143",
3104
- registryPick: "_registryPick_1coeb_159",
3105
- registryTitle: "_registryTitle_1coeb_179",
3106
- registryHint: "_registryHint_1coeb_189",
3107
- inputError: "_inputError_1coeb_197",
3108
- guide: "_guide_1coeb_59",
3109
- guideList: "_guideList_1coeb_214",
3110
- guideItem: "_guideItem_1coeb_223",
3111
- guideIndex: "_guideIndex_1coeb_230",
3112
- guideMain: "_guideMain_1coeb_244",
3113
- guideTitle: "_guideTitle_1coeb_252",
3114
- guideHint: "_guideHint_1coeb_258",
3115
- guideExample: "_guideExample_1coeb_264",
3116
- guideExampleLabel: "_guideExampleLabel_1coeb_274",
3117
- footer: "_footer_1coeb_278",
3118
- hero: "_hero_1coeb_285",
3119
- heroIcon: "_heroIcon_1coeb_294",
3120
- pendingTitle: "_pendingTitle_1coeb_311",
3121
- wizardTitle: "_wizardTitle_1coeb_319",
3122
- subject: "_subject_1coeb_326",
3123
- subjectName: "_subjectName_1coeb_337",
3124
- subjectMeta: "_subjectMeta_1coeb_343",
3125
- subjectDesc: "_subjectDesc_1coeb_344",
3126
- result: "_result_1coeb_351",
3127
- resultWarn: "_resultWarn_1coeb_352",
3128
- approval: "_approval_1coeb_365",
3129
- approvalTitle: "_approvalTitle_1coeb_375",
3130
- approvalText: "_approvalText_1coeb_382",
3131
- approvalCaution: "_approvalCaution_1coeb_388",
3132
- note: "_note_1coeb_395",
3133
- noteWarn: "_noteWarn_1coeb_402",
3134
- noteError: "_noteError_1coeb_406",
3135
- problem: "_problem_1coeb_410",
3136
- detailLabel: "_detailLabel_1coeb_417",
3137
- detail: "_detail_1coeb_417"
3138
- };
3139
- //#endregion
3140
- //#region src/app/layouts/market/add-module-text.ts
3141
- var GUIDE_ITEMS = [
3142
- {
3143
- titleKey: "panels.market.add.guideIdTitle",
3144
- exampleKey: "panels.market.add.guideIdExample",
3145
- hintKey: "panels.market.add.guideIdHint"
3146
- },
3147
- {
3148
- titleKey: "panels.market.add.guideGitTitle",
3149
- exampleKey: "panels.market.add.guideGitExample",
3150
- hintKey: "panels.market.add.guideGitHint"
3151
- },
3152
- {
3153
- titleKey: "panels.market.add.guidePathTitle",
3154
- exampleKey: "panels.market.add.guidePathExample",
3155
- hintKey: "panels.market.add.guidePathHint"
3156
- }
3157
- ];
3158
- function hostOf(url) {
3159
- try {
3160
- return new URL(url).host;
3161
- } catch {
3162
- return url;
3163
- }
3164
- }
3165
- var OFFICIAL_NPM_HOST = "registry.npmjs.org";
3166
- var KNOWN_HOSTS = {
3167
- [OFFICIAL_NPM_HOST]: "panels.market.add.registryOfficial",
3168
- "registry.npmmirror.com": "panels.market.add.registryMirror"
3169
- };
3170
- function registryNameKey(host) {
3171
- return KNOWN_HOSTS[host];
3172
- }
3173
- function normalizeRegistry(url) {
3174
- const parsed = new URL(url);
3175
- if (!parsed.pathname.endsWith("/")) parsed.pathname += "/";
3176
- return parsed.href;
3177
- }
3178
- function registryKey(url, resolved) {
3179
- const target = url ?? resolved;
3180
- if (target === null) return "";
3181
- try {
3182
- return normalizeRegistry(target);
3183
- } catch {
3184
- return target;
3185
- }
3186
- }
3187
- function registryOptions(registries) {
3188
- const resolved = registries === null ? null : registries.resolved;
3189
- const entries = [
3190
- registries === null ? null : registries.registry,
3191
- ...registries === null ? [] : registries.fallbackRegistries,
3192
- null
3193
- ];
3194
- const offered = [];
3195
- const keys = /* @__PURE__ */ new Set();
3196
- for (const entry of entries) {
3197
- const key = registryKey(entry, resolved);
3198
- if (keys.has(key)) continue;
3199
- keys.add(key);
3200
- const url = entry ?? resolved;
3201
- if (url === null) {
3202
- offered.push({
3203
- choice: {
3204
- kind: "default",
3205
- value: ""
3206
- },
3207
- host: OFFICIAL_NPM_HOST,
3208
- nameKey: "panels.market.add.registryDefault"
3209
- });
3210
- continue;
3211
- }
3212
- const host = hostOf(url);
3213
- const nameKey = registryNameKey(host);
3214
- offered.push({
3215
- choice: entry === null ? {
3216
- kind: "default",
3217
- value: ""
3218
- } : {
3219
- kind: "url",
3220
- value: entry
3221
- },
3222
- host,
3223
- ...nameKey === void 0 ? {} : { nameKey }
3224
- });
3225
- }
3226
- offered.push({ choice: {
3227
- kind: "custom",
3228
- value: ""
3229
- } });
3230
- return offered;
3231
- }
3232
- function customRegistryAllowed(value) {
3233
- return /^https?:\/\//.test(value.trim());
3234
- }
3235
- function registryOf(choice, custom) {
3236
- if (choice.kind === "custom") return customRegistryAllowed(custom) ? custom.trim() : void 0;
3237
- return choice.value === "" ? void 0 : choice.value;
3238
- }
3239
- function registryName(option, t) {
3240
- if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3241
- if (option.nameKey !== void 0) return t(option.nameKey);
3242
- return option.host ?? t("panels.market.add.registryDefault");
3243
- }
3244
- function optionLabel(option, t) {
3245
- if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3246
- if (option.host === void 0) return t("panels.market.add.registryDefault");
3247
- return option.nameKey === void 0 ? option.host : t("panels.market.add.registryWithHost", {
3248
- name: t(option.nameKey),
3249
- host: option.host
3250
- });
3251
- }
3252
- var PROBLEM_KEYS = {
3253
- "invalid-spec": "panels.market.add.problemInvalid",
3254
- "already-installed": "panels.market.add.problemInstalled",
3255
- "not-found": "panels.market.add.problemNotFound",
3256
- "not-a-package": "panels.market.add.problemNotPackage",
3257
- "not-a-bundle": "panels.market.add.problemNotBundle",
3258
- network: "panels.market.add.problemNetwork",
3259
- unknown: "panels.market.add.problemUnknown"
3260
- };
3261
- function problemKey(problem) {
3262
- return PROBLEM_KEYS[problem] ?? PROBLEM_KEYS.unknown;
3263
- }
3264
- var FAILURE_KEYS = {
3265
- network: "panels.market.add.failureNetwork",
3266
- "spec-host": "panels.market.add.failureNetworkHost",
3267
- "not-found": "panels.market.add.failureNotFound",
3268
- "no-matching-version": "panels.market.add.failureNoMatchingVersion",
3269
- "disk-full": "panels.market.add.failureDiskFull",
3270
- permission: "panels.market.add.failurePermission",
3271
- "build-blocked": "panels.market.add.failureBuildBlocked",
3272
- integrity: "panels.market.add.failureIntegrity",
3273
- timeout: "panels.market.add.failureTimeout",
3274
- "pnpm-missing": "panels.market.add.failurePnpmMissing",
3275
- "operation-error": "panels.market.add.failureGeneric",
3276
- "incompatible-version": "panels.market.add.failureGeneric",
3277
- "not-bundle": "panels.market.add.failureGeneric",
3278
- "invalid-spec": "panels.market.add.failureGeneric",
3279
- "bundle-in-use": "panels.market.add.failureGeneric",
3280
- "not-removable": "panels.market.add.failureGeneric",
3281
- "stop-profile": "panels.market.add.failureGeneric",
3282
- "stale-approval": "panels.market.add.failureGeneric"
3283
- };
3284
- function failureCode(change) {
3285
- if (change.failedAt === "spec-host") return "spec-host";
3286
- return change.errorCode ?? change.packageResult?.kind ?? change.application;
3287
- }
3288
- function failureReasonKey(code) {
3289
- return FAILURE_KEYS[code];
3290
- }
3291
- function failureReason(code, application, t) {
3292
- const key = failureReasonKey(code);
3293
- if (key !== void 0) return t(key);
3294
- if (code === application) return t("panels.market.add.reason.unknown");
3295
- return code;
3296
- }
3297
- var SUPPLY_KEYS = {
3298
- "pending-restart": "panels.market.add.supplyPending",
3299
- failed: "panels.market.add.supplyFailed",
3300
- "not-a-module": "panels.market.add.notModule",
3301
- "no-needs": void 0
3302
- };
3303
- function supplyKey(state) {
3304
- return SUPPLY_KEYS[state];
3470
+ function readModuleVersions(force = false) {
3471
+ return apiGet(MODULE_VERSIONS_ROUTE, force ? { force: "1" } : void 0);
3305
3472
  }
3473
+ var AddModule_module_default = {
3474
+ wide: "_wide_1coeb_1",
3475
+ dialog: "_dialog_1coeb_8",
3476
+ content: "_content_1coeb_13",
3477
+ stack: "_stack_1coeb_18",
3478
+ body: "_body_1coeb_25",
3479
+ field: "_field_1coeb_32",
3480
+ input: "_input_1coeb_39",
3481
+ registryField: "_registryField_1coeb_45",
3482
+ options: "_options_1coeb_51",
3483
+ guideToggle: "_guideToggle_1coeb_59",
3484
+ registryToggle: "_registryToggle_1coeb_78",
3485
+ registryWrap: "_registryWrap_1coeb_87",
3486
+ registryChosen: "_registryChosen_1coeb_121",
3487
+ registry: "_registry_1coeb_45",
3488
+ registryOption: "_registryOption_1coeb_143",
3489
+ registryPick: "_registryPick_1coeb_159",
3490
+ registryTitle: "_registryTitle_1coeb_179",
3491
+ registryHint: "_registryHint_1coeb_189",
3492
+ inputError: "_inputError_1coeb_197",
3493
+ guide: "_guide_1coeb_59",
3494
+ guideList: "_guideList_1coeb_214",
3495
+ guideItem: "_guideItem_1coeb_223",
3496
+ guideIndex: "_guideIndex_1coeb_230",
3497
+ guideMain: "_guideMain_1coeb_244",
3498
+ guideTitle: "_guideTitle_1coeb_252",
3499
+ guideHint: "_guideHint_1coeb_258",
3500
+ guideExample: "_guideExample_1coeb_264",
3501
+ guideExampleLabel: "_guideExampleLabel_1coeb_274",
3502
+ footer: "_footer_1coeb_278",
3503
+ hero: "_hero_1coeb_285",
3504
+ heroIcon: "_heroIcon_1coeb_294",
3505
+ pendingTitle: "_pendingTitle_1coeb_311",
3506
+ wizardTitle: "_wizardTitle_1coeb_319",
3507
+ subject: "_subject_1coeb_326",
3508
+ subjectName: "_subjectName_1coeb_337",
3509
+ subjectMeta: "_subjectMeta_1coeb_343",
3510
+ subjectDesc: "_subjectDesc_1coeb_344",
3511
+ result: "_result_1coeb_351",
3512
+ resultWarn: "_resultWarn_1coeb_352",
3513
+ approval: "_approval_1coeb_365",
3514
+ approvalTitle: "_approvalTitle_1coeb_375",
3515
+ approvalText: "_approvalText_1coeb_382",
3516
+ approvalCaution: "_approvalCaution_1coeb_388",
3517
+ note: "_note_1coeb_395",
3518
+ noteWarn: "_noteWarn_1coeb_402",
3519
+ noteError: "_noteError_1coeb_406",
3520
+ problem: "_problem_1coeb_410",
3521
+ detailLabel: "_detailLabel_1coeb_417",
3522
+ detail: "_detail_1coeb_417"
3523
+ };
3306
3524
  //#endregion
3307
3525
  //#region src/app/layouts/market/AddModuleRegistry.tsx
3308
3526
  var REGISTRY_ID = "wb-add-module-registry";
@@ -3362,7 +3580,13 @@ function AddModuleRegistry({ t, state }) {
3362
3580
  return /* @__PURE__ */ h("div", {
3363
3581
  key: `${option.choice.kind}|${option.choice.value}`,
3364
3582
  className: AddModule_module_default.registryOption,
3365
- "data-checked": active
3583
+ "data-checked": active,
3584
+ onPointerDown: () => {
3585
+ if (!active) state.setChoice(option.choice);
3586
+ },
3587
+ onFocusCapture: () => {
3588
+ if (!active) state.setChoice(option.choice);
3589
+ }
3366
3590
  }, /* @__PURE__ */ h("label", { className: AddModule_module_default.registryPick }, /* @__PURE__ */ h("input", {
3367
3591
  type: "radio",
3368
3592
  name: REGISTRY_ID,
@@ -3374,7 +3598,6 @@ function AddModuleRegistry({ t, state }) {
3374
3598
  "aria-label": t("panels.market.add.registryCustom"),
3375
3599
  placeholder: t("panels.market.add.registryCustomPlaceholder"),
3376
3600
  value: state.custom,
3377
- disabled: !active,
3378
3601
  invalid: customBad,
3379
3602
  onChange: (event) => state.setCustom(event.target.value)
3380
3603
  }), customBad ? /* @__PURE__ */ h("span", {
@@ -3966,7 +4189,7 @@ function AddModuleDialog({ t, open, onClose, onInstalled }) {
3966
4189
  }, t("panels.market.add.run"))) : null, installing ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3967
4190
  type: "button",
3968
4191
  variant: "outline",
3969
- size: "sm",
4192
+ size: "md",
3970
4193
  onClick: state.cancelInstall
3971
4194
  }, t("panels.market.add.cancel")) : null, state.phase === "result" ? /* @__PURE__ */ h(Fragment, null, failed && builds.length === 0 ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3972
4195
  type: "button",
@@ -4036,6 +4259,7 @@ var MOCK_FRESHNESS = {
4036
4259
  checking: false,
4037
4260
  checkedAt: null
4038
4261
  };
4262
+ var NO_UNITS = /* @__PURE__ */ new Set();
4039
4263
  function useLiveManifests(units) {
4040
4264
  useSyncExternalStore(useCallback((listener) => units.subscribe(listener), [units]), useCallback(() => units.version(), [units]));
4041
4265
  return units.manifests();
@@ -4058,7 +4282,7 @@ function MarketPanel({ t, units }) {
4058
4282
  const [decided, setDecided] = useState(false);
4059
4283
  const [adding, setAdding] = useState(false);
4060
4284
  const [updates, setUpdates] = useState({});
4061
- const [installed, setInstalled] = useState([]);
4285
+ const [installed, setInstalled] = useState(void 0);
4062
4286
  const [installedRead, setInstalledRead] = useState(false);
4063
4287
  const loadUpdates = useCallback((force = false) => {
4064
4288
  readModuleVersions(force).then((response) => {
@@ -4094,6 +4318,24 @@ function MarketPanel({ t, units }) {
4094
4318
  forceProbe,
4095
4319
  loadUpdates
4096
4320
  ]);
4321
+ const installedKey = (installed ?? []).map((module) => module.unit).join("|");
4322
+ const rosterKey = manifests.map((manifest) => manifest.id).join("|");
4323
+ const activeKey = Object.keys(capabilities ?? {}).join("|");
4324
+ const seenRef = useRef(null);
4325
+ const [settling, setSettling] = useState(NO_UNITS);
4326
+ useEffect(() => {
4327
+ const units = installedKey === "" ? [] : installedKey.split("|");
4328
+ const held = holdBack(units, new Set(rosterKey === "" ? [] : rosterKey.split("|")), new Set(activeKey === "" ? [] : activeKey.split("|")), seenRef.current);
4329
+ seenRef.current = new Set(units);
4330
+ setSettling(held.length === 0 ? NO_UNITS : new Set(held));
4331
+ if (held.length === 0) return;
4332
+ const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
4333
+ return () => clearTimeout(timer);
4334
+ }, [
4335
+ installedKey,
4336
+ rosterKey,
4337
+ activeKey
4338
+ ]);
4097
4339
  const freshness = {
4098
4340
  loaded: capabilities !== null,
4099
4341
  checking,
@@ -4143,6 +4385,7 @@ function MarketPanel({ t, units }) {
4143
4385
  updates,
4144
4386
  installed,
4145
4387
  installedRead: mock === void 0 ? installedRead : mock.installedRead ?? true,
4388
+ settling: mock === void 0 ? settling : void 0,
4146
4389
  mock
4147
4390
  }), /* @__PURE__ */ h(AddModuleDialog, {
4148
4391
  t,
@@ -4241,6 +4484,14 @@ function bridgeAdvice(issue) {
4241
4484
  return { textKey: "env.bridge.unknown" };
4242
4485
  }
4243
4486
  //#endregion
4487
+ //#region src/app/layouts/env-gate/gate-deadline.ts
4488
+ function createGateDeadline(giveUpMs, expire) {
4489
+ const timer = setTimeout(expire, giveUpMs);
4490
+ return { disarm() {
4491
+ clearTimeout(timer);
4492
+ } };
4493
+ }
4494
+ //#endregion
4244
4495
  //#region src/app/layouts/env-gate/gate-dom.ts
4245
4496
  var SVG_NS = "http://www.w3.org/2000/svg";
4246
4497
  function svgIcon(kind) {
@@ -4703,7 +4954,6 @@ function createBootGate(ctx, options = {}) {
4703
4954
  }
4704
4955
  let cancelled = false;
4705
4956
  const forcePlan = createForcePlan();
4706
- const startedAt = Date.now();
4707
4957
  let pinned = null;
4708
4958
  function close() {
4709
4959
  if (closed) return;
@@ -4711,9 +4961,11 @@ function createBootGate(ctx, options = {}) {
4711
4961
  cancelled = true;
4712
4962
  if (timer !== void 0) clearTimeout(timer);
4713
4963
  if (ticker !== void 0) clearInterval(ticker);
4964
+ deadline.disarm();
4714
4965
  overlay.remove();
4715
4966
  if (root !== null) root.inert = previousInert;
4716
4967
  }
4968
+ const deadline = createGateDeadline(GIVE_UP_MS, close);
4717
4969
  const rows = /* @__PURE__ */ new Map();
4718
4970
  let renderedOrder = "";
4719
4971
  function ensureRow(step) {
@@ -4807,10 +5059,6 @@ function createBootGate(ctx, options = {}) {
4807
5059
  return;
4808
5060
  }
4809
5061
  if (response.phase === "failed") return;
4810
- if (Date.now() - startedAt > GIVE_UP_MS) {
4811
- close();
4812
- return;
4813
- }
4814
5062
  timer = setTimeout(() => void poll(), POLL_MS);
4815
5063
  }
4816
5064
  function retryNow() {
@@ -4842,23 +5090,151 @@ function createBootGate(ctx, options = {}) {
4842
5090
  poll();
4843
5091
  return { close };
4844
5092
  }
4845
- var ExpandButton_module_default = {
4846
- button: "_button_ssnyt_1",
4847
- icon: "_icon_ssnyt_13"
5093
+ //#endregion
5094
+ //#region src/app/layouts/rightbar/store.ts
5095
+ var browserPersistence = {
5096
+ readFlag,
5097
+ writeFlag,
5098
+ readText,
5099
+ writeText
5100
+ };
5101
+ var RIGHTBAR_DEFAULT_COLUMN = "workbench";
5102
+ function pressedColumns(state, dshExpanded) {
5103
+ return {
5104
+ workbench: state.column === "workbench" && state.expanded,
5105
+ dsh: state.column === "dsh" && dshExpanded
5106
+ };
5107
+ }
5108
+ var BOARD_STEP = { kind: "board" };
5109
+ function readColumn(persistence) {
5110
+ return persistence.readText("dsh-workbench.rightbar.column") === "dsh" ? "dsh" : RIGHTBAR_DEFAULT_COLUMN;
5111
+ }
5112
+ function createRightbarStore(persistence = browserPersistence) {
5113
+ let state = {
5114
+ expanded: persistence.readFlag(STORAGE_KEY_RIGHTBAR, true),
5115
+ column: readColumn(persistence),
5116
+ trail: [BOARD_STEP]
5117
+ };
5118
+ const listeners = /* @__PURE__ */ new Set();
5119
+ function commit(next) {
5120
+ if (next.expanded === state.expanded && next.column === state.column && next.trail === state.trail) return;
5121
+ state = next;
5122
+ for (const listener of listeners) listener();
5123
+ }
5124
+ function setTrail(trail) {
5125
+ commit({
5126
+ expanded: state.expanded,
5127
+ column: state.column,
5128
+ trail: trail.length === 0 ? [BOARD_STEP] : trail
5129
+ });
5130
+ }
5131
+ return {
5132
+ getSnapshot: () => state,
5133
+ subscribe(listener) {
5134
+ listeners.add(listener);
5135
+ return () => listeners.delete(listener);
5136
+ },
5137
+ setExpanded(expanded) {
5138
+ if (expanded === state.expanded) return;
5139
+ persistence.writeFlag(STORAGE_KEY_RIGHTBAR, expanded);
5140
+ commit({
5141
+ expanded,
5142
+ column: state.column,
5143
+ trail: state.trail
5144
+ });
5145
+ },
5146
+ toggleExpanded() {
5147
+ this.setExpanded(!state.expanded);
5148
+ },
5149
+ setColumn(column) {
5150
+ if (column === state.column) return;
5151
+ persistence.writeText(STORAGE_KEY_RIGHTBAR_COLUMN, column);
5152
+ commit({
5153
+ expanded: state.expanded,
5154
+ column,
5155
+ trail: state.trail
5156
+ });
5157
+ },
5158
+ open(step) {
5159
+ const top = state.trail[state.trail.length - 1];
5160
+ if (top !== void 0 && sameStep(top, step)) return;
5161
+ setTrail([...state.trail, step]);
5162
+ },
5163
+ goTo(index) {
5164
+ if (index < 0 || index >= state.trail.length) return;
5165
+ setTrail(state.trail.slice(0, index + 1));
5166
+ },
5167
+ back() {
5168
+ if (state.trail.length <= 1) return;
5169
+ setTrail(state.trail.slice(0, -1));
5170
+ }
5171
+ };
5172
+ }
5173
+ function sameStep(a, b) {
5174
+ return a.kind === b.kind;
5175
+ }
5176
+ var ColumnSwitch_module_default = {
5177
+ group: "_group_1hxis_1",
5178
+ button: "_button_1hxis_7",
5179
+ active: "_active_1hxis_19",
5180
+ icon: "_icon_1hxis_23",
5181
+ mirror: "_mirror_1hxis_35"
4848
5182
  };
4849
5183
  //#endregion
4850
- //#region src/app/layouts/rightbar/ExpandButton.tsx
4851
- function ExpandButton({ useRightbar, toggleRightbar, t }) {
4852
- if (useRightbar((state) => state.expanded)) return null;
4853
- return /* @__PURE__ */ h(Tip, { label: t("rightbar.expand") }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
5184
+ //#region src/app/layouts/rightbar/ColumnSwitch.tsx
5185
+ function ColumnSwitch({ useRightbar, selectColumn, dshColumn, t }) {
5186
+ const pressed = pressedColumns(useRightbar((snapshot) => snapshot), useSyncExternalStore(dshColumn.subscribe, dshColumn.getSnapshot));
5187
+ const workbenchLabel = pressed.workbench ? t("rightbar.collapse") : t("rightbar.column.workbench");
5188
+ return /* @__PURE__ */ h("span", {
5189
+ className: ColumnSwitch_module_default.group,
5190
+ role: "group",
5191
+ "aria-label": t("rightbar.column.label")
5192
+ }, /* @__PURE__ */ h(Tip, { label: workbenchLabel }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
4854
5193
  type: "button",
4855
5194
  size: "sm",
4856
5195
  variant: "ghost",
4857
- className: ExpandButton_module_default.button,
4858
- "aria-label": t("rightbar.expand"),
4859
- icon: /* @__PURE__ */ h("span", { className: ExpandButton_module_default.icon }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconPanelLeftOutlineRegular, { size: 15 })),
4860
- onClick: toggleRightbar
4861
- }));
5196
+ className: pressed.workbench ? `${ColumnSwitch_module_default.button} ${ColumnSwitch_module_default.active}` : ColumnSwitch_module_default.button,
5197
+ "aria-pressed": pressed.workbench,
5198
+ "aria-label": workbenchLabel,
5199
+ icon: /* @__PURE__ */ h("span", { className: ColumnSwitch_module_default.icon }, /* @__PURE__ */ h(IconPanelScreen, { size: 15 })),
5200
+ onClick: () => selectColumn("workbench")
5201
+ })), /* @__PURE__ */ h(Tip, { label: t("rightbar.column.dsh") }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
5202
+ type: "button",
5203
+ size: "sm",
5204
+ variant: "ghost",
5205
+ className: pressed.dsh ? `${ColumnSwitch_module_default.button} ${ColumnSwitch_module_default.active}` : ColumnSwitch_module_default.button,
5206
+ "aria-pressed": pressed.dsh,
5207
+ "aria-label": t("rightbar.column.dsh"),
5208
+ icon: /* @__PURE__ */ h("span", { className: `${ColumnSwitch_module_default.icon} ${ColumnSwitch_module_default.mirror}` }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconPanelLeftOutlineRegular, { size: 15 })),
5209
+ onClick: () => selectColumn("dsh")
5210
+ })));
5211
+ }
5212
+ //#endregion
5213
+ //#region src/app/layouts/rightbar/dsh-column-source.ts
5214
+ function createDshColumnSource(read, intervalMs) {
5215
+ let value = read();
5216
+ let timer;
5217
+ const listeners = /* @__PURE__ */ new Set();
5218
+ const sync = () => {
5219
+ const next = read();
5220
+ if (next === value) return;
5221
+ value = next;
5222
+ for (const listener of listeners) listener();
5223
+ };
5224
+ return {
5225
+ getSnapshot: () => value,
5226
+ subscribe(listener) {
5227
+ listeners.add(listener);
5228
+ if (timer === void 0) timer = setInterval(sync, intervalMs);
5229
+ return () => {
5230
+ listeners.delete(listener);
5231
+ if (listeners.size === 0 && timer !== void 0) {
5232
+ clearInterval(timer);
5233
+ timer = void 0;
5234
+ }
5235
+ };
5236
+ }
5237
+ };
4862
5238
  }
4863
5239
  var Breadcrumbs_module_default = {
4864
5240
  stripTabs: "_stripTabs_1dqp4_1",
@@ -5446,6 +5822,15 @@ function planBoard(shape, real, all) {
5446
5822
  };
5447
5823
  }
5448
5824
  //#endregion
5825
+ //#region src/app/layouts/rightbar/presentation.ts
5826
+ function rightbarPresentation(input) {
5827
+ const fullscreen = input.shown && (input.viewportWidth < 768 || !input.canShow);
5828
+ return {
5829
+ fullscreen,
5830
+ track: input.shown && !fullscreen
5831
+ };
5832
+ }
5833
+ //#endregion
5449
5834
  //#region src/modules/sessions/model/session-node.ts
5450
5835
  function visiblePendingKind(kind) {
5451
5836
  switch (kind) {
@@ -5631,6 +6016,7 @@ function useBoardWorkspace(workspaces, sessions) {
5631
6016
  path: workspace?.path ?? null
5632
6017
  };
5633
6018
  }
6019
+ var Rightbar_module_default = { panel: "_panel_1oyh4_1" };
5634
6020
  //#endregion
5635
6021
  //#region src/app/layouts/rightbar/Rightbar.tsx
5636
6022
  function ModuleHost({ module, step, panelToken, onPanelRefresh, onSummary, ...rest }) {
@@ -5755,17 +6141,34 @@ function Rightbar(props) {
5755
6141
  const summary = aggregateSummaries(plan.modules.map((entry) => summaries[entry.module.id]).filter((item) => item !== void 0));
5756
6142
  const feedEnabled = plan.modules.length > 0 || plan.reading;
5757
6143
  const shown = state.expanded;
5758
- props.applyRightbar({
6144
+ const presentation = rightbarPresentation({
5759
6145
  shown,
5760
- track: true,
5761
- fullscreen: shown && !props.canShow
6146
+ viewportWidth: props.viewportWidth,
6147
+ canShow: props.canShow
5762
6148
  });
5763
- if (!shown) return null;
6149
+ const { fullscreen } = presentation;
6150
+ const panelWidth = fullscreen ? "100vw" : props.width > 0 ? `${props.width}px` : "100%";
6151
+ const applyRightbar = props.applyRightbar;
6152
+ useLayoutEffect(() => {
6153
+ applyRightbar({
6154
+ shown,
6155
+ track: presentation.track,
6156
+ fullscreen: presentation.fullscreen
6157
+ });
6158
+ }, [
6159
+ applyRightbar,
6160
+ shown,
6161
+ presentation.track,
6162
+ presentation.fullscreen
6163
+ ]);
5764
6164
  const top = state.trail[state.trail.length - 1] ?? { kind: "board" };
5765
6165
  const navigate = (step) => props.openPanel(step);
5766
6166
  const openMarket = () => props.openMarket();
5767
6167
  return /* @__PURE__ */ h("aside", {
5768
- className: "wb-rightbar",
6168
+ className: `wb-rightbar ${Rightbar_module_default.panel}`,
6169
+ style: { width: panelWidth },
6170
+ "data-open": shown ? "" : void 0,
6171
+ "data-fullscreen": fullscreen ? "" : void 0,
5769
6172
  "aria-label": props.t("rightbar.label")
5770
6173
  }, /* @__PURE__ */ h(PanelHeader, {
5771
6174
  t: props.t,
@@ -5896,67 +6299,6 @@ function serializeChipRef(encoded) {
5896
6299
  });
5897
6300
  }
5898
6301
  //#endregion
5899
- //#region src/app/layouts/rightbar/store.ts
5900
- var browserPersistence = {
5901
- readFlag,
5902
- writeFlag,
5903
- readText,
5904
- writeText
5905
- };
5906
- var BOARD_STEP = { kind: "board" };
5907
- function createRightbarStore(persistence = browserPersistence) {
5908
- let state = {
5909
- expanded: persistence.readFlag(STORAGE_KEY_RIGHTBAR, true),
5910
- trail: [BOARD_STEP]
5911
- };
5912
- const listeners = /* @__PURE__ */ new Set();
5913
- function commit(next) {
5914
- if (next.expanded === state.expanded && next.trail === state.trail) return;
5915
- state = next;
5916
- for (const listener of listeners) listener();
5917
- }
5918
- function setTrail(trail) {
5919
- commit({
5920
- expanded: state.expanded,
5921
- trail: trail.length === 0 ? [BOARD_STEP] : trail
5922
- });
5923
- }
5924
- return {
5925
- getSnapshot: () => state,
5926
- subscribe(listener) {
5927
- listeners.add(listener);
5928
- return () => listeners.delete(listener);
5929
- },
5930
- setExpanded(expanded) {
5931
- if (expanded === state.expanded) return;
5932
- persistence.writeFlag(STORAGE_KEY_RIGHTBAR, expanded);
5933
- commit({
5934
- expanded,
5935
- trail: state.trail
5936
- });
5937
- },
5938
- toggleExpanded() {
5939
- this.setExpanded(!state.expanded);
5940
- },
5941
- open(step) {
5942
- const top = state.trail[state.trail.length - 1];
5943
- if (top !== void 0 && sameStep(top, step)) return;
5944
- setTrail([...state.trail, step]);
5945
- },
5946
- goTo(index) {
5947
- if (index < 0 || index >= state.trail.length) return;
5948
- setTrail(state.trail.slice(0, index + 1));
5949
- },
5950
- back() {
5951
- if (state.trail.length <= 1) return;
5952
- setTrail(state.trail.slice(0, -1));
5953
- }
5954
- };
5955
- }
5956
- function sameStep(a, b) {
5957
- return a.kind === b.kind;
5958
- }
5959
- //#endregion
5960
6302
  //#region src/app/layouts/sidebar/session-pick.ts
5961
6303
  function openPickedProject(input) {
5962
6304
  const first = firstSessionIdOf(input.items.find((item) => item.workspaceId === input.workspaceId) ?? null, input.sessions, input.archivedIds);
@@ -6253,7 +6595,7 @@ function Sidebar(props) {
6253
6595
  }
6254
6596
  //#endregion
6255
6597
  //#region src/shared/styles/rightbar.css?raw
6256
- var rightbar_default = ".wb-rightbar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: 0;\n overflow: hidden;\n background: var(--dsw-alias-bg-base);\n border-left: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-panelHeader {\n flex: none;\n height: var(--wb-len-38);\n}\n\n.wb-tabStrip {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n height: var(--wb-len-38);\n padding: var(--wb-len-10) var(--wb-len-6) 0 var(--wb-len-10);\n}\n\n.wb-stripFill {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.wb-rightbar :is(button, [role='tab']):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}\n\n.wb-rightbar {\n container-type: inline-size;\n}\n\n.wb-dangerAction {\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-stripChrome {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n flex: none;\n margin-left: var(--wb-len-4);\n}\n\n.wb-panelBody {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n scrollbar-gutter: stable;\n padding: var(--wb-len-12);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n.wb-panelBody {\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}";
6598
+ var rightbar_default = ".wb-rightbar {\n display: flex;\n flex-direction: column;\n height: 100%;\n min-width: 0;\n overflow: hidden;\n background: var(--dsw-alias-bg-base);\n border-left: 0.5px solid var(--dsw-alias-border-l2);\n}\n\n.wb-panelHeader {\n flex: none;\n height: var(--wb-len-38);\n}\n\n.wb-tabStrip {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n height: var(--wb-len-38);\n padding: var(--wb-len-10) var(--wb-len-6) 0 var(--wb-len-10);\n}\n\n.wb-stripFill {\n flex: 1 1 0;\n min-width: 0;\n}\n\n.wb-rightbar :is(button, [role='tab']):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}\n\n.wb-rightbar {\n container-type: inline-size;\n}\n\n.wb-dangerAction {\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-stripChrome {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n flex: none;\n margin-left: var(--wb-len-4);\n}\n\n.wb-panelBody {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n scrollbar-gutter: stable;\n padding: var(--wb-len-12);\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n}\n\n.wb-panelBody {\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}\n@container (max-width: 340px) {\n .wb-panelBody {\n padding: var(--wb-len-8);\n }}\n";
6257
6599
  //#endregion
6258
6600
  //#region src/shared/styles/tokens.css?raw
6259
6601
  var tokens_default = ".wb-root,\n.wb-rightbar {\n --wb-bar-height: 36px;\n --wb-gap-xs: 6px;\n --wb-font-row: 14px;\n}\n";
@@ -6262,7 +6604,7 @@ var tokens_default = ".wb-root,\n.wb-rightbar {\n --wb-bar-height: 36px;\n --w
6262
6604
  var palette_default = ":root {\n --wb-static-titlebar-fill: #ffffff8c;\n --wb-static-titlebar-fill-hover: #ffffff4d;\n --wb-static-titlebar-fill-dark: #ffffff26;\n --wb-static-titlebar-fill-dark-hover: #fff3;\n --wb-static-mask-opaque: #000;\n --wb-static-shadow-ghost: 0 8px 20px rgba(0, 0, 0, 0.4);\n}\n";
6263
6605
  //#endregion
6264
6606
  //#region src/shared/styles/tokens/scale.css?raw
6265
- var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-15: 0.15s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-17: 17px;\n --wb-font-18: 18px;\n --wb-font-6: 6px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-200: 200px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-260: 260px;\n --wb-len-28: 28px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-5: 5px;\n --wb-len-52: 52px;\n --wb-len-520: 520px;\n --wb-len-56: 56px;\n --wb-len-560: 560px;\n --wb-len-6: 6px;\n --wb-len-60: 60px;\n --wb-len-64: 64px;\n --wb-len-7: 7px;\n --wb-len-72: 72px;\n --wb-len-8: 8px;\n --wb-len-800: 800px;\n --wb-len-9: 9px;\n --wb-len-96: 96px;\n --wb-len-960: 960px;\n --wb-len-neg-0-5: -0.5px;\n --wb-len-neg-1-5: -1.5px;\n --wb-len-neg-12: -12px;\n --wb-len-neg-2: -2px;\n --wb-len-neg-3: -3px;\n --wb-len-neg-4: -4px;\n --wb-len-neg-6: -6px;\n --wb-len-neg-8: -8px;\n --wb-line-10: 10px;\n --wb-line-13: 13px;\n --wb-line-14: 14px;\n --wb-line-15: 15px;\n --wb-line-16: 16px;\n --wb-line-17: 17px;\n --wb-line-18: 18px;\n --wb-line-19: 19px;\n --wb-line-20: 20px;\n --wb-line-22: 22px;\n --wb-line-24: 24px;\n --wb-radius-14: 14px;\n --wb-radius-2: 2px;\n --wb-radius-6: 6px;\n --wb-radius-pill: 999px;\n --wb-track-brand: .04em;\n --wb-z-100: 100;\n --wb-z-1100: 1100;\n --wb-z-30: 30;\n --wb-z-40: 40;\n --wb-z-top: 2147483000;\n --wb-project-menu-min-width: 0;\n}\n";
6607
+ var scale_default = ":root {\n --wb-dur-0-12: 0.12s;\n --wb-dur-0-15: 0.15s;\n --wb-dur-0-9: 0.9s;\n --wb-dur-1-4: 1.4s;\n --wb-dur-1-5: 1.5s;\n --wb-font-10: 10px;\n --wb-font-11-5: 11.5px;\n --wb-font-12-5: 12.5px;\n --wb-font-17: 17px;\n --wb-font-18: 18px;\n --wb-font-6: 6px;\n --wb-len-0-5: 0.5px;\n --wb-len-1: 1px;\n --wb-len-10: 10px;\n --wb-len-12: 12px;\n --wb-len-120: 120px;\n --wb-len-13: 13px;\n --wb-len-132: 132px;\n --wb-len-14: 14px;\n --wb-len-144: 144px;\n --wb-len-15: 15px;\n --wb-len-16: 16px;\n --wb-len-18: 18px;\n --wb-len-2: 2px;\n --wb-len-20: 20px;\n --wb-len-200: 200px;\n --wb-len-22: 22px;\n --wb-len-220: 220px;\n --wb-len-24: 24px;\n --wb-len-240: 240px;\n --wb-len-26: 26px;\n --wb-len-260: 260px;\n --wb-len-28: 28px;\n --wb-len-3: 3px;\n --wb-len-3-4em: 3.4em;\n --wb-len-30: 30px;\n --wb-len-300: 300px;\n --wb-len-32: 32px;\n --wb-len-320: 320px;\n --wb-len-34: 34px;\n --wb-len-36: 36px;\n --wb-len-360: 360px;\n --wb-len-38: 38px;\n --wb-len-4: 4px;\n --wb-len-440: 440px;\n --wb-len-40: 40px;\n --wb-len-420: 420px;\n --wb-len-42em: 42em;\n --wb-len-44: 44px;\n --wb-len-48: 48px;\n --wb-len-5: 5px;\n --wb-len-52: 52px;\n --wb-len-520: 520px;\n --wb-len-56: 56px;\n --wb-len-560: 560px;\n --wb-len-6: 6px;\n --wb-len-60: 60px;\n --wb-len-64: 64px;\n --wb-len-7: 7px;\n --wb-len-72: 72px;\n --wb-len-8: 8px;\n --wb-len-800: 800px;\n --wb-len-9: 9px;\n --wb-len-96: 96px;\n --wb-len-960: 960px;\n --wb-len-neg-0-5: -0.5px;\n --wb-len-neg-1-5: -1.5px;\n --wb-len-neg-12: -12px;\n --wb-len-neg-2: -2px;\n --wb-len-neg-3: -3px;\n --wb-len-neg-4: -4px;\n --wb-len-neg-6: -6px;\n --wb-len-neg-8: -8px;\n --wb-line-10: 10px;\n --wb-line-13: 13px;\n --wb-line-14: 14px;\n --wb-line-15: 15px;\n --wb-line-16: 16px;\n --wb-line-17: 17px;\n --wb-line-18: 18px;\n --wb-line-19: 19px;\n --wb-line-20: 20px;\n --wb-line-22: 22px;\n --wb-line-24: 24px;\n --wb-radius-14: 14px;\n --wb-radius-2: 2px;\n --wb-radius-6: 6px;\n --wb-radius-pill: 999px;\n --wb-track-brand: .04em;\n --wb-z-1100: 1100;\n --wb-z-10: 10;\n --wb-z-30: 30;\n --wb-z-40: 40;\n --wb-z-top: 2147483000;\n --wb-project-menu-min-width: 0;\n}\n";
6266
6608
  //#endregion
6267
6609
  //#region src/shared/styles/sidebar-app.css?raw
6268
6610
  var sidebar_app_default = ".wb-wsSection {\n position: relative;\n flex: none;\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n margin: 0 var(--dsh-session-list-scrollbar-offset) var(--wb-len-4) 0;\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n}.wb-sectionHeader {\n box-sizing: border-box;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n gap: var(--wb-len-4);\n height: var(--wb-len-36);\n flex: none;\n margin-bottom: var(--wb-len-4);\n padding-left: var(--wb-len-8);\n padding-right: var(--wb-len-2);\n border-radius: var(--dsw-radius-md);\n color: var(--dsw-alias-label-tertiary);\n overflow: hidden;\n}.wb-wsNew {\n margin-left: auto;\n}.wb-sectionLabel {\n flex: none;\n min-width: 0;\n max-width: 45%;\n overflow: hidden;\n white-space: nowrap;\n line-height: var(--wb-line-20);\n}.wb-collapsed .wb-wsSection {\n margin: 0 0 var(--wb-len-12);\n padding-right: 0;\n}.wb-collapsed .wb-sectionHeader {\n justify-content: flex-start;\n gap: 0;\n margin-bottom: 0;\n padding-left: 0;\n padding-right: 0;\n}.wb-collapsed .wb-wsNew {\n margin-left: 0;\n}.wb-project {\n position: relative;\n flex: none;\n margin: 0 var(--wb-len-2) var(--wb-len-4);\n}.wb-projectAnchor {\n display: block;\n width: 100%;\n min-width: var(--wb-project-menu-min-width, 0);\n}.wb-projectButton {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: var(--wb-gap-xs);\n width: 100%;\n height: var(--wb-len-34);\n padding: 0 var(--wb-len-8);\n border: none;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}.wb-projectButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-projectButton:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}.wb-collapsed .wb-projectButton {\n justify-content: center;\n width: var(--wb-bar-height);\n height: var(--wb-bar-height);\n padding: 0;\n}.wb-collapsed .wb-projectName,\n.wb-collapsed .wb-projectChevron {\n display: none;\n}.wb-projectGlyph {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}.wb-projectGlyphActive {\n color: var(--dsw-alias-state-business-primary);\n}.wb-projectName {\n flex: 1;\n min-width: 0;\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.wb-projectChevron {\n flex: none;\n display: inline-flex;\n color: var(--dsw-alias-label-caption);\n transition: transform var(--wb-dur-0-15) var(--ds-ease-in-out);\n}.wb-projectChevronOpen {\n transform: rotate(180deg);\n}.wb-sessions {\n --dsh-session-list-edge-inset: var(--dsh-sidebar-inline-padding);\n --dsh-session-list-scrollbar-width: 5px;\n --dsh-session-list-scrollbar-offset: 2px;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n margin-left: var(--wb-len-neg-4);\n margin-right: var(--dsh-session-list-scrollbar-offset);\n padding-left: var(--wb-len-4);\n padding-right: calc( var(--dsh-session-list-edge-inset) - var(--dsh-session-list-scrollbar-width) - var(--dsh-session-list-scrollbar-offset) );\n padding-bottom: var(--wb-len-16);\n scrollbar-gutter: stable;\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n}.wb-sessions > * + * {\n margin-top: var(--wb-len-2);\n}.wb-sessionLeading {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n color: var(--dsw-alias-label-tertiary);\n}.wb-sessionPin {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-16);\n height: var(--wb-len-20);\n margin-left: var(--wb-len-6);\n color: var(--dsw-alias-label-caption);\n}.wb-rowActions {\n flex: none;\n display: none;\n align-items: center;\n gap: var(--wb-len-10);\n}.wb-rowActions .wb-iconButton {\n width: var(--wb-len-24);\n height: var(--wb-len-24);\n}.wb-sessionRow:hover .wb-rowActions,\n.wb-sessionRow.wb-menuOpen .wb-rowActions {\n display: inline-flex;\n}.wb-sessionRow:hover .wb-sessionTime,\n.wb-sessionRow.wb-menuOpen .wb-sessionTime,\n.wb-sessionRow:hover .wb-sessionPin,\n.wb-sessionRow.wb-menuOpen .wb-sessionPin {\n display: none;\n}.wb-sessionRow.wb-menuOpen {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-rowMenu {\n left: auto;\n right: 0;\n min-width: var(--wb-len-144);\n max-width: var(--wb-len-260);\n}.wb-sessionRow {\n position: relative;\n flex: none;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 0;\n width: 100%;\n height: var(--wb-len-32);\n padding: 0 var(--wb-len-8);\n border: none;\n border-radius: var(--dsw-radius-md);\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n user-select: none;\n}.wb-sessionRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-sessionRow:focus-visible {\n outline: var(--dsw-focus-ring-width) solid\n var(--dsw-focus-ring-color, var(--dsw-alias-state-business-primary));\n outline-offset: -2px;\n}.wb-visuallyHidden {\n clip: rect(0 0 0 0);\n white-space: nowrap;\n width: var(--wb-len-1);\n height: var(--wb-len-1);\n position: absolute;\n overflow: hidden;\n}.wb-sessionTitle {\n flex: 1;\n min-width: 0;\n margin: 0 var(--wb-len-6) 0 var(--wb-len-4);\n font-size: var(--wb-font-row);\n line-height: var(--wb-line-20);\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}.wb-sessionTime {\n flex: none;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}.wb-empty {\n padding: var(--wb-len-16) var(--wb-len-12);\n font-size: var(--dsw-font-xs-13-font-size);\n color: var(--dsw-alias-label-tertiary);\n}@media (prefers-reduced-motion: reduce) {\n .wb-projectChevron {\n transition: none;\n }}.wb-sessionRow.wb-selected {\n background: var(--dsw-alias-interactive-bg-hover);\n}.wb-panelTag {\n flex: none;\n margin-left: auto;\n}.wb-panelGlyph {\n position: relative;\n}.wb-panelDot {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: absolute;\n top: var(--wb-len-neg-3);\n right: var(--wb-len-neg-3);\n}button.pXSMma_workspace {\n display: none;\n}";
@@ -6274,7 +6616,10 @@ var sidebar_default = ".wb-root{--dsh-sidebar-inline-padding:12px;height:100%;pa
6274
6616
  var chrome_default = ".wb-stripButton {\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}.wb-stripIconFlip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transform: scaleX(-1);\n}.wb-stripButton:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}.wb-stripButton:disabled {\n cursor: default;\n opacity: 1;\n}.wb-stripButtonActive {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}.wb-panelBody.wb-fixtureMany .wb-mockStrip {\n display: none;\n}@keyframes wb-spin {\n from {\n transform: rotate(0deg);\n }to {\n transform: rotate(360deg);\n }}";
6275
6617
  //#endregion
6276
6618
  //#region src/shared/styles/board.css?raw
6277
- var board_default = ".wb-view {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\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}.wb-cardBody {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n padding: var(--wb-len-12);\n}.wb-cardBody > :not([data-wb-bleed]) {\n padding-left: var(--wb-len-8);\n padding-right: var(--wb-len-8);\n}.wb-releaseState {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}.wb-releaseStateTitle {\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-primary);\n}.wb-releaseStateHint {\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}.wb-releaseActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n margin-top: var(--wb-len-2);\n}.wb-releaseResolving {\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}.wb-envBlock {\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.wb-envBlock:first-child {\n border-top: none;\n}.wb-envBlockHead {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--wb-len-8);\n}.wb-envLine {\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}.wb-envLineText {\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}.wb-envLineAt {\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}.wb-envLineActions {\n flex: none;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n}.wb-envChatFailed {\n color: var(--dsw-alias-state-error-primary);\n}[data-wb-dot] {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n}.wb-row:has(> [data-wb-dot]) {\n grid-template-columns: 84px minmax(0, 1fr);\n}@media (prefers-reduced-motion: reduce) {\n .wb-skeletonBar {\n animation: none;\n }}.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\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}.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}.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}.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}@container (max-width: 340px) {\n .wb-panelBody {\n padding: var(--wb-len-8);\n }}@keyframes wb-dash {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }}.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}.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-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}.wb-menu {\n box-sizing: border-box;\n position: absolute;\n top: calc(100% + var(--wb-len-4));\n left: 0;\n right: 0;\n z-index: var(--wb-z-100);\n padding: var(--wb-len-4);\n display: flex;\n flex-direction: column;\n border: 0.5px solid var(--dsw-alias-border-l1);\n border-radius: var(--dsw-radius-lg);\n background: var(--dsw-menu-surface-fill, var(--dsw-alias-bg-layer-2));\n box-shadow: var(--dsw-elevation-prominent);\n backdrop-filter: var(--dsw-menu-backdrop-filter);\n max-height: var(--wb-len-240);\n overflow-y: auto;\n}.wb-formActions {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}.wb-note {\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}.wb-problem {\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}.wb-rows {\n display: flex;\n flex-direction: column;\n}.wb-row {\n display: grid;\n grid-template-columns: 56px minmax(0, 1fr);\n align-items: baseline;\n gap: var(--wb-len-8);\n padding: var(--wb-len-4) 0;\n}.wb-row + .wb-row {\n border-top: 0.5px solid var(--dsw-alias-border-l2);\n}.wb-rowKey {\n font-size: var(--dsw-font-xxxs-11-font-size);\n line-height: var(--wb-line-16);\n color: var(--dsw-alias-label-tertiary);\n}.wb-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-envListTitle {\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\n.wb-iconButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-iconButton: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}\n\n.wb-spinning svg {\n animation: wb-spin var(--wb-dur-0-9) linear infinite;\n}\n";
6619
+ var board_default = "[data-wb-dot] {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n}\n\n.wb-iconButton:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-iconButton: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}\n\n.wb-spinning svg {\n animation: wb-spin var(--wb-dur-0-9) linear infinite;\n}\n\n@keyframes wb-dash {\n 0% {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }50% {\n stroke-dasharray: 24 150;\n stroke-dashoffset: -6;\n }to {\n stroke-dasharray: 12 150;\n stroke-dashoffset: 0;\n }}\n";
6620
+ //#endregion
6621
+ //#region src/shared/styles/motion.css?raw
6622
+ var motion_default = "[data-animating],\n[data-sidebar-right-panel] {\n --ds-transition-duration-slow: 0s;\n}\n";
6278
6623
  //#endregion
6279
6624
  //#region src/shared/hooks/use-api-resource.ts
6280
6625
  var use_api_resource_exports = /* @__PURE__ */ __exportAll({
@@ -6675,11 +7020,11 @@ function messagesOf(units) {
6675
7020
  ...face.messages === void 0 ? {} : { messages: face.messages }
6676
7021
  })));
6677
7022
  }
6678
- var COMPONENT_CSS_MARKER = "\n.wb-approvalCommand {\n max-width: 100%;\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-len-20);\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\n.wb-cardRefresh.wb-spinning svg {\n animation: wb-spin var(--wb-dur-0-9) linear infinite;\n}\n\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: transparent;\n}\n\n.wb-choiceOption {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-30);\n padding: var(--wb-len-6) 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-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\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 opacity: 0.5;\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-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 display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n color: var(--dsw-alias-label-secondary);\n text-decoration: none;\n white-space: nowrap;\n}\n.wb-longTaskLink:hover,\n.wb-longTaskLink:focus-visible {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n.wb-longTaskLink: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.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.wb-mockStrip {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-12);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n flex: none;\n}\n\n.wb-mockNote {\n flex: 1 0 100%;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-14);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-mockChip {\n flex: none;\n padding: var(--wb-len-2) var(--wb-len-7);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: transparent;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-14);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-mockChip:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-mockChipOn {\n border-color: transparent;\n background: var(--dsw-alias-brand-primary);\n color: var(--dsw-alias-label-primary-foreground);\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.wb-formActions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\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[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._foot_1us83_1 {\n display: flex;\n align-items: center;\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_1us83_12 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1us83_17 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._marketList_7yq35_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 max-height: var(--wb-len-320);\n overflow-y: auto;\n}\n\n._marketRow_7yq35_12 {\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_7yq35_22 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-40);\n height: var(--wb-len-40);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_7yq35_34 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_7yq35_41 {\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._marketDesc_7yq35_50 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketUsedBy_7yq35_61 {\n margin-left: var(--wb-len-8);\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 opacity: 0.75;\n}\n\n._marketUsedBy_7yq35_61::before {\n content: '·';\n margin-right: var(--wb-len-6);\n opacity: 0.8;\n}\n\n._marketName_7yq35_41 ._marketVersion_7yq35_75 {\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_7yq35_75 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_7yq35_75::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._marketEnd_7yq35_97 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._marketActions_7yq35_104 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketSection_7yq35_110 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_7yq35_117 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionTitle_7yq35_123 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_7yq35_129 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketProgress_7yq35_135 {\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_7yq35_145 {\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_7yq35_152 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_7yq35_159 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_7yq35_164 {\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: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_7yq35_164 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_7yq35_181 {\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_7yq35_189 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_7yq35_194 {\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_7yq35_200 {\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._marketIconButton_7yq35_209 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-caption);\n cursor: pointer;\n}\n\n._marketIconButton_7yq35_209:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_7yq35_209:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_7yq35_234 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_7yq35_238 svg {\n animation: _wb-spin_7yq35_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_7yq35_242 {\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_7yq35_159 {\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._marketChecking_7yq35_259 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketEmptyTitle_7yq35_267 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_7yq35_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n._wide_1coeb_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_1coeb_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1coeb_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1coeb_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1coeb_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1coeb_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_1coeb_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1coeb_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_1coeb_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_1coeb_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_1coeb_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1coeb_59 svg,\n._registryToggle_1coeb_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1coeb_59[aria-expanded='true'] svg,\n._registryToggle_1coeb_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1coeb_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1coeb_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_1coeb_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1coeb_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1coeb_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1coeb_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1coeb_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_1coeb_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_1coeb_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1coeb_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1coeb_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1coeb_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1coeb_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1coeb_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1coeb_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1coeb_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1coeb_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_1coeb_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_1coeb_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1coeb_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1coeb_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_1coeb_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_1coeb_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_1coeb_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1coeb_343,\n._subjectDesc_1coeb_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_1coeb_351,\n._resultWarn_1coeb_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_1coeb_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._approval_1coeb_365 {\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_1coeb_375 {\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_1coeb_382 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1coeb_388 {\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_1coeb_395 {\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_1coeb_402 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1coeb_406 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1coeb_410 {\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_1coeb_417 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1coeb_417 {\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._actions_jlw8j_1[hidden],\n._progress_jlw8j_2[hidden],\n._commandRow_jlw8j_3[hidden],\n._bridge_jlw8j_4[hidden],\n._raw_jlw8j_5[hidden] {\n display: none;\n}\n\n._gate_jlw8j_9 {\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_jlw8j_20 {\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_jlw8j_20:has(._actions_jlw8j_1:not([hidden])),\n._card_jlw8j_20:has(._bridge_jlw8j_4:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_jlw8j_35 {\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_jlw8j_43 {\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_jlw8j_50 {\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_jlw8j_50 {\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_jlw8j_50[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_jlw8j_77 {\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_jlw8j_50[data-status='ok'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_jlw8j_50[data-status='warn'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_jlw8j_50[data-status='failed'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_jlw8j_102 {\n flex: none;\n}\n\n._detail_jlw8j_106 {\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_jlw8j_2 {\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_jlw8j_124 {\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_jlw8j_132 {\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_jlw8j_3 {\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_jlw8j_158 {\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_jlw8j_158:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_jlw8j_3 {\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_jlw8j_191 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_jlw8j_198 {\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_jlw8j_191 {\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_jlw8j_191:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_jlw8j_191:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_jlw8j_1,\n._bridge_jlw8j_4 {\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_jlw8j_249 {\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_jlw8j_1 ._hint_jlw8j_43,\n._bridge_jlw8j_4 ._hint_jlw8j_43 {\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_jlw8j_1 ._commandRow_jlw8j_3,\n._bridge_jlw8j_4 ._commandRow_jlw8j_3 {\n margin: 0;\n}\n\n._actions_jlw8j_1 ._buttons_jlw8j_191,\n._bridge_jlw8j_4 ._buttons_jlw8j_191 {\n justify-content: flex-start;\n}\n\n._raw_jlw8j_5 {\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\n._rawSummary_jlw8j_282 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_jlw8j_1 ._error_jlw8j_132,\n._bridge_jlw8j_4 ._error_jlw8j_132 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_jlw8j_292 {\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_jlw8j_292 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_jlw8j_309 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_jlw8j_309::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_jlw8j_309:hover {\n text-decoration: underline;\n}\n\n._loading_jlw8j_323 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_jlw8j_323[hidden] {\n display: none;\n}\n\n._loadingMotion_jlw8j_332 {\n transform-origin: center;\n animation: _wb-spin_jlw8j_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_jlw8j_337,\n._loadingArc_jlw8j_338 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_jlw8j_337 {\n opacity: 0.25;\n}\n\n._loadingArc_jlw8j_338 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_jlw8j_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_jlw8j_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_jlw8j_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_jlw8j_332,\n ._loadingArc_jlw8j_338 {\n animation: none;\n }\n}\n._button_ssnyt_1 {\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_ssnyt_1:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._icon_ssnyt_13 {\n display: block;\n transform: scaleX(-1);\n}\n\n._icon_ssnyt_13 svg {\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_1weg4_1 {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n._pop_1weg4_7 {\n position: absolute;\n top: calc(100% + var(--wb-len-8));\n right: 0;\n z-index: var(--wb-z-30);\n width: var(--wb-len-360);\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_1weg4_21 {\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_1weg4_29 {\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._reset_1weg4_37 {\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_1weg4_37:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_1weg4_37:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_1weg4_59 {\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_1weg4_68 {\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: grab;\n}\n\n._row_1weg4_68:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOver_1weg4_83::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_1weg4_93 {\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_1weg4_108 {\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}\n\n._label_1weg4_116 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_1weg4_123 {\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_1weg4_134 {\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_1weg4_142 {\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._blocker_cfaak_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_cfaak_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_cfaak_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_cfaak_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_cfaak_1._blockerInline_cfaak_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_cfaak_1._blockerInline_cfaak_32 ._title_cfaak_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._hint_cfaak_23 {\n max-width: 100%;\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._actions_cfaak_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._raw_cfaak_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_cfaak_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_cfaak_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_cfaak_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_cfaak_71._noticeFlat_cfaak_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_cfaak_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_cfaak_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_cfaak_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_cfaak_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_cfaak_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_cfaak_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._inlineLink_cfaak_134 {\n margin-left: var(--wb-len-2);\n padding: 0;\n border: none;\n background: transparent;\n font: inherit;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n vertical-align: baseline;\n}\n\n._inlineLink_cfaak_134:hover {\n text-decoration: underline;\n}\n\n._inlineLink_cfaak_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n._rawText_cfaak_156 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
7023
+ var COMPONENT_CSS_MARKER = "\n.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 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\n.wb-approvalCommand {\n max-width: 100%;\n}\n.wb-approvalPlan {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-6);\n}\n.wb-approvalHint {\n margin: 0;\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-secondary);\n}\n.wb-approvalRows {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n margin: 0;\n}\n.wb-approvalRow {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n.wb-approvalLabel {\n flex: none;\n width: var(--wb-len-56);\n font-size: var(--dsw-font-xxs-12-font-size);\n line-height: var(--wb-line-18);\n color: var(--dsw-alias-label-tertiary);\n}\n.wb-approvalValue {\n margin: 0;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n overflow-wrap: anywhere;\n}\n.wb-approvalWarn {\n color: var(--dsw-alias-label-secondary);\n}\n\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-len-20);\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\n.wb-cardRefresh.wb-spinning svg {\n animation: wb-spin var(--wb-dur-0-9) linear infinite;\n}\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);\n}\n.wb-cardBody > :not([data-wb-bleed]) {\n padding-left: var(--wb-len-8);\n padding-right: var(--wb-len-8);\n}\n\n.wb-choiceMenu {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-2);\n padding: var(--wb-len-4);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n background: transparent;\n}\n\n.wb-choiceOption {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-height: var(--wb-len-30);\n padding: var(--wb-len-6) 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-choiceOption:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.wb-choiceLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\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 opacity: 0.5;\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-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 display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n color: var(--dsw-alias-label-secondary);\n text-decoration: none;\n white-space: nowrap;\n}\n.wb-longTaskLink:hover,\n.wb-longTaskLink:focus-visible {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n.wb-longTaskLink: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.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.wb-mockStrip {\n display: flex;\n flex-wrap: wrap;\n gap: var(--wb-len-4);\n padding: var(--wb-len-8) var(--wb-len-12);\n border-bottom: 0.5px solid var(--dsw-alias-border-l2);\n flex: none;\n}\n\n.wb-mockNote {\n flex: 1 0 100%;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-14);\n color: var(--dsw-alias-label-tertiary);\n}\n\n.wb-mockChip {\n flex: none;\n padding: var(--wb-len-2) var(--wb-len-7);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--wb-radius-pill);\n corner-shape: round;\n background: transparent;\n font-size: var(--wb-font-10);\n line-height: var(--wb-line-14);\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n}\n\n.wb-mockChip:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-mockChipOn {\n border-color: transparent;\n background: var(--dsw-alias-brand-primary);\n color: var(--dsw-alias-label-primary-foreground);\n}\n.wb-note {\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-problem {\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-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\n.wb-row:has(> [data-wb-dot]) {\n grid-template-columns: 84px minmax(0, 1fr);\n}\n.wb-rows {\n display: flex;\n flex-direction: column;\n}\n.wb-row {\n display: grid;\n grid-template-columns: 56px 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 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-formActions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--wb-len-8);\n}\n.wb-settings {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n padding: var(--wb-len-10);\n border: 0.5px solid var(--dsw-alias-border-l2);\n border-radius: var(--dsw-radius-md);\n background: var(--dsw-alias-bg-layer-1);\n}\n.wb-settingsHead {\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n.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-xxs-12-font-size);\n line-height: var(--wb-line-18);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n.wb-stack {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-10);\n min-height: 0;\n}\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.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[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._marketList_7yq35_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 max-height: var(--wb-len-320);\n overflow-y: auto;\n}\n\n._marketRow_7yq35_12 {\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_7yq35_22 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-40);\n height: var(--wb-len-40);\n border: 0.5px solid var(--dsw-alias-border-l3);\n border-radius: var(--dsw-radius-md);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketMain_7yq35_34 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-4);\n min-width: 0;\n}\n\n._marketName_7yq35_41 {\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._marketDesc_7yq35_50 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n white-space: nowrap;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketUsedBy_7yq35_61 {\n margin-left: var(--wb-len-8);\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 opacity: 0.75;\n}\n\n._marketUsedBy_7yq35_61::before {\n content: '·';\n margin-right: var(--wb-len-6);\n opacity: 0.8;\n}\n\n._marketName_7yq35_41 ._marketVersion_7yq35_75 {\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_7yq35_75 {\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketVersion_7yq35_75::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._marketEnd_7yq35_97 {\n flex: none;\n display: flex;\n align-items: center;\n gap: var(--wb-len-8);\n}\n\n._marketActions_7yq35_104 {\n flex: none;\n display: flex;\n gap: var(--wb-len-6);\n}\n\n._marketSection_7yq35_110 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-8);\n min-width: 0;\n}\n\n._marketSectionHead_7yq35_117 {\n display: flex;\n align-items: baseline;\n gap: var(--wb-len-8);\n}\n\n._marketSectionTitle_7yq35_123 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n._marketSectionCount_7yq35_129 {\n font: var(--dsw-font-s-14);\n font-variant-numeric: tabular-nums;\n color: var(--dsw-alias-label-caption);\n}\n\n._marketProgress_7yq35_135 {\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_7yq35_145 {\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_7yq35_152 {\n grid-column: 2 / -1;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-state-error-primary);\n overflow-wrap: anywhere;\n}\n\n._marketEmpty_7yq35_159 {\n padding: var(--wb-len-18) var(--wb-len-16);\n text-align: center;\n}\n\n._marketPage_7yq35_164 {\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: auto;\n color: var(--dsw-alias-label-primary);\n}\n\n._marketPage_7yq35_164 > * {\n width: 100%;\n max-width: var(--wb-len-960);\n}\n\n._marketPageHead_7yq35_181 {\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_7yq35_189 {\n margin: 0;\n font: var(--dsw-font-l-20);\n}\n\n._marketPageIntro_7yq35_194 {\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_7yq35_200 {\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._marketIconButton_7yq35_209 {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: transparent;\n color: var(--dsw-alias-label-caption);\n cursor: pointer;\n}\n\n._marketIconButton_7yq35_209:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketIconButton_7yq35_209:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._marketIconWrap_7yq35_234 {\n display: inline-flex;\n}\n\n._marketIconButtonSpinning_7yq35_238 svg {\n animation: _wb-spin_7yq35_1 var(--wb-dur-0-9) linear infinite;\n}\n\n._marketAddButton_7yq35_242 {\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_7yq35_159 {\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._marketChecking_7yq35_259 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n\n._marketEmptyTitle_7yq35_267 {\n font: var(--dsw-font-base-strong-16);\n color: var(--dsw-alias-label-primary);\n}\n\n@keyframes _wb-spin_7yq35_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n._foot_1us83_1 {\n display: flex;\n align-items: center;\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_1us83_12 {\n flex: 1;\n min-width: 0;\n}\n\n._footTextMd_1us83_17 {\n flex: 1;\n min-width: 0;\n font: var(--dsw-font-s-14);\n color: var(--dsw-alias-label-secondary);\n}\n._wide_1coeb_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_1coeb_8 {\n width: min(var(--wb-len-560), 100%);\n max-height: min(var(--wb-len-800), 100%);\n}\n\n._content_1coeb_13 {\n min-height: 0;\n overflow: auto;\n}\n\n._stack_1coeb_18 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._body_1coeb_25 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-12);\n min-width: 0;\n}\n\n._field_1coeb_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_1coeb_39 {\n width: 100%;\n height: var(--wb-len-40);\n padding: 0 var(--wb-len-14);\n}\n\n._registryField_1coeb_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_1coeb_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_1coeb_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_1coeb_59:hover {\n color: var(--dsw-alias-label-primary);\n}\n\n._guideToggle_1coeb_59 svg,\n._registryToggle_1coeb_78 svg {\n transition: transform var(--wb-dur-0-12) ease;\n}\n\n._guideToggle_1coeb_59[aria-expanded='true'] svg,\n._registryToggle_1coeb_78[aria-expanded='true'] svg {\n transform: rotate(180deg);\n}\n\n._registryWrap_1coeb_87 {\n position: relative;\n flex: none;\n}\n\n._registryToggle_1coeb_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_1coeb_78:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._registryToggle_1coeb_78:disabled {\n cursor: default;\n opacity: 0.6;\n}\n\n._registryToggle_1coeb_78[aria-expanded='true'] {\n border-color: var(--dsw-alias-border-l3);\n background: var(--dsw-alias-bg-layer-3);\n}\n\n._registryChosen_1coeb_121 {\n color: var(--dsw-alias-label-primary);\n font-weight: 500;\n}\n\n._registry_1coeb_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_1coeb_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_1coeb_143 {\n flex-direction: row;\n align-items: flex-start;\n gap: var(--wb-len-10);\n}\n\n._registryPick_1coeb_159 {\n display: flex;\n align-items: flex-start;\n gap: var(--wb-len-10);\n cursor: pointer;\n}\n\n._registryOption_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_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_1coeb_244 {\n display: flex;\n flex-direction: column;\n flex: 1;\n gap: 0;\n min-width: 0;\n}\n\n._guideTitle_1coeb_252 {\n font: var(--dsw-font-s-14);\n font-weight: 500;\n color: var(--dsw-alias-label-primary);\n}\n\n._guideHint_1coeb_258 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._guideExample_1coeb_264 {\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n overflow-wrap: anywhere;\n}\n\n._guideExample_1coeb_264 code {\n font-family: var(--dsw-font-mono, monospace);\n}\n\n._guideExampleLabel_1coeb_274 {\n color: var(--dsw-alias-label-caption);\n}\n\n._footer_1coeb_278 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-20);\n width: 100%;\n}\n\n._hero_1coeb_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_1coeb_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_1coeb_294[data-state='done'] {\n color: var(--dsw-alias-state-success-secondary);\n}\n\n._heroIcon_1coeb_294[data-state='error'] {\n color: var(--dsw-alias-state-warn-label);\n}\n\n._pendingTitle_1coeb_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_1coeb_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_1coeb_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_1coeb_337 {\n margin: 0;\n font: var(--dsw-font-base-strong-16);\n overflow-wrap: anywhere;\n}\n\n._subjectMeta_1coeb_343,\n._subjectDesc_1coeb_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_1coeb_351,\n._resultWarn_1coeb_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_1coeb_352 {\n background: color-mix(in srgb, var(--dsw-alias-state-warn-primary) 12%, transparent);\n}\n\n._approval_1coeb_365 {\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_1coeb_375 {\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_1coeb_382 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-secondary);\n}\n\n._approvalCaution_1coeb_388 {\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_1coeb_395 {\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_1coeb_402 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._noteError_1coeb_406 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._problem_1coeb_410 {\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_1coeb_417 {\n margin: 0;\n font: var(--dsw-font-xs-13);\n color: var(--dsw-alias-label-caption);\n}\n\n._detail_1coeb_417 {\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._actions_jlw8j_1[hidden],\n._progress_jlw8j_2[hidden],\n._commandRow_jlw8j_3[hidden],\n._bridge_jlw8j_4[hidden],\n._raw_jlw8j_5[hidden] {\n display: none;\n}\n\n._gate_jlw8j_9 {\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_jlw8j_20 {\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_jlw8j_20:has(._actions_jlw8j_1:not([hidden])),\n._card_jlw8j_20:has(._bridge_jlw8j_4:not([hidden])) {\n max-width: var(--wb-len-520);\n}\n\n._title_jlw8j_35 {\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_jlw8j_43 {\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_jlw8j_50 {\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_jlw8j_50 {\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_jlw8j_50[data-status='running'] {\n color: var(--dsw-alias-label-primary);\n}\n\n._mark_jlw8j_77 {\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_jlw8j_50[data-status='ok'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-success-primary);\n}\n\n._step_jlw8j_50[data-status='warn'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n._step_jlw8j_50[data-status='failed'] ._mark_jlw8j_77 {\n color: var(--dsw-alias-state-error-primary);\n}\n\n._label_jlw8j_102 {\n flex: none;\n}\n\n._detail_jlw8j_106 {\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_jlw8j_2 {\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_jlw8j_124 {\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_jlw8j_132 {\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_jlw8j_3 {\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_jlw8j_158 {\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_jlw8j_158:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._command_jlw8j_3 {\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_jlw8j_191 {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: var(--wb-len-12);\n}\n\n._mockSlot_jlw8j_198 {\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_jlw8j_191 {\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_jlw8j_191:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._button_jlw8j_191:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n}\n\n._actions_jlw8j_1,\n._bridge_jlw8j_4 {\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_jlw8j_249 {\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_jlw8j_1 ._hint_jlw8j_43,\n._bridge_jlw8j_4 ._hint_jlw8j_43 {\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_jlw8j_1 ._commandRow_jlw8j_3,\n._bridge_jlw8j_4 ._commandRow_jlw8j_3 {\n margin: 0;\n}\n\n._actions_jlw8j_1 ._buttons_jlw8j_191,\n._bridge_jlw8j_4 ._buttons_jlw8j_191 {\n justify-content: flex-start;\n}\n\n._raw_jlw8j_5 {\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\n._rawSummary_jlw8j_282 {\n cursor: pointer;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._actions_jlw8j_1 ._error_jlw8j_132,\n._bridge_jlw8j_4 ._error_jlw8j_132 {\n margin-top: var(--wb-len-6);\n}\n\n._bridgeLines_jlw8j_292 {\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_jlw8j_292 a {\n display: block;\n margin-top: var(--wb-len-4);\n width: fit-content;\n}\n\n._link_jlw8j_309 {\n color: var(--dsw-alias-label-primary);\n text-decoration: none;\n}\n\n._link_jlw8j_309::after {\n content: '↗';\n margin-left: var(--wb-len-2);\n}\n\n._link_jlw8j_309:hover {\n text-decoration: underline;\n}\n\n._loading_jlw8j_323 {\n flex: none;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._loading_jlw8j_323[hidden] {\n display: none;\n}\n\n._loadingMotion_jlw8j_332 {\n transform-origin: center;\n animation: _wb-spin_jlw8j_1 var(--wb-dur-1-5) linear infinite;\n}\n\n._loadingTrack_jlw8j_337,\n._loadingArc_jlw8j_338 {\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n}\n\n._loadingTrack_jlw8j_337 {\n opacity: 0.25;\n}\n\n._loadingArc_jlw8j_338 {\n stroke-dasharray: 12 150;\n animation: _wb-dash_jlw8j_1 var(--wb-dur-1-5) ease-in-out infinite;\n}\n\n@keyframes _wb-spin_jlw8j_1 {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes _wb-dash_jlw8j_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_jlw8j_332,\n ._loadingArc_jlw8j_338 {\n animation: none;\n }\n}\n._group_1hxis_1 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n}\n\n._button_1hxis_7 {\n flex: none;\n width: var(--wb-len-28);\n height: var(--wb-len-28);\n padding: 0;\n color: var(--dsw-alias-label-secondary);\n}\n\n._button_1hxis_7:hover:not(:disabled) {\n color: var(--dsw-alias-label-primary);\n}\n\n._active_1hxis_19 {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._icon_1hxis_23 {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n._icon_1hxis_23 svg {\n display: block;\n width: var(--wb-len-15);\n height: var(--wb-len-15);\n}\n\n._mirror_1hxis_35 {\n transform: scaleX(-1);\n}\n._stripTabs_1dqp4_1 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-4);\n min-width: 0;\n overflow: hidden;\n}\n\n._tab_1dqp4_9 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n flex: none;\n height: var(--wb-len-28);\n padding: 0 var(--wb-len-10);\n border: 0;\n border-radius: var(--dsw-radius-sm);\n background: none;\n font: inherit;\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-16);\n max-width: 100%;\n}\n\n._tabActive_1dqp4_25 {\n color: var(--dsw-alias-label-primary);\n}\n\n._tabQuiet_1dqp4_29 {\n color: var(--dsw-alias-label-tertiary);\n cursor: pointer;\n}\n\n._tabQuiet_1dqp4_29:hover {\n color: var(--dsw-alias-label-primary);\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._tabTitle_1dqp4_39 {\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n._sep_1dqp4_49 {\n flex: none;\n color: var(--dsw-alias-label-dimmed);\n}\n._trigger_1weg4_1 {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n._pop_1weg4_7 {\n position: absolute;\n top: calc(100% + var(--wb-len-8));\n right: 0;\n z-index: var(--wb-z-30);\n width: var(--wb-len-360);\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_1weg4_21 {\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_1weg4_29 {\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._reset_1weg4_37 {\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_1weg4_37:hover:not(:disabled) {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n._reset_1weg4_37:disabled {\n cursor: default;\n opacity: 0.5;\n}\n\n._list_1weg4_59 {\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_1weg4_68 {\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: grab;\n}\n\n._row_1weg4_68:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n._rowOver_1weg4_83::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_1weg4_93 {\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_1weg4_108 {\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}\n\n._label_1weg4_116 {\n display: flex;\n align-items: center;\n gap: var(--wb-len-6);\n min-width: 0;\n}\n\n._name_1weg4_123 {\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_1weg4_134 {\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_1weg4_142 {\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._panel_1oyh4_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_1oyh4_1[data-fullscreen] {\n z-index: var(--wb-z-40);\n}\n\n._panel_1oyh4_1[data-open] {\n visibility: visible;\n}\n._blocker_cfaak_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_cfaak_10 {\n display: flex;\n color: var(--dsw-alias-label-tertiary);\n}\n\n._title_cfaak_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_cfaak_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_cfaak_1._blockerInline_cfaak_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_cfaak_1._blockerInline_cfaak_32 ._title_cfaak_15 {\n font-size: var(--dsw-font-xs-13-font-size);\n line-height: var(--wb-line-20);\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._hint_cfaak_23 {\n max-width: 100%;\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._actions_cfaak_48 {\n margin-top: var(--wb-len-8);\n}\n\n._blocker_cfaak_1._blockerInline_cfaak_32 ._raw_cfaak_52 {\n margin-top: var(--wb-len-4);\n max-width: 100%;\n}\n\n._actions_cfaak_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_cfaak_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_cfaak_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_cfaak_71._noticeFlat_cfaak_84 {\n margin: 0;\n padding: 0;\n border: 0;\n background: transparent;\n}\n\n._noticeText_cfaak_91 {\n display: flex;\n flex-direction: column;\n gap: var(--wb-len-3);\n min-width: 0;\n}\n\n._noticeTitle_cfaak_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_cfaak_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_cfaak_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_cfaak_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_cfaak_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._inlineLink_cfaak_134 {\n margin-left: var(--wb-len-2);\n padding: 0;\n border: none;\n background: transparent;\n font: inherit;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n display: inline-flex;\n align-items: center;\n gap: var(--wb-len-2);\n vertical-align: baseline;\n}\n\n._inlineLink_cfaak_134:hover {\n text-decoration: underline;\n}\n\n._inlineLink_cfaak_134:disabled {\n opacity: 0.6;\n cursor: default;\n}\n._rawText_cfaak_156 {\n margin: var(--wb-len-6) 0 0;\n max-width: 100%;\n}\n/*$vite$:1*/";
6679
7024
  function installStyles() {
6680
7025
  const style = document.createElement("style");
6681
7026
  style.setAttribute(STYLE_MARKER, "");
6682
- style.textContent = `${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${COMPONENT_CSS_MARKER}`;
7027
+ style.textContent = `${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}`;
6683
7028
  document.head.appendChild(style);
6684
7029
  return () => style.remove();
6685
7030
  }
@@ -6765,6 +7110,120 @@ function mount(ctx) {
6765
7110
  goToPanel: (index) => store.goTo(index)
6766
7111
  };
6767
7112
  const rightbarHooks = { hooks: { rightbar: observable } };
7113
+ const sidebarRight = () => ctx.get("sidebarRight");
7114
+ const dshColumn = createDshColumnSource(() => {
7115
+ const official = sidebarRight();
7116
+ if (official === void 0) return false;
7117
+ return official.mounted.getSnapshot() === void 0 || official.isExpanded();
7118
+ }, 400);
7119
+ let pendingDshOpen = false;
7120
+ let pendingOfficialCall;
7121
+ let unsubscribeOfficial;
7122
+ let restoreOfficial;
7123
+ let officialShimmed = false;
7124
+ let workbenchColumnArmed = false;
7125
+ let disposeWorkbenchColumn;
7126
+ const armWorkbenchColumn = () => {
7127
+ if (workbenchColumnArmed) return;
7128
+ workbenchColumnArmed = true;
7129
+ disposeWorkbenchColumn = ctx.slots.inject("rightbar", () => ctx.slots.register({
7130
+ name: "rightbar",
7131
+ priority: -1,
7132
+ locale: LOCALE_NS,
7133
+ inject: () => ({
7134
+ ...rightbarActions,
7135
+ ...rightbarHooks,
7136
+ units
7137
+ })
7138
+ }, Rightbar));
7139
+ };
7140
+ const releaseWorkbenchColumn = () => {
7141
+ workbenchColumnArmed = false;
7142
+ disposeWorkbenchColumn?.();
7143
+ disposeWorkbenchColumn = void 0;
7144
+ };
7145
+ const flushOfficialCall = () => {
7146
+ const official = sidebarRight();
7147
+ if (official === void 0 || official.mounted.getSnapshot() === void 0) return;
7148
+ if (pendingDshOpen) {
7149
+ pendingDshOpen = false;
7150
+ if (!official.isExpanded()) official.toggleExpanded();
7151
+ }
7152
+ const call = pendingOfficialCall;
7153
+ pendingOfficialCall = void 0;
7154
+ call?.();
7155
+ };
7156
+ const watchOfficial = () => {
7157
+ const official = sidebarRight();
7158
+ if (official === void 0 || unsubscribeOfficial !== void 0) return;
7159
+ unsubscribeOfficial = official.mounted.subscribe(flushOfficialCall);
7160
+ };
7161
+ const armDshColumn = () => {
7162
+ const official = sidebarRight();
7163
+ if (official === void 0) return false;
7164
+ if (official.mounted.getSnapshot() !== void 0) {
7165
+ if (!official.isExpanded()) official.toggleExpanded();
7166
+ return true;
7167
+ }
7168
+ watchOfficial();
7169
+ store.setColumn("dsh");
7170
+ ctx.layout.closeRightbar();
7171
+ releaseWorkbenchColumn();
7172
+ pendingDshOpen = true;
7173
+ return false;
7174
+ };
7175
+ const openInDshColumn = (call) => {
7176
+ shimOfficialNavigation();
7177
+ if (sidebarRight() === void 0) return;
7178
+ if (armDshColumn()) {
7179
+ call();
7180
+ return;
7181
+ }
7182
+ pendingOfficialCall = call;
7183
+ };
7184
+ const shimOfficialNavigation = () => {
7185
+ const official = sidebarRight();
7186
+ if (official === void 0 || officialShimmed) return;
7187
+ const { openResource, openTab } = official;
7188
+ if (typeof openResource !== "function" || typeof openTab !== "function") return;
7189
+ officialShimmed = true;
7190
+ official.openResource = (address, options) => openInDshColumn(() => openResource.call(official, address, options));
7191
+ official.openTab = (kind, options) => openInDshColumn(() => openTab.call(official, kind, options));
7192
+ restoreOfficial = () => {
7193
+ official.openResource = openResource;
7194
+ official.openTab = openTab;
7195
+ officialShimmed = false;
7196
+ };
7197
+ };
7198
+ const selectColumn = (column) => {
7199
+ if (store.getSnapshot().column === column) {
7200
+ if (column === "workbench") {
7201
+ rightbarActions.toggleRightbar();
7202
+ return;
7203
+ }
7204
+ const current = sidebarRight();
7205
+ if (current === void 0 || current.mounted.getSnapshot() === void 0) return;
7206
+ current.toggleExpanded();
7207
+ return;
7208
+ }
7209
+ if (column === "workbench") {
7210
+ store.setColumn("workbench");
7211
+ pendingDshOpen = false;
7212
+ armWorkbenchColumn();
7213
+ store.setExpanded(true);
7214
+ return;
7215
+ }
7216
+ openInDshColumn(() => {});
7217
+ };
7218
+ ctx.effect(() => () => {
7219
+ unsubscribeOfficial?.();
7220
+ unsubscribeOfficial = void 0;
7221
+ restoreOfficial?.();
7222
+ restoreOfficial = void 0;
7223
+ }, "dsh-workbench: 官方椅面订阅与借道");
7224
+ shimOfficialNavigation();
7225
+ watchOfficial();
7226
+ if (store.getSnapshot().column === "workbench") armWorkbenchColumn();
6768
7227
  ctx.slots.inject("sidebar", () => ctx.slots.register({
6769
7228
  name: "sidebar",
6770
7229
  priority: -1,
@@ -6785,16 +7244,6 @@ function mount(ctx) {
6785
7244
  selectPanel: (panelId) => ctx.layout.selectPanel(panelId)
6786
7245
  })
6787
7246
  }, Sidebar));
6788
- ctx.slots.inject("rightbar", () => ctx.slots.register({
6789
- name: "rightbar",
6790
- priority: -1,
6791
- locale: LOCALE_NS,
6792
- inject: () => ({
6793
- ...rightbarActions,
6794
- ...rightbarHooks,
6795
- units
6796
- })
6797
- }, Rightbar));
6798
7247
  registerMarketPanel(ctx, units);
6799
7248
  const gate = createBootGate(ctx);
6800
7249
  ctx.effect(() => () => gate.close(), "dsh-workbench: env gate");
@@ -6812,10 +7261,11 @@ function mount(ctx) {
6812
7261
  priority: -1,
6813
7262
  locale: LOCALE_NS,
6814
7263
  inject: () => ({
6815
- toggleRightbar: rightbarActions.toggleRightbar,
7264
+ selectColumn,
7265
+ dshColumn,
6816
7266
  ...rightbarHooks
6817
7267
  })
6818
- }, ExpandButton));
7268
+ }, ColumnSwitch));
6819
7269
  }
6820
7270
  function sidebarChildren(ctx) {
6821
7271
  return {