@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
package/client.js CHANGED
@@ -435,6 +435,7 @@ window.__ModuleLoader__.load({
435
435
  var DEFAULT_WORKSPACE_TITLE = "default-workspace";
436
436
  var STORAGE_KEY_PROJECT = "dsh-workbench.project";
437
437
  var STORAGE_KEY_RIGHTBAR = "dsh-workbench.rightbar.expanded";
438
+ var STORAGE_KEY_RIGHTBAR_COLUMN = "dsh-workbench.rightbar.column";
438
439
  var LOCALE_NS = "workbench";
439
440
  var LOCALES = ["zh", "en"];
440
441
  //#endregion
@@ -483,11 +484,46 @@ window.__ModuleLoader__.load({
483
484
  var Fragment = react.Fragment;
484
485
  var useState = react.useState;
485
486
  var useEffect = react.useEffect;
487
+ var useLayoutEffect = react.useLayoutEffect;
486
488
  var useMemo = react.useMemo;
487
489
  var useCallback = react.useCallback;
488
490
  var useRef = react.useRef;
489
491
  var useSyncExternalStore = react.useSyncExternalStore;
490
492
  //#endregion
493
+ //#region ../shared/dist/components/Activity.js
494
+ function ActivityBlock({ head, children }) {
495
+ return h("div", { className: "wb-activityBlock" }, head === void 0 ? null : h("div", { className: "wb-activityBlockHead" }, head), children);
496
+ }
497
+ function ActivityLine({ dot, text, at, actions }) {
498
+ 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));
499
+ }
500
+ function ActivityAction({ label, hint, icon, href, onClick, failed }) {
501
+ const tip = hint ?? label;
502
+ if (href !== void 0) return h("a", {
503
+ className: "wb-iconButton",
504
+ href,
505
+ target: "_blank",
506
+ rel: "noreferrer noopener",
507
+ title: tip,
508
+ "aria-label": label
509
+ }, icon);
510
+ return h(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
511
+ side: "bottom",
512
+ align: "end",
513
+ gap: 6,
514
+ portal: true,
515
+ label: tip
516
+ }, h(_deepseek_ai_dsh_client_ui_primitives.Button, {
517
+ type: "button",
518
+ variant: "ghost",
519
+ size: "sm",
520
+ className: failed === true ? "wb-iconButton wb-activityActionFailed" : "wb-iconButton",
521
+ "aria-label": label,
522
+ icon,
523
+ onClick
524
+ }));
525
+ }
526
+ //#endregion
491
527
  //#region ../shared/dist/components/ApprovalDetail.js
492
528
  function callOf(snapshot, callId) {
493
529
  if (callId === void 0) return void 0;
@@ -531,6 +567,14 @@ window.__ModuleLoader__.load({
531
567
  });
532
568
  }
533
569
  //#endregion
570
+ //#region ../shared/dist/components/ApprovalPlan.js
571
+ function ApprovalPlan({ rows, hint, warn, children }) {
572
+ 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", {
573
+ className: "wb-approvalRow",
574
+ key: String(index)
575
+ }, 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));
576
+ }
577
+ //#endregion
534
578
  //#region ../shared/dist/components/CardHead.js
535
579
  function CardHead({ t, title, meta, refreshing, onRefresh, gear, gearOpen, onToggleGear, platformHref, platform, platformTitle }) {
536
580
  const refreshLabel = refreshing ? t("rightbar.refreshing") : t("rightbar.refresh");
@@ -579,6 +623,17 @@ window.__ModuleLoader__.load({
579
623
  })));
580
624
  }
581
625
  //#endregion
626
+ //#region ../shared/dist/components/Card.js
627
+ function Card({ t, title, refreshing, onRefresh, meta, head, children }) {
628
+ return h("section", { className: "wb-card" }, head === void 0 ? h(CardHead, {
629
+ t,
630
+ title,
631
+ refreshing,
632
+ onRefresh,
633
+ meta
634
+ }) : head, h("div", { className: "wb-cardBody" }, children));
635
+ }
636
+ //#endregion
582
637
  //#region ../shared/dist/components/ChoiceGroup.js
583
638
  function ChoiceGroup({ label, name, value, options, disabled, onChange }) {
584
639
  return h("div", {
@@ -665,6 +720,12 @@ window.__ModuleLoader__.load({
665
720
  }, mock.label)));
666
721
  }
667
722
  //#endregion
723
+ //#region ../shared/dist/components/Note.js
724
+ function Note({ tone = "muted", as, children }) {
725
+ const className = tone === "problem" ? "wb-problem" : "wb-note";
726
+ return as === "span" ? h("span", { className }, children) : h("p", { className }, children);
727
+ }
728
+ //#endregion
668
729
  //#region ../shared/dist/components/ResourceStates.js
669
730
  function SkeletonRows({ rows = 4 }) {
670
731
  return h("div", {
@@ -692,6 +753,14 @@ window.__ModuleLoader__.load({
692
753
  });
693
754
  }
694
755
  //#endregion
756
+ //#region ../shared/dist/components/Rows.js
757
+ function Rows({ children }) {
758
+ return h("div", { className: "wb-rows" }, children);
759
+ }
760
+ function Row({ label, value }) {
761
+ return h("div", { className: "wb-row" }, h("span", { className: "wb-rowKey" }, label), h("span", { className: "wb-rowValue" }, value));
762
+ }
763
+ //#endregion
695
764
  //#region ../shared/dist/components/SaveBar.js
696
765
  function SaveBar({ busy, disabled, labels, onCancel, onSave }) {
697
766
  return h("div", { className: "wb-formActions" }, h(_deepseek_ai_dsh_client_ui_primitives.Button, {
@@ -709,6 +778,25 @@ window.__ModuleLoader__.load({
709
778
  }, busy ? labels.saving : labels.save));
710
779
  }
711
780
  //#endregion
781
+ //#region ../shared/dist/components/SettingsSection.js
782
+ function SettingsSection({ label, title, action, children }) {
783
+ return h("section", {
784
+ className: "wb-settings",
785
+ role: "group",
786
+ "aria-label": label
787
+ }, h("header", { className: "wb-settingsHead" }, h("span", { className: "wb-settingsTitle" }, title), action), children);
788
+ }
789
+ //#endregion
790
+ //#region ../shared/dist/components/Stack.js
791
+ function Stack({ children }) {
792
+ return h("div", { className: "wb-stack" }, children);
793
+ }
794
+ //#endregion
795
+ //#region ../shared/dist/components/StateBlock.js
796
+ function StateBlock({ title, dot, hint, actions, resolving, children }) {
797
+ 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));
798
+ }
799
+ //#endregion
712
800
  //#region ../shared/dist/components/TextField.js
713
801
  function TextField({ invalid = false, className, ...rest }) {
714
802
  return h("input", {
@@ -800,6 +888,20 @@ window.__ModuleLoader__.load({
800
888
  strokeWidth: "1.2"
801
889
  }));
802
890
  }
891
+ function IconPanelScreen({ size = 16 }) {
892
+ return h("svg", {
893
+ width: size,
894
+ height: size,
895
+ viewBox: "0 0 1024 1024",
896
+ fill: "currentColor",
897
+ xmlns: "http://www.w3.org/2000/svg",
898
+ "aria-hidden": "true",
899
+ style: {
900
+ display: "block",
901
+ overflow: "hidden"
902
+ }
903
+ }, 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" }));
904
+ }
803
905
  //#endregion
804
906
  //#region ../shared/dist/config/storage.js
805
907
  function readText(key) {
@@ -906,7 +1008,7 @@ window.__ModuleLoader__.load({
906
1008
  "panels.market.empty": "No modules available",
907
1009
  "panels.market.installedSection": "Installed",
908
1010
  "panels.market.moduleOutdated": "update available",
909
- "panels.market.moduleRestartHint": "it may need a restart after installing",
1011
+ "panels.market.moduleRestartHint": "installed but not active — restart dsh once to bring it up",
910
1012
  "panels.market.restartNeeded": "The new version is installed — restart once to pick it up.",
911
1013
  "panels.market.foot": "After installing, enable it in the panel page of that project.",
912
1014
  "panels.market.recheck": "Check for updates",
@@ -1102,13 +1204,16 @@ window.__ModuleLoader__.load({
1102
1204
  "rightbar.label": "Data panels",
1103
1205
  "rightbar.expand": "Expand the data panel",
1104
1206
  "rightbar.collapse": "Collapse the data panel",
1207
+ "rightbar.column.label": "Right column",
1208
+ "rightbar.column.workbench": "Workbench panel",
1209
+ "rightbar.column.dsh": "dsh panel",
1105
1210
  "rightbar.refresh": "Refresh",
1106
1211
  "rightbar.refreshing": "Refreshing…",
1107
1212
  "rightbar.updatedAt": "updated {time}",
1108
1213
  "rightbar.noProject": "The current session has no workspace",
1109
1214
  "coding.notARepo.title": "This workspace is not a Coding repository",
1110
1215
  "error.unknown": "Something went wrong",
1111
- "board.title": "Board",
1216
+ "board.title": "Workbench panel",
1112
1217
  "panel.conversation": "Conversation",
1113
1218
  "panels.label": "Global panels"
1114
1219
  };
@@ -1195,7 +1300,7 @@ window.__ModuleLoader__.load({
1195
1300
  "panels.market.empty": "暂无可用模块",
1196
1301
  "panels.market.installedSection": "已装",
1197
1302
  "panels.market.moduleOutdated": "有新版",
1198
- "panels.market.moduleRestartHint": "安装完成后可能需要重启才生效",
1303
+ "panels.market.moduleRestartHint": "装好了但还没生效 —— 重启一次 dsh 就会出来",
1199
1304
  "panels.market.restartNeeded": "新版装好了,重启一次才生效。",
1200
1305
  "panels.market.foot": "装好后到那个项目的面板页勾选它,模块才会出现。",
1201
1306
  "panels.market.recheck": "重新检查更新",
@@ -1391,13 +1496,16 @@ window.__ModuleLoader__.load({
1391
1496
  "rightbar.label": "数据面板",
1392
1497
  "rightbar.expand": "展开数据面板",
1393
1498
  "rightbar.collapse": "收起数据面板",
1499
+ "rightbar.column.label": "右侧栏",
1500
+ "rightbar.column.workbench": "工作台面板",
1501
+ "rightbar.column.dsh": "dsh 面板",
1394
1502
  "rightbar.refresh": "刷新",
1395
1503
  "rightbar.refreshing": "刷新中…",
1396
1504
  "rightbar.updatedAt": "更新于 {time}",
1397
1505
  "rightbar.noProject": "当前会话没有所属项目",
1398
1506
  "coding.notARepo.title": "这个项目不是 Coding 仓库",
1399
1507
  "error.unknown": "出错了",
1400
- "board.title": "看板",
1508
+ "board.title": "工作台面板",
1401
1509
  "panel.conversation": "对话",
1402
1510
  "panels.label": "全局面板"
1403
1511
  };
@@ -1504,9 +1612,14 @@ window.__ModuleLoader__.load({
1504
1612
  var dist_exports = /* @__PURE__ */ __exportAll({
1505
1613
  ACTIONS_PREFIX: () => ACTIONS_PREFIX,
1506
1614
  API_PREFIX: () => API_PREFIX,
1615
+ ActivityAction: () => ActivityAction,
1616
+ ActivityBlock: () => ActivityBlock,
1617
+ ActivityLine: () => ActivityLine,
1507
1618
  ApprovalDetail: () => ApprovalDetail,
1619
+ ApprovalPlan: () => ApprovalPlan,
1508
1620
  CODING_ISSUES_SERVICE: () => CODING_ISSUES_SERVICE,
1509
1621
  CONTEXT_MARKER_NAME: () => CONTEXT_MARKER_NAME,
1622
+ Card: () => Card,
1510
1623
  CardHead: () => CardHead,
1511
1624
  CenteredState: () => CenteredState,
1512
1625
  ChoiceGroup: () => ChoiceGroup,
@@ -1521,6 +1634,7 @@ window.__ModuleLoader__.load({
1521
1634
  IconBrandMark: () => IconBrandMark,
1522
1635
  IconConversation: () => IconConversation,
1523
1636
  IconModules: () => IconModules,
1637
+ IconPanelScreen: () => IconPanelScreen,
1524
1638
  LOCALES: () => LOCALES,
1525
1639
  LOCALE_NS: () => LOCALE_NS,
1526
1640
  LONG_TASK_IDLE_MS: () => LONG_TASK_IDLE_MS,
@@ -1528,6 +1642,7 @@ window.__ModuleLoader__.load({
1528
1642
  LongTaskRow: () => LongTaskRow,
1529
1643
  MIN_BUSY_MS: () => 500,
1530
1644
  MockStrip: () => MockStrip,
1645
+ Note: () => Note,
1531
1646
  OPENCLI_MAX_CONCURRENT: () => 4,
1532
1647
  OPENCLI_PIN: () => OPENCLI_PIN,
1533
1648
  OPENCLI_TIMEOUT_MS: () => OPENCLI_TIMEOUT_MS,
@@ -1538,10 +1653,17 @@ window.__ModuleLoader__.load({
1538
1653
  PREFS_PREFIX: () => PREFS_PREFIX,
1539
1654
  PROBE_TTL_MS: () => PROBE_TTL_MS,
1540
1655
  PROVISION_PREFIX: () => PROVISION_PREFIX,
1656
+ RIGHTBAR_FULLSCREEN_WIDTH: () => 768,
1657
+ Row: () => Row,
1658
+ Rows: () => Rows,
1541
1659
  STORAGE_KEY_PROJECT: () => STORAGE_KEY_PROJECT,
1542
1660
  STORAGE_KEY_RIGHTBAR: () => STORAGE_KEY_RIGHTBAR,
1661
+ STORAGE_KEY_RIGHTBAR_COLUMN: () => STORAGE_KEY_RIGHTBAR_COLUMN,
1543
1662
  SaveBar: () => SaveBar,
1663
+ SettingsSection: () => SettingsSection,
1544
1664
  SkeletonRows: () => SkeletonRows,
1665
+ Stack: () => Stack,
1666
+ StateBlock: () => StateBlock,
1545
1667
  TextField: () => TextField,
1546
1668
  UNITS_SERVICE: () => UNITS_SERVICE,
1547
1669
  VERSION_CHECK_TIMEOUT_MS: () => VERSION_CHECK_TIMEOUT_MS,
@@ -1588,6 +1710,7 @@ window.__ModuleLoader__.load({
1588
1710
  unitFactScope: () => unitFactScope,
1589
1711
  useCallback: () => useCallback,
1590
1712
  useEffect: () => useEffect,
1713
+ useLayoutEffect: () => useLayoutEffect,
1591
1714
  useMemo: () => useMemo,
1592
1715
  useRef: () => useRef,
1593
1716
  useState: () => useState,
@@ -1921,6 +2044,14 @@ window.__ModuleLoader__.load({
1921
2044
  return input.now - input.checkedAt >= input.staleMs;
1922
2045
  }
1923
2046
  //#endregion
2047
+ //#region src/app/layouts/rightbar/market-settle.ts
2048
+ var MODULE_SETTLE_MS = 15e3;
2049
+ function holdBack(installed, roster, active, previous) {
2050
+ const pending = installed.filter((unit) => !roster.has(unit));
2051
+ const fresh = previous === null ? [] : pending.filter((unit) => !previous.has(unit));
2052
+ return pending.filter((unit) => active.has(unit) || fresh.includes(unit));
2053
+ }
2054
+ //#endregion
1924
2055
  //#region src/app/layouts/rightbar/market-mock.ts
1925
2056
  function installable(manifest) {
1926
2057
  return {
@@ -2512,20 +2643,21 @@ window.__ModuleLoader__.load({
2512
2643
  host: { inject: [] }
2513
2644
  };
2514
2645
  function FixtureCard({ t, onRefresh }) {
2515
- return /* @__PURE__ */ h("section", { className: "wb-card" }, /* @__PURE__ */ h(CardHead, {
2646
+ return /* @__PURE__ */ h(Card, {
2516
2647
  t,
2517
2648
  title: t(KEY.cardTitle),
2518
2649
  meta: t(KEY.cardMeta),
2519
2650
  refreshing: false,
2520
2651
  onRefresh
2521
- }), /* @__PURE__ */ h("div", { className: "wb-cardBody" }, /* @__PURE__ */ h("div", { className: "wb-rows" }, [
2652
+ }, /* @__PURE__ */ h(Rows, null, [
2522
2653
  1,
2523
2654
  2,
2524
2655
  3
2525
- ].map((n) => /* @__PURE__ */ h("div", {
2526
- className: "wb-row",
2527
- key: String(n)
2528
- }, /* @__PURE__ */ h("span", { className: "wb-rowKey" }, t(KEY.rowKey)), /* @__PURE__ */ h("span", { className: "wb-rowValue" }, t(KEY.rowValue, { n: String(n) })))))));
2656
+ ].map((n) => /* @__PURE__ */ h(Row, {
2657
+ key: String(n),
2658
+ label: t(KEY.rowKey),
2659
+ value: t(KEY.rowValue, { n: String(n) })
2660
+ }))));
2529
2661
  }
2530
2662
  var FIXTURE_FACE = {
2531
2663
  manifest,
@@ -2560,7 +2692,17 @@ window.__ModuleLoader__.load({
2560
2692
  unchecked: "idle",
2561
2693
  unknown: "idle"
2562
2694
  };
2563
- function installedRows(modules, manifests, listed) {
2695
+ function mergeTitles(known, manifests) {
2696
+ let next = null;
2697
+ for (const manifest of manifests) {
2698
+ const titleKey = manifest.card?.titleKey;
2699
+ if (titleKey === void 0 || known.has(manifest.id)) continue;
2700
+ next ??= new Map(known);
2701
+ next.set(manifest.id, titleKey);
2702
+ }
2703
+ return next ?? known;
2704
+ }
2705
+ function installedRows(modules, manifests, listed, known) {
2564
2706
  const titles = new Map(manifests.map((manifest) => [manifest.id, manifest.card?.titleKey]));
2565
2707
  const rows = [];
2566
2708
  for (const module of modules) {
@@ -2569,8 +2711,9 @@ window.__ModuleLoader__.load({
2569
2711
  const outdated = latest !== void 0 && latest !== module.installed;
2570
2712
  rows.push({
2571
2713
  id: module.unit,
2572
- titleKey: titles.get(module.unit) ?? module.pkg,
2714
+ titleKey: titles.get(module.unit) ?? known?.get(module.unit) ?? module.pkg,
2573
2715
  state: outdated ? "outdated" : "installed",
2716
+ hint: "panels.market.moduleRestartHint",
2574
2717
  pkg: module.pkg,
2575
2718
  canInstall: false,
2576
2719
  canUpdate: outdated,
@@ -2629,6 +2772,12 @@ window.__ModuleLoader__.load({
2629
2772
  function isOnMachine(state) {
2630
2773
  return state === "installed" || state === "outdated";
2631
2774
  }
2775
+ function liveManifests(manifests, capabilities, installed) {
2776
+ if (capabilities === null || installed === null) return manifests;
2777
+ 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));
2778
+ if (gone.size === 0) return manifests;
2779
+ return manifests.filter((manifest) => !gone.has(manifest.id));
2780
+ }
2632
2781
  function marketHasUpdates(rows, shared = []) {
2633
2782
  return rows.some((row) => row.state === "outdated" || row.moduleUpdate !== void 0) || shared.some((row) => row.state === "outdated" || row.state === "unsatisfied");
2634
2783
  }
@@ -2758,6 +2907,7 @@ window.__ModuleLoader__.load({
2758
2907
  ...bucket.installed === void 0 ? {} : { installed: bucket.installed },
2759
2908
  ...bucket.latest === void 0 ? {} : { latest: bucket.latest }
2760
2909
  };
2910
+ 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}`}`;
2761
2911
  rows.push({
2762
2912
  id: `${bucket.kind}:${bucket.name}`,
2763
2913
  label: bucket.label,
@@ -2765,7 +2915,7 @@ window.__ModuleLoader__.load({
2765
2915
  state,
2766
2916
  canUpdate: state === "outdated" || state === "unsatisfied",
2767
2917
  ...version === void 0 ? {} : { version },
2768
- detail: `${bucket.label}${bucket.purpose === void 0 ? "" : ` —— ${bucket.purpose}`}${bucket.command === void 0 ? "" : ` · ${bucket.command}`}`
2918
+ ...detail === void 0 ? {} : { detail }
2769
2919
  });
2770
2920
  }
2771
2921
  return rows;
@@ -2822,15 +2972,188 @@ window.__ModuleLoader__.load({
2822
2972
  clear
2823
2973
  };
2824
2974
  }
2825
- var PanelFoot_module_default = {
2826
- foot: "_foot_1us83_1",
2827
- footText: "_footText_1us83_12",
2828
- footTextMd: "_footTextMd_1us83_17"
2975
+ //#endregion
2976
+ //#region src/app/layouts/market/add-module-text.ts
2977
+ var GUIDE_ITEMS = [
2978
+ {
2979
+ titleKey: "panels.market.add.guideIdTitle",
2980
+ exampleKey: "panels.market.add.guideIdExample",
2981
+ hintKey: "panels.market.add.guideIdHint"
2982
+ },
2983
+ {
2984
+ titleKey: "panels.market.add.guideGitTitle",
2985
+ exampleKey: "panels.market.add.guideGitExample",
2986
+ hintKey: "panels.market.add.guideGitHint"
2987
+ },
2988
+ {
2989
+ titleKey: "panels.market.add.guidePathTitle",
2990
+ exampleKey: "panels.market.add.guidePathExample",
2991
+ hintKey: "panels.market.add.guidePathHint"
2992
+ }
2993
+ ];
2994
+ function hostOf(url) {
2995
+ try {
2996
+ return new URL(url).host;
2997
+ } catch {
2998
+ return url;
2999
+ }
3000
+ }
3001
+ var OFFICIAL_NPM_HOST = "registry.npmjs.org";
3002
+ var KNOWN_HOSTS = {
3003
+ [OFFICIAL_NPM_HOST]: "panels.market.add.registryOfficial",
3004
+ "registry.npmmirror.com": "panels.market.add.registryMirror"
3005
+ };
3006
+ function registryNameKey(host) {
3007
+ return KNOWN_HOSTS[host];
3008
+ }
3009
+ function normalizeRegistry(url) {
3010
+ const parsed = new URL(url);
3011
+ if (!parsed.pathname.endsWith("/")) parsed.pathname += "/";
3012
+ return parsed.href;
3013
+ }
3014
+ function registryKey(url, resolved) {
3015
+ const target = url ?? resolved;
3016
+ if (target === null) return "";
3017
+ try {
3018
+ return normalizeRegistry(target);
3019
+ } catch {
3020
+ return target;
3021
+ }
3022
+ }
3023
+ function registryOptions(registries) {
3024
+ const resolved = registries === null ? null : registries.resolved;
3025
+ const entries = [
3026
+ registries === null ? null : registries.registry,
3027
+ ...registries === null ? [] : registries.fallbackRegistries,
3028
+ null
3029
+ ];
3030
+ const offered = [];
3031
+ const keys = /* @__PURE__ */ new Set();
3032
+ for (const entry of entries) {
3033
+ const key = registryKey(entry, resolved);
3034
+ if (keys.has(key)) continue;
3035
+ keys.add(key);
3036
+ const url = entry ?? resolved;
3037
+ if (url === null) {
3038
+ offered.push({
3039
+ choice: {
3040
+ kind: "default",
3041
+ value: ""
3042
+ },
3043
+ host: OFFICIAL_NPM_HOST,
3044
+ nameKey: "panels.market.add.registryDefault"
3045
+ });
3046
+ continue;
3047
+ }
3048
+ const host = hostOf(url);
3049
+ const nameKey = registryNameKey(host);
3050
+ offered.push({
3051
+ choice: entry === null ? {
3052
+ kind: "default",
3053
+ value: ""
3054
+ } : {
3055
+ kind: "url",
3056
+ value: entry
3057
+ },
3058
+ host,
3059
+ ...nameKey === void 0 ? {} : { nameKey }
3060
+ });
3061
+ }
3062
+ offered.push({ choice: {
3063
+ kind: "custom",
3064
+ value: ""
3065
+ } });
3066
+ return offered;
3067
+ }
3068
+ function customRegistryAllowed(value) {
3069
+ return /^https?:\/\//.test(value.trim());
3070
+ }
3071
+ function registryOf(choice, custom) {
3072
+ if (choice.kind === "custom") return customRegistryAllowed(custom) ? custom.trim() : void 0;
3073
+ return choice.value === "" ? void 0 : choice.value;
3074
+ }
3075
+ function registryName(option, t) {
3076
+ if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3077
+ if (option.nameKey !== void 0) return t(option.nameKey);
3078
+ return option.host ?? t("panels.market.add.registryDefault");
3079
+ }
3080
+ function optionLabel(option, t) {
3081
+ if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3082
+ if (option.host === void 0) return t("panels.market.add.registryDefault");
3083
+ return option.nameKey === void 0 ? option.host : t("panels.market.add.registryWithHost", {
3084
+ name: t(option.nameKey),
3085
+ host: option.host
3086
+ });
3087
+ }
3088
+ var PROBLEM_KEYS = {
3089
+ "invalid-spec": "panels.market.add.problemInvalid",
3090
+ "already-installed": "panels.market.add.problemInstalled",
3091
+ "not-found": "panels.market.add.problemNotFound",
3092
+ "not-a-package": "panels.market.add.problemNotPackage",
3093
+ "not-a-bundle": "panels.market.add.problemNotBundle",
3094
+ network: "panels.market.add.problemNetwork",
3095
+ unknown: "panels.market.add.problemUnknown"
3096
+ };
3097
+ function problemKey(problem) {
3098
+ return PROBLEM_KEYS[problem] ?? PROBLEM_KEYS.unknown;
3099
+ }
3100
+ var FAILURE_KEYS = {
3101
+ network: "panels.market.add.failureNetwork",
3102
+ "spec-host": "panels.market.add.failureNetworkHost",
3103
+ "not-found": "panels.market.add.failureNotFound",
3104
+ "no-matching-version": "panels.market.add.failureNoMatchingVersion",
3105
+ "disk-full": "panels.market.add.failureDiskFull",
3106
+ permission: "panels.market.add.failurePermission",
3107
+ "build-blocked": "panels.market.add.failureBuildBlocked",
3108
+ integrity: "panels.market.add.failureIntegrity",
3109
+ timeout: "panels.market.add.failureTimeout",
3110
+ "pnpm-missing": "panels.market.add.failurePnpmMissing",
3111
+ "operation-error": "panels.market.add.failureGeneric",
3112
+ "incompatible-version": "panels.market.add.failureGeneric",
3113
+ "not-bundle": "panels.market.add.failureGeneric",
3114
+ "invalid-spec": "panels.market.add.failureGeneric",
3115
+ "bundle-in-use": "panels.market.add.failureGeneric",
3116
+ "not-removable": "panels.market.add.failureGeneric",
3117
+ "stop-profile": "panels.market.add.failureGeneric",
3118
+ "stale-approval": "panels.market.add.failureGeneric"
3119
+ };
3120
+ function failureCode(change) {
3121
+ if (change.failedAt === "spec-host") return "spec-host";
3122
+ return change.errorCode ?? change.packageResult?.kind ?? change.application;
3123
+ }
3124
+ function failureReasonKey(code) {
3125
+ return FAILURE_KEYS[code];
3126
+ }
3127
+ function failureReason(code, application, t) {
3128
+ const key = failureReasonKey(code);
3129
+ if (key !== void 0) return t(key);
3130
+ if (code === application) return t("panels.market.add.reason.unknown");
3131
+ return code;
3132
+ }
3133
+ var SUPPLY_KEYS = {
3134
+ "pending-restart": "panels.market.add.supplyPending",
3135
+ failed: "panels.market.add.supplyFailed",
3136
+ "not-a-module": "panels.market.add.notModule",
3137
+ "no-needs": void 0
2829
3138
  };
3139
+ function supplyKey(state) {
3140
+ return SUPPLY_KEYS[state];
3141
+ }
2830
3142
  //#endregion
2831
- //#region src/shared/components/PanelFoot.tsx
2832
- function PanelFoot({ text, size = "sm", children }) {
2833
- 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);
3143
+ //#region src/app/layouts/rightbar/market-change.ts
3144
+ var SHIPPED = [
3145
+ "applied",
3146
+ "restart-required",
3147
+ "overridden"
3148
+ ];
3149
+ function changeOf(value) {
3150
+ const change = value?.change;
3151
+ if (typeof change !== "object" || change === null) return void 0;
3152
+ return typeof change.application === "string" ? change : void 0;
3153
+ }
3154
+ function changeFailure(change, t) {
3155
+ if (change === void 0 || SHIPPED.includes(change.application)) return void 0;
3156
+ return failureReason(failureCode(change), change.application, t);
2834
3157
  }
2835
3158
  var MarketPage_module_default = {
2836
3159
  marketList: "_marketList_7yq35_1",
@@ -2865,7 +3188,18 @@ window.__ModuleLoader__.load({
2865
3188
  marketEmptyTitle: "_marketEmptyTitle_7yq35_267"
2866
3189
  };
2867
3190
  //#endregion
2868
- //#region src/app/layouts/rightbar/MarketView.tsx
3191
+ //#region src/app/layouts/rightbar/MarketStates.tsx
3192
+ function MarketChecking({ t }) {
3193
+ 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, {
3194
+ state: "ongoing",
3195
+ size: 14
3196
+ }), t("panels.market.checking")));
3197
+ }
3198
+ function MarketEmpty({ t }) {
3199
+ return /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmpty }, /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketEmptyTitle }, t("panels.market.empty")));
3200
+ }
3201
+ //#endregion
3202
+ //#region src/app/layouts/rightbar/market-view-text.ts
2869
3203
  var PROGRESS_KEY = {
2870
3204
  install: "panels.market.installing",
2871
3205
  update: "panels.market.updating",
@@ -2882,18 +3216,22 @@ window.__ModuleLoader__.load({
2882
3216
  uninstall: "panels.market.uninstall",
2883
3217
  "update-dependency": "panels.market.update"
2884
3218
  };
2885
- function MarketLine({ t, row, pending, failure, onAct }) {
3219
+ //#endregion
3220
+ //#region src/app/layouts/rightbar/SharedSection.tsx
3221
+ function SharedLine({ t, row, pending, failure, onAct }) {
2886
3222
  const running = pending !== null && pending.id === row.id ? pending : null;
2887
3223
  const locked = pending !== null;
2888
- const actions = marketActions$1(row);
2889
- const stateText = t(row.moduleUpdate === void 0 ? MARKET_STATE_KEY[row.state] : "panels.market.moduleOutdated");
3224
+ const actions = sharedActions(row);
3225
+ const stateText = t(SHARED_STATE_KEY[row.state]);
3226
+ const version = row.version;
3227
+ 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", {
3228
+ from: version.installed,
3229
+ to: version.latest
3230
+ }) : version.installed ?? version.latest ?? ""));
2890
3231
  return /* @__PURE__ */ h("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ h("span", {
2891
3232
  className: MarketPage_module_default.marketIcon,
2892
3233
  "aria-hidden": "true"
2893
- }, /* @__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", {
2894
- from: row.version.installed,
2895
- to: row.version.latest
2896
- }) : row.version.installed ?? row.version.latest ?? "")), /* @__PURE__ */ h(Tip, { label: stateText }, /* @__PURE__ */ h("span", {
3234
+ }, /* @__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", {
2897
3235
  className: MarketPage_module_default.marketDesc,
2898
3236
  role: "img",
2899
3237
  "aria-label": stateText
@@ -2901,39 +3239,57 @@ window.__ModuleLoader__.load({
2901
3239
  state: "ongoing",
2902
3240
  size: 14
2903
3241
  }) : /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2904
- state: MARKET_DOT[row.state],
3242
+ state: SHARED_DOT[row.state],
2905
3243
  size: 9
2906
- }), 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, {
3244
+ }), 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, {
2907
3245
  state: "ongoing",
2908
3246
  size: 14
2909
- }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
2910
- const danger = action === "uninstall" || action === "remove-bundle";
2911
- return /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
2912
- key: action,
2913
- type: "button",
2914
- size: "sm",
2915
- variant: action === "install" ? "primary" : "outline",
2916
- className: danger ? "wb-dangerAction" : void 0,
2917
- icon: danger ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 13 }) : void 0,
2918
- "aria-label": danger ? t("panels.market.uninstallLabel", { name: t(row.titleKey) }) : void 0,
2919
- disabled: locked,
2920
- onClick: () => onAct(action)
2921
- }, t(ACTION_LABEL_KEY[action]));
2922
- }))), 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));
3247
+ }), 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, {
3248
+ key: action,
3249
+ type: "button",
3250
+ size: "sm",
3251
+ variant: "outline",
3252
+ disabled: locked,
3253
+ onClick: () => onAct(action)
3254
+ }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
2923
3255
  }
2924
- function SharedLine({ t, row, pending, failure, onAct }) {
3256
+ function SharedSection({ t, rows, pending, failureOf, act }) {
3257
+ if (rows.length === 0) return null;
3258
+ 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, {
3259
+ key: row.id,
3260
+ t,
3261
+ row,
3262
+ pending,
3263
+ failure: failureOf(row.id),
3264
+ onAct: (action) => void act(row.id, action)
3265
+ }))));
3266
+ }
3267
+ var PanelFoot_module_default = {
3268
+ foot: "_foot_1us83_1",
3269
+ footText: "_footText_1us83_12",
3270
+ footTextMd: "_footTextMd_1us83_17"
3271
+ };
3272
+ //#endregion
3273
+ //#region src/shared/components/PanelFoot.tsx
3274
+ function PanelFoot({ text, size = "sm", children }) {
3275
+ 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);
3276
+ }
3277
+ //#endregion
3278
+ //#region src/app/layouts/rightbar/MarketView.tsx
3279
+ var CONFIRM_UNINSTALL = ["uninstall", "remove-bundle"];
3280
+ var CONFIRM_REMOVE = ["remove-bundle"];
3281
+ function MarketLine({ t, row, pending, failure, onAct }) {
2925
3282
  const running = pending !== null && pending.id === row.id ? pending : null;
2926
3283
  const locked = pending !== null;
2927
- const actions = sharedActions(row);
2928
- const stateText = t(SHARED_STATE_KEY[row.state]);
2929
- const version = row.version;
3284
+ const actions = marketActions$1(row);
3285
+ const stateText = t(row.moduleUpdate === void 0 ? MARKET_STATE_KEY[row.state] : "panels.market.moduleOutdated");
2930
3286
  return /* @__PURE__ */ h("li", { className: MarketPage_module_default.marketRow }, /* @__PURE__ */ h("span", {
2931
3287
  className: MarketPage_module_default.marketIcon,
2932
3288
  "aria-hidden": "true"
2933
- }, /* @__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", {
2934
- from: version.installed,
2935
- to: version.latest
2936
- }) : version.installed ?? version.latest ?? ""))), /* @__PURE__ */ h(Tip, { label: stateText }, /* @__PURE__ */ h("span", {
3289
+ }, /* @__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", {
3290
+ from: row.version.installed,
3291
+ to: row.version.latest
3292
+ }) : row.version.installed ?? row.version.latest ?? "")), /* @__PURE__ */ h("span", {
2937
3293
  className: MarketPage_module_default.marketDesc,
2938
3294
  role: "img",
2939
3295
  "aria-label": stateText
@@ -2941,19 +3297,25 @@ window.__ModuleLoader__.load({
2941
3297
  state: "ongoing",
2942
3298
  size: 14
2943
3299
  }) : /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.StateDot, {
2944
- state: SHARED_DOT[row.state],
3300
+ state: MARKET_DOT[row.state],
2945
3301
  size: 9
2946
- }), 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, {
3302
+ }), 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, {
2947
3303
  state: "ongoing",
2948
3304
  size: 14
2949
- }), 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, {
2950
- key: action,
2951
- type: "button",
2952
- size: "sm",
2953
- variant: "outline",
2954
- disabled: locked,
2955
- onClick: () => onAct(action)
2956
- }, t(ACTION_LABEL_KEY[action]))))), failure === null ? null : /* @__PURE__ */ h("div", { className: MarketPage_module_default.marketFailure }, failure));
3305
+ }), t(PROGRESS_KEY[running.action])) : actions.length === 0 ? null : /* @__PURE__ */ h("span", { className: MarketPage_module_default.marketActions }, actions.map((action) => {
3306
+ const danger = action === "uninstall" || action === "remove-bundle";
3307
+ return /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3308
+ key: action,
3309
+ type: "button",
3310
+ size: "sm",
3311
+ variant: action === "install" ? "primary" : "outline",
3312
+ className: danger ? "wb-dangerAction" : void 0,
3313
+ icon: danger ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconTrashOutlineRegular, { size: 13 }) : void 0,
3314
+ "aria-label": danger ? t("panels.market.uninstallLabel", { name: t(row.titleKey) }) : void 0,
3315
+ disabled: locked,
3316
+ onClick: () => onAct(action)
3317
+ }, t(ACTION_LABEL_KEY[action]));
3318
+ }))), 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));
2957
3319
  }
2958
3320
  function ConfirmUninstall({ t, name, onConfirm, onCancel }) {
2959
3321
  const [acknowledged, setAcknowledged] = useState(false);
@@ -2971,7 +3333,7 @@ window.__ModuleLoader__.load({
2971
3333
  onConfirm
2972
3334
  });
2973
3335
  }
2974
- function MarketSection({ t, titleKey, rows, pending, failureOf, act, confirmAction, onConfirming }) {
3336
+ function MarketSection({ t, titleKey, rows, pending, failureOf, act, confirmActions, onConfirming }) {
2975
3337
  if (rows.length === 0) return null;
2976
3338
  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, {
2977
3339
  key: row.id,
@@ -2979,29 +3341,50 @@ window.__ModuleLoader__.load({
2979
3341
  row,
2980
3342
  pending,
2981
3343
  failure: failureOf(row.id),
2982
- onAct: (action) => action === confirmAction ? onConfirming(row.id) : void act(row.id, action)
3344
+ onAct: (action) => confirmActions.includes(action) ? onConfirming(row.id) : void act(row.id, action)
2983
3345
  }))));
2984
3346
  }
2985
- function MarketView({ t, manifests, capabilities, freshness, onChanged, updates, installed, installedRead, mock }) {
2986
- const source = mock?.manifests ?? manifests;
3347
+ function MarketView({ t, manifests, capabilities, freshness, onChanged, updates, installed, installedRead, settling, mock }) {
3348
+ const [titles, setTitles] = useState(/* @__PURE__ */ new Map());
3349
+ useEffect(() => {
3350
+ if (mock === void 0) setTitles((known) => mergeTitles(known, manifests));
3351
+ }, [manifests, mock]);
3352
+ const catalog = mock?.manifests ?? manifests;
2987
3353
  const effective = mock === void 0 ? capabilities : mock.capabilities;
3354
+ const source = liveManifests(catalog, effective, mock === void 0 && installed !== void 0 ? new Set(installed.map((item) => item.unit)) : null);
2988
3355
  const rows = marketRows(source, effective, mock?.updates ?? updates ?? {});
2989
3356
  const shared = sharedRows(source, effective);
2990
- const installedList = installedRows(mock?.installed ?? installed ?? [], source, new Set(rows.map((row) => row.id)));
2991
- const rowById = new Map([...rows, ...installedList].map((row) => [row.id, row]));
2992
3357
  const [pending, setPending] = useState(mock?.pending ?? null);
2993
3358
  const provision = useHostWrite({
2994
3359
  channel: "provision",
2995
3360
  networkText: t("panels.failed")
2996
3361
  });
2997
3362
  const [confirming, setConfirming] = useState(mock?.confirming ?? null);
2998
- const confirmingRow = confirming === null ? void 0 : rowById.get(confirming);
2999
3363
  const [failed, setFailed] = useState(mock?.failure ?? null);
3364
+ const removing = pending !== null && pending.action === "remove-bundle" && failed?.id !== pending.id ? pending.id : null;
3365
+ 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);
3366
+ const pendingRow = removing === null || pending === null || rows.some((row) => row.id === removing) ? void 0 : {
3367
+ id: removing,
3368
+ titleKey: pending.titleKey ?? titles.get(removing) ?? removing,
3369
+ state: "installed",
3370
+ canInstall: false,
3371
+ canUpdate: false,
3372
+ canUninstall: true,
3373
+ ...pending.pkg === void 0 ? {} : { pkg: pending.pkg },
3374
+ ...pending.version === void 0 ? {} : { version: { installed: pending.version } }
3375
+ };
3376
+ const shown = pendingRow === void 0 ? rows : [...rows, pendingRow];
3377
+ const rowById = new Map([...shown, ...installedList].map((row) => [row.id, row]));
3378
+ const confirmingRow = confirming === null ? void 0 : rowById.get(confirming);
3000
3379
  const act = async (id, action) => {
3001
3380
  if (mock !== void 0) return;
3381
+ const row = rowById.get(id);
3002
3382
  setPending({
3003
3383
  id,
3004
- action
3384
+ action,
3385
+ ...row?.titleKey === void 0 ? {} : { titleKey: row.titleKey },
3386
+ ...row?.pkg === void 0 ? {} : { pkg: row.pkg },
3387
+ ...row?.version?.installed === void 0 ? {} : { version: row.version.installed }
3005
3388
  });
3006
3389
  setConfirming(null);
3007
3390
  setFailed(null);
@@ -3018,20 +3401,23 @@ window.__ModuleLoader__.load({
3018
3401
  });
3019
3402
  setPending(null);
3020
3403
  if (!outcome.ok) {
3404
+ onChanged();
3021
3405
  setFailed({
3022
3406
  id,
3023
3407
  message: t("panels.market.failed", { reason: outcome.message })
3024
3408
  });
3025
3409
  return;
3026
3410
  }
3411
+ const reason = changeFailure(changeOf(outcome.value), t);
3027
3412
  onChanged();
3413
+ if (reason !== void 0) setFailed({
3414
+ id,
3415
+ message: t("panels.market.failed", { reason })
3416
+ });
3028
3417
  };
3029
- 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, {
3030
- state: "ongoing",
3031
- size: 14
3032
- }), t("panels.market.checking")));
3033
- 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")));
3034
- return /* @__PURE__ */ h(Fragment, null, marketSections(rows).map((section) => /* @__PURE__ */ h(MarketSection, {
3418
+ if (!(freshness.loaded && installedRead !== false) || (settling?.size ?? 0) > 0 && shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ h(MarketChecking, { t });
3419
+ if (shown.length === 0 && installedList.length === 0) return /* @__PURE__ */ h(MarketEmpty, { t });
3420
+ return /* @__PURE__ */ h(Fragment, null, marketSections(shown).map((section) => /* @__PURE__ */ h(MarketSection, {
3035
3421
  key: section.id,
3036
3422
  t,
3037
3423
  titleKey: section.titleKey,
@@ -3039,7 +3425,7 @@ window.__ModuleLoader__.load({
3039
3425
  pending,
3040
3426
  failureOf: (id) => failed?.id === id ? failed.message : null,
3041
3427
  act,
3042
- confirmAction: "uninstall",
3428
+ confirmActions: CONFIRM_UNINSTALL,
3043
3429
  onConfirming: setConfirming
3044
3430
  })), /* @__PURE__ */ h(MarketSection, {
3045
3431
  t,
@@ -3048,19 +3434,18 @@ window.__ModuleLoader__.load({
3048
3434
  pending,
3049
3435
  failureOf: (id) => failed?.id === id ? failed.message : null,
3050
3436
  act,
3051
- confirmAction: "remove-bundle",
3437
+ confirmActions: CONFIRM_REMOVE,
3052
3438
  onConfirming: setConfirming
3053
3439
  }), /* @__PURE__ */ h(PanelFoot, {
3054
3440
  size: "md",
3055
3441
  text: t("panels.market.foot")
3056
- }), 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, {
3057
- key: row.id,
3442
+ }), /* @__PURE__ */ h(SharedSection, {
3058
3443
  t,
3059
- row,
3444
+ rows: shared,
3060
3445
  pending,
3061
- failure: failed?.id === row.id ? failed.message : null,
3062
- onAct: (action) => void act(row.id, action)
3063
- })))), /* @__PURE__ */ h(ConfirmUninstall, {
3446
+ failureOf: (id) => failed?.id === id ? failed.message : null,
3447
+ act
3448
+ }), /* @__PURE__ */ h(ConfirmUninstall, {
3064
3449
  key: confirming ?? "",
3065
3450
  t,
3066
3451
  name: confirmingRow === void 0 ? null : t(confirmingRow.titleKey),
@@ -3089,227 +3474,60 @@ window.__ModuleLoader__.load({
3089
3474
  ...registry === void 0 || registry === "" ? {} : { registry }
3090
3475
  });
3091
3476
  }
3092
- function readModuleVersions(force = false) {
3093
- return apiGet(MODULE_VERSIONS_ROUTE, force ? { force: "1" } : void 0);
3094
- }
3095
- var AddModule_module_default = {
3096
- wide: "_wide_1coeb_1",
3097
- dialog: "_dialog_1coeb_8",
3098
- content: "_content_1coeb_13",
3099
- stack: "_stack_1coeb_18",
3100
- body: "_body_1coeb_25",
3101
- field: "_field_1coeb_32",
3102
- input: "_input_1coeb_39",
3103
- registryField: "_registryField_1coeb_45",
3104
- options: "_options_1coeb_51",
3105
- guideToggle: "_guideToggle_1coeb_59",
3106
- registryToggle: "_registryToggle_1coeb_78",
3107
- registryWrap: "_registryWrap_1coeb_87",
3108
- registryChosen: "_registryChosen_1coeb_121",
3109
- registry: "_registry_1coeb_45",
3110
- registryOption: "_registryOption_1coeb_143",
3111
- registryPick: "_registryPick_1coeb_159",
3112
- registryTitle: "_registryTitle_1coeb_179",
3113
- registryHint: "_registryHint_1coeb_189",
3114
- inputError: "_inputError_1coeb_197",
3115
- guide: "_guide_1coeb_59",
3116
- guideList: "_guideList_1coeb_214",
3117
- guideItem: "_guideItem_1coeb_223",
3118
- guideIndex: "_guideIndex_1coeb_230",
3119
- guideMain: "_guideMain_1coeb_244",
3120
- guideTitle: "_guideTitle_1coeb_252",
3121
- guideHint: "_guideHint_1coeb_258",
3122
- guideExample: "_guideExample_1coeb_264",
3123
- guideExampleLabel: "_guideExampleLabel_1coeb_274",
3124
- footer: "_footer_1coeb_278",
3125
- hero: "_hero_1coeb_285",
3126
- heroIcon: "_heroIcon_1coeb_294",
3127
- pendingTitle: "_pendingTitle_1coeb_311",
3128
- wizardTitle: "_wizardTitle_1coeb_319",
3129
- subject: "_subject_1coeb_326",
3130
- subjectName: "_subjectName_1coeb_337",
3131
- subjectMeta: "_subjectMeta_1coeb_343",
3132
- subjectDesc: "_subjectDesc_1coeb_344",
3133
- result: "_result_1coeb_351",
3134
- resultWarn: "_resultWarn_1coeb_352",
3135
- approval: "_approval_1coeb_365",
3136
- approvalTitle: "_approvalTitle_1coeb_375",
3137
- approvalText: "_approvalText_1coeb_382",
3138
- approvalCaution: "_approvalCaution_1coeb_388",
3139
- note: "_note_1coeb_395",
3140
- noteWarn: "_noteWarn_1coeb_402",
3141
- noteError: "_noteError_1coeb_406",
3142
- problem: "_problem_1coeb_410",
3143
- detailLabel: "_detailLabel_1coeb_417",
3144
- detail: "_detail_1coeb_417"
3145
- };
3146
- //#endregion
3147
- //#region src/app/layouts/market/add-module-text.ts
3148
- var GUIDE_ITEMS = [
3149
- {
3150
- titleKey: "panels.market.add.guideIdTitle",
3151
- exampleKey: "panels.market.add.guideIdExample",
3152
- hintKey: "panels.market.add.guideIdHint"
3153
- },
3154
- {
3155
- titleKey: "panels.market.add.guideGitTitle",
3156
- exampleKey: "panels.market.add.guideGitExample",
3157
- hintKey: "panels.market.add.guideGitHint"
3158
- },
3159
- {
3160
- titleKey: "panels.market.add.guidePathTitle",
3161
- exampleKey: "panels.market.add.guidePathExample",
3162
- hintKey: "panels.market.add.guidePathHint"
3163
- }
3164
- ];
3165
- function hostOf(url) {
3166
- try {
3167
- return new URL(url).host;
3168
- } catch {
3169
- return url;
3170
- }
3171
- }
3172
- var OFFICIAL_NPM_HOST = "registry.npmjs.org";
3173
- var KNOWN_HOSTS = {
3174
- [OFFICIAL_NPM_HOST]: "panels.market.add.registryOfficial",
3175
- "registry.npmmirror.com": "panels.market.add.registryMirror"
3176
- };
3177
- function registryNameKey(host) {
3178
- return KNOWN_HOSTS[host];
3179
- }
3180
- function normalizeRegistry(url) {
3181
- const parsed = new URL(url);
3182
- if (!parsed.pathname.endsWith("/")) parsed.pathname += "/";
3183
- return parsed.href;
3184
- }
3185
- function registryKey(url, resolved) {
3186
- const target = url ?? resolved;
3187
- if (target === null) return "";
3188
- try {
3189
- return normalizeRegistry(target);
3190
- } catch {
3191
- return target;
3192
- }
3193
- }
3194
- function registryOptions(registries) {
3195
- const resolved = registries === null ? null : registries.resolved;
3196
- const entries = [
3197
- registries === null ? null : registries.registry,
3198
- ...registries === null ? [] : registries.fallbackRegistries,
3199
- null
3200
- ];
3201
- const offered = [];
3202
- const keys = /* @__PURE__ */ new Set();
3203
- for (const entry of entries) {
3204
- const key = registryKey(entry, resolved);
3205
- if (keys.has(key)) continue;
3206
- keys.add(key);
3207
- const url = entry ?? resolved;
3208
- if (url === null) {
3209
- offered.push({
3210
- choice: {
3211
- kind: "default",
3212
- value: ""
3213
- },
3214
- host: OFFICIAL_NPM_HOST,
3215
- nameKey: "panels.market.add.registryDefault"
3216
- });
3217
- continue;
3218
- }
3219
- const host = hostOf(url);
3220
- const nameKey = registryNameKey(host);
3221
- offered.push({
3222
- choice: entry === null ? {
3223
- kind: "default",
3224
- value: ""
3225
- } : {
3226
- kind: "url",
3227
- value: entry
3228
- },
3229
- host,
3230
- ...nameKey === void 0 ? {} : { nameKey }
3231
- });
3232
- }
3233
- offered.push({ choice: {
3234
- kind: "custom",
3235
- value: ""
3236
- } });
3237
- return offered;
3238
- }
3239
- function customRegistryAllowed(value) {
3240
- return /^https?:\/\//.test(value.trim());
3241
- }
3242
- function registryOf(choice, custom) {
3243
- if (choice.kind === "custom") return customRegistryAllowed(custom) ? custom.trim() : void 0;
3244
- return choice.value === "" ? void 0 : choice.value;
3245
- }
3246
- function registryName(option, t) {
3247
- if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3248
- if (option.nameKey !== void 0) return t(option.nameKey);
3249
- return option.host ?? t("panels.market.add.registryDefault");
3250
- }
3251
- function optionLabel(option, t) {
3252
- if (option.choice.kind === "custom") return t("panels.market.add.registryCustom");
3253
- if (option.host === void 0) return t("panels.market.add.registryDefault");
3254
- return option.nameKey === void 0 ? option.host : t("panels.market.add.registryWithHost", {
3255
- name: t(option.nameKey),
3256
- host: option.host
3257
- });
3258
- }
3259
- var PROBLEM_KEYS = {
3260
- "invalid-spec": "panels.market.add.problemInvalid",
3261
- "already-installed": "panels.market.add.problemInstalled",
3262
- "not-found": "panels.market.add.problemNotFound",
3263
- "not-a-package": "panels.market.add.problemNotPackage",
3264
- "not-a-bundle": "panels.market.add.problemNotBundle",
3265
- network: "panels.market.add.problemNetwork",
3266
- unknown: "panels.market.add.problemUnknown"
3267
- };
3268
- function problemKey(problem) {
3269
- return PROBLEM_KEYS[problem] ?? PROBLEM_KEYS.unknown;
3270
- }
3271
- var FAILURE_KEYS = {
3272
- network: "panels.market.add.failureNetwork",
3273
- "spec-host": "panels.market.add.failureNetworkHost",
3274
- "not-found": "panels.market.add.failureNotFound",
3275
- "no-matching-version": "panels.market.add.failureNoMatchingVersion",
3276
- "disk-full": "panels.market.add.failureDiskFull",
3277
- permission: "panels.market.add.failurePermission",
3278
- "build-blocked": "panels.market.add.failureBuildBlocked",
3279
- integrity: "panels.market.add.failureIntegrity",
3280
- timeout: "panels.market.add.failureTimeout",
3281
- "pnpm-missing": "panels.market.add.failurePnpmMissing",
3282
- "operation-error": "panels.market.add.failureGeneric",
3283
- "incompatible-version": "panels.market.add.failureGeneric",
3284
- "not-bundle": "panels.market.add.failureGeneric",
3285
- "invalid-spec": "panels.market.add.failureGeneric",
3286
- "bundle-in-use": "panels.market.add.failureGeneric",
3287
- "not-removable": "panels.market.add.failureGeneric",
3288
- "stop-profile": "panels.market.add.failureGeneric",
3289
- "stale-approval": "panels.market.add.failureGeneric"
3290
- };
3291
- function failureCode(change) {
3292
- if (change.failedAt === "spec-host") return "spec-host";
3293
- return change.errorCode ?? change.packageResult?.kind ?? change.application;
3294
- }
3295
- function failureReasonKey(code) {
3296
- return FAILURE_KEYS[code];
3297
- }
3298
- function failureReason(code, application, t) {
3299
- const key = failureReasonKey(code);
3300
- if (key !== void 0) return t(key);
3301
- if (code === application) return t("panels.market.add.reason.unknown");
3302
- return code;
3303
- }
3304
- var SUPPLY_KEYS = {
3305
- "pending-restart": "panels.market.add.supplyPending",
3306
- failed: "panels.market.add.supplyFailed",
3307
- "not-a-module": "panels.market.add.notModule",
3308
- "no-needs": void 0
3309
- };
3310
- function supplyKey(state) {
3311
- return SUPPLY_KEYS[state];
3477
+ function readModuleVersions(force = false) {
3478
+ return apiGet(MODULE_VERSIONS_ROUTE, force ? { force: "1" } : void 0);
3312
3479
  }
3480
+ var AddModule_module_default = {
3481
+ wide: "_wide_1coeb_1",
3482
+ dialog: "_dialog_1coeb_8",
3483
+ content: "_content_1coeb_13",
3484
+ stack: "_stack_1coeb_18",
3485
+ body: "_body_1coeb_25",
3486
+ field: "_field_1coeb_32",
3487
+ input: "_input_1coeb_39",
3488
+ registryField: "_registryField_1coeb_45",
3489
+ options: "_options_1coeb_51",
3490
+ guideToggle: "_guideToggle_1coeb_59",
3491
+ registryToggle: "_registryToggle_1coeb_78",
3492
+ registryWrap: "_registryWrap_1coeb_87",
3493
+ registryChosen: "_registryChosen_1coeb_121",
3494
+ registry: "_registry_1coeb_45",
3495
+ registryOption: "_registryOption_1coeb_143",
3496
+ registryPick: "_registryPick_1coeb_159",
3497
+ registryTitle: "_registryTitle_1coeb_179",
3498
+ registryHint: "_registryHint_1coeb_189",
3499
+ inputError: "_inputError_1coeb_197",
3500
+ guide: "_guide_1coeb_59",
3501
+ guideList: "_guideList_1coeb_214",
3502
+ guideItem: "_guideItem_1coeb_223",
3503
+ guideIndex: "_guideIndex_1coeb_230",
3504
+ guideMain: "_guideMain_1coeb_244",
3505
+ guideTitle: "_guideTitle_1coeb_252",
3506
+ guideHint: "_guideHint_1coeb_258",
3507
+ guideExample: "_guideExample_1coeb_264",
3508
+ guideExampleLabel: "_guideExampleLabel_1coeb_274",
3509
+ footer: "_footer_1coeb_278",
3510
+ hero: "_hero_1coeb_285",
3511
+ heroIcon: "_heroIcon_1coeb_294",
3512
+ pendingTitle: "_pendingTitle_1coeb_311",
3513
+ wizardTitle: "_wizardTitle_1coeb_319",
3514
+ subject: "_subject_1coeb_326",
3515
+ subjectName: "_subjectName_1coeb_337",
3516
+ subjectMeta: "_subjectMeta_1coeb_343",
3517
+ subjectDesc: "_subjectDesc_1coeb_344",
3518
+ result: "_result_1coeb_351",
3519
+ resultWarn: "_resultWarn_1coeb_352",
3520
+ approval: "_approval_1coeb_365",
3521
+ approvalTitle: "_approvalTitle_1coeb_375",
3522
+ approvalText: "_approvalText_1coeb_382",
3523
+ approvalCaution: "_approvalCaution_1coeb_388",
3524
+ note: "_note_1coeb_395",
3525
+ noteWarn: "_noteWarn_1coeb_402",
3526
+ noteError: "_noteError_1coeb_406",
3527
+ problem: "_problem_1coeb_410",
3528
+ detailLabel: "_detailLabel_1coeb_417",
3529
+ detail: "_detail_1coeb_417"
3530
+ };
3313
3531
  //#endregion
3314
3532
  //#region src/app/layouts/market/AddModuleRegistry.tsx
3315
3533
  var REGISTRY_ID = "wb-add-module-registry";
@@ -3369,7 +3587,13 @@ window.__ModuleLoader__.load({
3369
3587
  return /* @__PURE__ */ h("div", {
3370
3588
  key: `${option.choice.kind}|${option.choice.value}`,
3371
3589
  className: AddModule_module_default.registryOption,
3372
- "data-checked": active
3590
+ "data-checked": active,
3591
+ onPointerDown: () => {
3592
+ if (!active) state.setChoice(option.choice);
3593
+ },
3594
+ onFocusCapture: () => {
3595
+ if (!active) state.setChoice(option.choice);
3596
+ }
3373
3597
  }, /* @__PURE__ */ h("label", { className: AddModule_module_default.registryPick }, /* @__PURE__ */ h("input", {
3374
3598
  type: "radio",
3375
3599
  name: REGISTRY_ID,
@@ -3381,7 +3605,6 @@ window.__ModuleLoader__.load({
3381
3605
  "aria-label": t("panels.market.add.registryCustom"),
3382
3606
  placeholder: t("panels.market.add.registryCustomPlaceholder"),
3383
3607
  value: state.custom,
3384
- disabled: !active,
3385
3608
  invalid: customBad,
3386
3609
  onChange: (event) => state.setCustom(event.target.value)
3387
3610
  }), customBad ? /* @__PURE__ */ h("span", {
@@ -3973,7 +4196,7 @@ window.__ModuleLoader__.load({
3973
4196
  }, t("panels.market.add.run"))) : null, installing ? /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
3974
4197
  type: "button",
3975
4198
  variant: "outline",
3976
- size: "sm",
4199
+ size: "md",
3977
4200
  onClick: state.cancelInstall
3978
4201
  }, 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, {
3979
4202
  type: "button",
@@ -4043,6 +4266,7 @@ window.__ModuleLoader__.load({
4043
4266
  checking: false,
4044
4267
  checkedAt: null
4045
4268
  };
4269
+ var NO_UNITS = /* @__PURE__ */ new Set();
4046
4270
  function useLiveManifests(units) {
4047
4271
  useSyncExternalStore(useCallback((listener) => units.subscribe(listener), [units]), useCallback(() => units.version(), [units]));
4048
4272
  return units.manifests();
@@ -4065,7 +4289,7 @@ window.__ModuleLoader__.load({
4065
4289
  const [decided, setDecided] = useState(false);
4066
4290
  const [adding, setAdding] = useState(false);
4067
4291
  const [updates, setUpdates] = useState({});
4068
- const [installed, setInstalled] = useState([]);
4292
+ const [installed, setInstalled] = useState(void 0);
4069
4293
  const [installedRead, setInstalledRead] = useState(false);
4070
4294
  const loadUpdates = useCallback((force = false) => {
4071
4295
  readModuleVersions(force).then((response) => {
@@ -4101,6 +4325,24 @@ window.__ModuleLoader__.load({
4101
4325
  forceProbe,
4102
4326
  loadUpdates
4103
4327
  ]);
4328
+ const installedKey = (installed ?? []).map((module) => module.unit).join("|");
4329
+ const rosterKey = manifests.map((manifest) => manifest.id).join("|");
4330
+ const activeKey = Object.keys(capabilities ?? {}).join("|");
4331
+ const seenRef = useRef(null);
4332
+ const [settling, setSettling] = useState(NO_UNITS);
4333
+ useEffect(() => {
4334
+ const units = installedKey === "" ? [] : installedKey.split("|");
4335
+ const held = holdBack(units, new Set(rosterKey === "" ? [] : rosterKey.split("|")), new Set(activeKey === "" ? [] : activeKey.split("|")), seenRef.current);
4336
+ seenRef.current = new Set(units);
4337
+ setSettling(held.length === 0 ? NO_UNITS : new Set(held));
4338
+ if (held.length === 0) return;
4339
+ const timer = setTimeout(() => setSettling(NO_UNITS), MODULE_SETTLE_MS);
4340
+ return () => clearTimeout(timer);
4341
+ }, [
4342
+ installedKey,
4343
+ rosterKey,
4344
+ activeKey
4345
+ ]);
4104
4346
  const freshness = {
4105
4347
  loaded: capabilities !== null,
4106
4348
  checking,
@@ -4150,6 +4392,7 @@ window.__ModuleLoader__.load({
4150
4392
  updates,
4151
4393
  installed,
4152
4394
  installedRead: mock === void 0 ? installedRead : mock.installedRead ?? true,
4395
+ settling: mock === void 0 ? settling : void 0,
4153
4396
  mock
4154
4397
  }), /* @__PURE__ */ h(AddModuleDialog, {
4155
4398
  t,
@@ -4248,6 +4491,14 @@ window.__ModuleLoader__.load({
4248
4491
  return { textKey: "env.bridge.unknown" };
4249
4492
  }
4250
4493
  //#endregion
4494
+ //#region src/app/layouts/env-gate/gate-deadline.ts
4495
+ function createGateDeadline(giveUpMs, expire) {
4496
+ const timer = setTimeout(expire, giveUpMs);
4497
+ return { disarm() {
4498
+ clearTimeout(timer);
4499
+ } };
4500
+ }
4501
+ //#endregion
4251
4502
  //#region src/app/layouts/env-gate/gate-dom.ts
4252
4503
  var SVG_NS = "http://www.w3.org/2000/svg";
4253
4504
  function svgIcon(kind) {
@@ -4710,7 +4961,6 @@ window.__ModuleLoader__.load({
4710
4961
  }
4711
4962
  let cancelled = false;
4712
4963
  const forcePlan = createForcePlan();
4713
- const startedAt = Date.now();
4714
4964
  let pinned = null;
4715
4965
  function close() {
4716
4966
  if (closed) return;
@@ -4718,9 +4968,11 @@ window.__ModuleLoader__.load({
4718
4968
  cancelled = true;
4719
4969
  if (timer !== void 0) clearTimeout(timer);
4720
4970
  if (ticker !== void 0) clearInterval(ticker);
4971
+ deadline.disarm();
4721
4972
  overlay.remove();
4722
4973
  if (root !== null) root.inert = previousInert;
4723
4974
  }
4975
+ const deadline = createGateDeadline(GIVE_UP_MS, close);
4724
4976
  const rows = /* @__PURE__ */ new Map();
4725
4977
  let renderedOrder = "";
4726
4978
  function ensureRow(step) {
@@ -4814,10 +5066,6 @@ window.__ModuleLoader__.load({
4814
5066
  return;
4815
5067
  }
4816
5068
  if (response.phase === "failed") return;
4817
- if (Date.now() - startedAt > GIVE_UP_MS) {
4818
- close();
4819
- return;
4820
- }
4821
5069
  timer = setTimeout(() => void poll(), POLL_MS);
4822
5070
  }
4823
5071
  function retryNow() {
@@ -4849,23 +5097,151 @@ window.__ModuleLoader__.load({
4849
5097
  poll();
4850
5098
  return { close };
4851
5099
  }
4852
- var ExpandButton_module_default = {
4853
- button: "_button_ssnyt_1",
4854
- icon: "_icon_ssnyt_13"
5100
+ //#endregion
5101
+ //#region src/app/layouts/rightbar/store.ts
5102
+ var browserPersistence = {
5103
+ readFlag,
5104
+ writeFlag,
5105
+ readText,
5106
+ writeText
5107
+ };
5108
+ var RIGHTBAR_DEFAULT_COLUMN = "workbench";
5109
+ function pressedColumns(state, dshExpanded) {
5110
+ return {
5111
+ workbench: state.column === "workbench" && state.expanded,
5112
+ dsh: state.column === "dsh" && dshExpanded
5113
+ };
5114
+ }
5115
+ var BOARD_STEP = { kind: "board" };
5116
+ function readColumn(persistence) {
5117
+ return persistence.readText("dsh-workbench.rightbar.column") === "dsh" ? "dsh" : RIGHTBAR_DEFAULT_COLUMN;
5118
+ }
5119
+ function createRightbarStore(persistence = browserPersistence) {
5120
+ let state = {
5121
+ expanded: persistence.readFlag(STORAGE_KEY_RIGHTBAR, true),
5122
+ column: readColumn(persistence),
5123
+ trail: [BOARD_STEP]
5124
+ };
5125
+ const listeners = /* @__PURE__ */ new Set();
5126
+ function commit(next) {
5127
+ if (next.expanded === state.expanded && next.column === state.column && next.trail === state.trail) return;
5128
+ state = next;
5129
+ for (const listener of listeners) listener();
5130
+ }
5131
+ function setTrail(trail) {
5132
+ commit({
5133
+ expanded: state.expanded,
5134
+ column: state.column,
5135
+ trail: trail.length === 0 ? [BOARD_STEP] : trail
5136
+ });
5137
+ }
5138
+ return {
5139
+ getSnapshot: () => state,
5140
+ subscribe(listener) {
5141
+ listeners.add(listener);
5142
+ return () => listeners.delete(listener);
5143
+ },
5144
+ setExpanded(expanded) {
5145
+ if (expanded === state.expanded) return;
5146
+ persistence.writeFlag(STORAGE_KEY_RIGHTBAR, expanded);
5147
+ commit({
5148
+ expanded,
5149
+ column: state.column,
5150
+ trail: state.trail
5151
+ });
5152
+ },
5153
+ toggleExpanded() {
5154
+ this.setExpanded(!state.expanded);
5155
+ },
5156
+ setColumn(column) {
5157
+ if (column === state.column) return;
5158
+ persistence.writeText(STORAGE_KEY_RIGHTBAR_COLUMN, column);
5159
+ commit({
5160
+ expanded: state.expanded,
5161
+ column,
5162
+ trail: state.trail
5163
+ });
5164
+ },
5165
+ open(step) {
5166
+ const top = state.trail[state.trail.length - 1];
5167
+ if (top !== void 0 && sameStep(top, step)) return;
5168
+ setTrail([...state.trail, step]);
5169
+ },
5170
+ goTo(index) {
5171
+ if (index < 0 || index >= state.trail.length) return;
5172
+ setTrail(state.trail.slice(0, index + 1));
5173
+ },
5174
+ back() {
5175
+ if (state.trail.length <= 1) return;
5176
+ setTrail(state.trail.slice(0, -1));
5177
+ }
5178
+ };
5179
+ }
5180
+ function sameStep(a, b) {
5181
+ return a.kind === b.kind;
5182
+ }
5183
+ var ColumnSwitch_module_default = {
5184
+ group: "_group_1hxis_1",
5185
+ button: "_button_1hxis_7",
5186
+ active: "_active_1hxis_19",
5187
+ icon: "_icon_1hxis_23",
5188
+ mirror: "_mirror_1hxis_35"
4855
5189
  };
4856
5190
  //#endregion
4857
- //#region src/app/layouts/rightbar/ExpandButton.tsx
4858
- function ExpandButton({ useRightbar, toggleRightbar, t }) {
4859
- if (useRightbar((state) => state.expanded)) return null;
4860
- return /* @__PURE__ */ h(Tip, { label: t("rightbar.expand") }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
5191
+ //#region src/app/layouts/rightbar/ColumnSwitch.tsx
5192
+ function ColumnSwitch({ useRightbar, selectColumn, dshColumn, t }) {
5193
+ const pressed = pressedColumns(useRightbar((snapshot) => snapshot), useSyncExternalStore(dshColumn.subscribe, dshColumn.getSnapshot));
5194
+ const workbenchLabel = pressed.workbench ? t("rightbar.collapse") : t("rightbar.column.workbench");
5195
+ return /* @__PURE__ */ h("span", {
5196
+ className: ColumnSwitch_module_default.group,
5197
+ role: "group",
5198
+ "aria-label": t("rightbar.column.label")
5199
+ }, /* @__PURE__ */ h(Tip, { label: workbenchLabel }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
4861
5200
  type: "button",
4862
5201
  size: "sm",
4863
5202
  variant: "ghost",
4864
- className: ExpandButton_module_default.button,
4865
- "aria-label": t("rightbar.expand"),
4866
- icon: /* @__PURE__ */ h("span", { className: ExpandButton_module_default.icon }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconPanelLeftOutlineRegular, { size: 15 })),
4867
- onClick: toggleRightbar
4868
- }));
5203
+ className: pressed.workbench ? `${ColumnSwitch_module_default.button} ${ColumnSwitch_module_default.active}` : ColumnSwitch_module_default.button,
5204
+ "aria-pressed": pressed.workbench,
5205
+ "aria-label": workbenchLabel,
5206
+ icon: /* @__PURE__ */ h("span", { className: ColumnSwitch_module_default.icon }, /* @__PURE__ */ h(IconPanelScreen, { size: 15 })),
5207
+ onClick: () => selectColumn("workbench")
5208
+ })), /* @__PURE__ */ h(Tip, { label: t("rightbar.column.dsh") }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.Button, {
5209
+ type: "button",
5210
+ size: "sm",
5211
+ variant: "ghost",
5212
+ className: pressed.dsh ? `${ColumnSwitch_module_default.button} ${ColumnSwitch_module_default.active}` : ColumnSwitch_module_default.button,
5213
+ "aria-pressed": pressed.dsh,
5214
+ "aria-label": t("rightbar.column.dsh"),
5215
+ icon: /* @__PURE__ */ h("span", { className: `${ColumnSwitch_module_default.icon} ${ColumnSwitch_module_default.mirror}` }, /* @__PURE__ */ h(_deepseek_ai_dsh_client_ui_primitives.IconPanelLeftOutlineRegular, { size: 15 })),
5216
+ onClick: () => selectColumn("dsh")
5217
+ })));
5218
+ }
5219
+ //#endregion
5220
+ //#region src/app/layouts/rightbar/dsh-column-source.ts
5221
+ function createDshColumnSource(read, intervalMs) {
5222
+ let value = read();
5223
+ let timer;
5224
+ const listeners = /* @__PURE__ */ new Set();
5225
+ const sync = () => {
5226
+ const next = read();
5227
+ if (next === value) return;
5228
+ value = next;
5229
+ for (const listener of listeners) listener();
5230
+ };
5231
+ return {
5232
+ getSnapshot: () => value,
5233
+ subscribe(listener) {
5234
+ listeners.add(listener);
5235
+ if (timer === void 0) timer = setInterval(sync, intervalMs);
5236
+ return () => {
5237
+ listeners.delete(listener);
5238
+ if (listeners.size === 0 && timer !== void 0) {
5239
+ clearInterval(timer);
5240
+ timer = void 0;
5241
+ }
5242
+ };
5243
+ }
5244
+ };
4869
5245
  }
4870
5246
  var Breadcrumbs_module_default = {
4871
5247
  stripTabs: "_stripTabs_1dqp4_1",
@@ -5453,6 +5829,15 @@ window.__ModuleLoader__.load({
5453
5829
  };
5454
5830
  }
5455
5831
  //#endregion
5832
+ //#region src/app/layouts/rightbar/presentation.ts
5833
+ function rightbarPresentation(input) {
5834
+ const fullscreen = input.shown && (input.viewportWidth < 768 || !input.canShow);
5835
+ return {
5836
+ fullscreen,
5837
+ track: input.shown && !fullscreen
5838
+ };
5839
+ }
5840
+ //#endregion
5456
5841
  //#region src/modules/sessions/model/session-node.ts
5457
5842
  function visiblePendingKind(kind) {
5458
5843
  switch (kind) {
@@ -5638,6 +6023,7 @@ window.__ModuleLoader__.load({
5638
6023
  path: workspace?.path ?? null
5639
6024
  };
5640
6025
  }
6026
+ var Rightbar_module_default = { panel: "_panel_1oyh4_1" };
5641
6027
  //#endregion
5642
6028
  //#region src/app/layouts/rightbar/Rightbar.tsx
5643
6029
  function ModuleHost({ module, step, panelToken, onPanelRefresh, onSummary, ...rest }) {
@@ -5762,17 +6148,34 @@ window.__ModuleLoader__.load({
5762
6148
  const summary = aggregateSummaries(plan.modules.map((entry) => summaries[entry.module.id]).filter((item) => item !== void 0));
5763
6149
  const feedEnabled = plan.modules.length > 0 || plan.reading;
5764
6150
  const shown = state.expanded;
5765
- props.applyRightbar({
6151
+ const presentation = rightbarPresentation({
5766
6152
  shown,
5767
- track: true,
5768
- fullscreen: shown && !props.canShow
6153
+ viewportWidth: props.viewportWidth,
6154
+ canShow: props.canShow
5769
6155
  });
5770
- if (!shown) return null;
6156
+ const { fullscreen } = presentation;
6157
+ const panelWidth = fullscreen ? "100vw" : props.width > 0 ? `${props.width}px` : "100%";
6158
+ const applyRightbar = props.applyRightbar;
6159
+ useLayoutEffect(() => {
6160
+ applyRightbar({
6161
+ shown,
6162
+ track: presentation.track,
6163
+ fullscreen: presentation.fullscreen
6164
+ });
6165
+ }, [
6166
+ applyRightbar,
6167
+ shown,
6168
+ presentation.track,
6169
+ presentation.fullscreen
6170
+ ]);
5771
6171
  const top = state.trail[state.trail.length - 1] ?? { kind: "board" };
5772
6172
  const navigate = (step) => props.openPanel(step);
5773
6173
  const openMarket = () => props.openMarket();
5774
6174
  return /* @__PURE__ */ h("aside", {
5775
- className: "wb-rightbar",
6175
+ className: `wb-rightbar ${Rightbar_module_default.panel}`,
6176
+ style: { width: panelWidth },
6177
+ "data-open": shown ? "" : void 0,
6178
+ "data-fullscreen": fullscreen ? "" : void 0,
5776
6179
  "aria-label": props.t("rightbar.label")
5777
6180
  }, /* @__PURE__ */ h(PanelHeader, {
5778
6181
  t: props.t,
@@ -5903,67 +6306,6 @@ window.__ModuleLoader__.load({
5903
6306
  });
5904
6307
  }
5905
6308
  //#endregion
5906
- //#region src/app/layouts/rightbar/store.ts
5907
- var browserPersistence = {
5908
- readFlag,
5909
- writeFlag,
5910
- readText,
5911
- writeText
5912
- };
5913
- var BOARD_STEP = { kind: "board" };
5914
- function createRightbarStore(persistence = browserPersistence) {
5915
- let state = {
5916
- expanded: persistence.readFlag(STORAGE_KEY_RIGHTBAR, true),
5917
- trail: [BOARD_STEP]
5918
- };
5919
- const listeners = /* @__PURE__ */ new Set();
5920
- function commit(next) {
5921
- if (next.expanded === state.expanded && next.trail === state.trail) return;
5922
- state = next;
5923
- for (const listener of listeners) listener();
5924
- }
5925
- function setTrail(trail) {
5926
- commit({
5927
- expanded: state.expanded,
5928
- trail: trail.length === 0 ? [BOARD_STEP] : trail
5929
- });
5930
- }
5931
- return {
5932
- getSnapshot: () => state,
5933
- subscribe(listener) {
5934
- listeners.add(listener);
5935
- return () => listeners.delete(listener);
5936
- },
5937
- setExpanded(expanded) {
5938
- if (expanded === state.expanded) return;
5939
- persistence.writeFlag(STORAGE_KEY_RIGHTBAR, expanded);
5940
- commit({
5941
- expanded,
5942
- trail: state.trail
5943
- });
5944
- },
5945
- toggleExpanded() {
5946
- this.setExpanded(!state.expanded);
5947
- },
5948
- open(step) {
5949
- const top = state.trail[state.trail.length - 1];
5950
- if (top !== void 0 && sameStep(top, step)) return;
5951
- setTrail([...state.trail, step]);
5952
- },
5953
- goTo(index) {
5954
- if (index < 0 || index >= state.trail.length) return;
5955
- setTrail(state.trail.slice(0, index + 1));
5956
- },
5957
- back() {
5958
- if (state.trail.length <= 1) return;
5959
- setTrail(state.trail.slice(0, -1));
5960
- }
5961
- };
5962
- }
5963
- function sameStep(a, b) {
5964
- return a.kind === b.kind;
5965
- }
5966
- //#endregion
5967
6309
  //#region src/app/layouts/sidebar/session-pick.ts
5968
6310
  function openPickedProject(input) {
5969
6311
  const first = firstSessionIdOf(input.items.find((item) => item.workspaceId === input.workspaceId) ?? null, input.sessions, input.archivedIds);
@@ -6260,7 +6602,7 @@ window.__ModuleLoader__.load({
6260
6602
  }
6261
6603
  //#endregion
6262
6604
  //#region src/shared/styles/rightbar.css?raw
6263
- 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}";
6605
+ 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";
6264
6606
  //#endregion
6265
6607
  //#region src/shared/styles/tokens.css?raw
6266
6608
  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";
@@ -6269,7 +6611,7 @@ window.__ModuleLoader__.load({
6269
6611
  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";
6270
6612
  //#endregion
6271
6613
  //#region src/shared/styles/tokens/scale.css?raw
6272
- 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";
6614
+ 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";
6273
6615
  //#endregion
6274
6616
  //#region src/shared/styles/sidebar-app.css?raw
6275
6617
  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}";
@@ -6281,7 +6623,10 @@ window.__ModuleLoader__.load({
6281
6623
  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 }}";
6282
6624
  //#endregion
6283
6625
  //#region src/shared/styles/board.css?raw
6284
- 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";
6626
+ 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";
6627
+ //#endregion
6628
+ //#region src/shared/styles/motion.css?raw
6629
+ var motion_default = "[data-animating],\n[data-sidebar-right-panel] {\n --ds-transition-duration-slow: 0s;\n}\n";
6285
6630
  //#endregion
6286
6631
  //#region src/shared/hooks/use-api-resource.ts
6287
6632
  var use_api_resource_exports = /* @__PURE__ */ __exportAll({
@@ -6682,11 +7027,11 @@ window.__ModuleLoader__.load({
6682
7027
  ...face.messages === void 0 ? {} : { messages: face.messages }
6683
7028
  })));
6684
7029
  }
6685
- 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*/";
7030
+ 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*/";
6686
7031
  function installStyles() {
6687
7032
  const style = document.createElement("style");
6688
7033
  style.setAttribute(STYLE_MARKER, "");
6689
- 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}`;
7034
+ 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}`;
6690
7035
  document.head.appendChild(style);
6691
7036
  return () => style.remove();
6692
7037
  }
@@ -6772,6 +7117,120 @@ window.__ModuleLoader__.load({
6772
7117
  goToPanel: (index) => store.goTo(index)
6773
7118
  };
6774
7119
  const rightbarHooks = { hooks: { rightbar: observable } };
7120
+ const sidebarRight = () => ctx.get("sidebarRight");
7121
+ const dshColumn = createDshColumnSource(() => {
7122
+ const official = sidebarRight();
7123
+ if (official === void 0) return false;
7124
+ return official.mounted.getSnapshot() === void 0 || official.isExpanded();
7125
+ }, 400);
7126
+ let pendingDshOpen = false;
7127
+ let pendingOfficialCall;
7128
+ let unsubscribeOfficial;
7129
+ let restoreOfficial;
7130
+ let officialShimmed = false;
7131
+ let workbenchColumnArmed = false;
7132
+ let disposeWorkbenchColumn;
7133
+ const armWorkbenchColumn = () => {
7134
+ if (workbenchColumnArmed) return;
7135
+ workbenchColumnArmed = true;
7136
+ disposeWorkbenchColumn = ctx.slots.inject("rightbar", () => ctx.slots.register({
7137
+ name: "rightbar",
7138
+ priority: -1,
7139
+ locale: LOCALE_NS,
7140
+ inject: () => ({
7141
+ ...rightbarActions,
7142
+ ...rightbarHooks,
7143
+ units
7144
+ })
7145
+ }, Rightbar));
7146
+ };
7147
+ const releaseWorkbenchColumn = () => {
7148
+ workbenchColumnArmed = false;
7149
+ disposeWorkbenchColumn?.();
7150
+ disposeWorkbenchColumn = void 0;
7151
+ };
7152
+ const flushOfficialCall = () => {
7153
+ const official = sidebarRight();
7154
+ if (official === void 0 || official.mounted.getSnapshot() === void 0) return;
7155
+ if (pendingDshOpen) {
7156
+ pendingDshOpen = false;
7157
+ if (!official.isExpanded()) official.toggleExpanded();
7158
+ }
7159
+ const call = pendingOfficialCall;
7160
+ pendingOfficialCall = void 0;
7161
+ call?.();
7162
+ };
7163
+ const watchOfficial = () => {
7164
+ const official = sidebarRight();
7165
+ if (official === void 0 || unsubscribeOfficial !== void 0) return;
7166
+ unsubscribeOfficial = official.mounted.subscribe(flushOfficialCall);
7167
+ };
7168
+ const armDshColumn = () => {
7169
+ const official = sidebarRight();
7170
+ if (official === void 0) return false;
7171
+ if (official.mounted.getSnapshot() !== void 0) {
7172
+ if (!official.isExpanded()) official.toggleExpanded();
7173
+ return true;
7174
+ }
7175
+ watchOfficial();
7176
+ store.setColumn("dsh");
7177
+ ctx.layout.closeRightbar();
7178
+ releaseWorkbenchColumn();
7179
+ pendingDshOpen = true;
7180
+ return false;
7181
+ };
7182
+ const openInDshColumn = (call) => {
7183
+ shimOfficialNavigation();
7184
+ if (sidebarRight() === void 0) return;
7185
+ if (armDshColumn()) {
7186
+ call();
7187
+ return;
7188
+ }
7189
+ pendingOfficialCall = call;
7190
+ };
7191
+ const shimOfficialNavigation = () => {
7192
+ const official = sidebarRight();
7193
+ if (official === void 0 || officialShimmed) return;
7194
+ const { openResource, openTab } = official;
7195
+ if (typeof openResource !== "function" || typeof openTab !== "function") return;
7196
+ officialShimmed = true;
7197
+ official.openResource = (address, options) => openInDshColumn(() => openResource.call(official, address, options));
7198
+ official.openTab = (kind, options) => openInDshColumn(() => openTab.call(official, kind, options));
7199
+ restoreOfficial = () => {
7200
+ official.openResource = openResource;
7201
+ official.openTab = openTab;
7202
+ officialShimmed = false;
7203
+ };
7204
+ };
7205
+ const selectColumn = (column) => {
7206
+ if (store.getSnapshot().column === column) {
7207
+ if (column === "workbench") {
7208
+ rightbarActions.toggleRightbar();
7209
+ return;
7210
+ }
7211
+ const current = sidebarRight();
7212
+ if (current === void 0 || current.mounted.getSnapshot() === void 0) return;
7213
+ current.toggleExpanded();
7214
+ return;
7215
+ }
7216
+ if (column === "workbench") {
7217
+ store.setColumn("workbench");
7218
+ pendingDshOpen = false;
7219
+ armWorkbenchColumn();
7220
+ store.setExpanded(true);
7221
+ return;
7222
+ }
7223
+ openInDshColumn(() => {});
7224
+ };
7225
+ ctx.effect(() => () => {
7226
+ unsubscribeOfficial?.();
7227
+ unsubscribeOfficial = void 0;
7228
+ restoreOfficial?.();
7229
+ restoreOfficial = void 0;
7230
+ }, "dsh-workbench: 官方椅面订阅与借道");
7231
+ shimOfficialNavigation();
7232
+ watchOfficial();
7233
+ if (store.getSnapshot().column === "workbench") armWorkbenchColumn();
6775
7234
  ctx.slots.inject("sidebar", () => ctx.slots.register({
6776
7235
  name: "sidebar",
6777
7236
  priority: -1,
@@ -6792,16 +7251,6 @@ window.__ModuleLoader__.load({
6792
7251
  selectPanel: (panelId) => ctx.layout.selectPanel(panelId)
6793
7252
  })
6794
7253
  }, Sidebar));
6795
- ctx.slots.inject("rightbar", () => ctx.slots.register({
6796
- name: "rightbar",
6797
- priority: -1,
6798
- locale: LOCALE_NS,
6799
- inject: () => ({
6800
- ...rightbarActions,
6801
- ...rightbarHooks,
6802
- units
6803
- })
6804
- }, Rightbar));
6805
7254
  registerMarketPanel(ctx, units);
6806
7255
  const gate = createBootGate(ctx);
6807
7256
  ctx.effect(() => () => gate.close(), "dsh-workbench: env gate");
@@ -6819,10 +7268,11 @@ window.__ModuleLoader__.load({
6819
7268
  priority: -1,
6820
7269
  locale: LOCALE_NS,
6821
7270
  inject: () => ({
6822
- toggleRightbar: rightbarActions.toggleRightbar,
7271
+ selectColumn,
7272
+ dshColumn,
6823
7273
  ...rightbarHooks
6824
7274
  })
6825
- }, ExpandButton));
7275
+ }, ColumnSwitch));
6826
7276
  }
6827
7277
  function sidebarChildren(ctx) {
6828
7278
  return {