@eclipse-docks/core 0.7.127 → 0.7.130

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 (85) hide show
  1. package/dist/api/index.js +3 -3
  2. package/dist/api/services.d.ts +3 -1
  3. package/dist/api/services.d.ts.map +1 -1
  4. package/dist/{api-Da9zQcfd.js → api-oPg3Bv1S.js} +243 -264
  5. package/dist/api-oPg3Bv1S.js.map +1 -0
  6. package/dist/components/attribution.d.ts +1 -0
  7. package/dist/components/attribution.d.ts.map +1 -1
  8. package/dist/components/command.d.ts +0 -1
  9. package/dist/components/command.d.ts.map +1 -1
  10. package/dist/components/extensions.d.ts +3 -0
  11. package/dist/components/extensions.d.ts.map +1 -1
  12. package/dist/components/language-selector.d.ts.map +1 -1
  13. package/dist/components/layout-switcher.d.ts +1 -1
  14. package/dist/components/layout-switcher.d.ts.map +1 -1
  15. package/dist/components/npm-packages.d.ts +1 -0
  16. package/dist/components/npm-packages.d.ts.map +1 -1
  17. package/dist/components/release-history.d.ts +9 -2
  18. package/dist/components/release-history.d.ts.map +1 -1
  19. package/dist/components/tasks.d.ts.map +1 -1
  20. package/dist/core/apploader.d.ts +2 -9
  21. package/dist/core/apploader.d.ts.map +1 -1
  22. package/dist/core/contribution-targets.d.ts +1 -0
  23. package/dist/core/contribution-targets.d.ts.map +1 -1
  24. package/dist/core/dialogservice.d.ts +3 -1
  25. package/dist/core/dialogservice.d.ts.map +1 -1
  26. package/dist/core/dropdown-item.d.ts +8 -0
  27. package/dist/core/dropdown-item.d.ts.map +1 -1
  28. package/dist/core/layout-panels.d.ts +25 -0
  29. package/dist/core/layout-panels.d.ts.map +1 -0
  30. package/dist/dialogs/navigable-info-dialog.d.ts.map +1 -1
  31. package/dist/dialogs/version-info-dialog.d.ts +18 -2
  32. package/dist/dialogs/version-info-dialog.d.ts.map +1 -1
  33. package/dist/externals/lit.js +1 -1
  34. package/dist/externals/webawesome.js +1 -1
  35. package/dist/index.js +3 -3
  36. package/dist/layouts/standard-layout.d.ts +9 -1
  37. package/dist/layouts/standard-layout.d.ts.map +1 -1
  38. package/dist/parts/contextmenu.d.ts.map +1 -1
  39. package/dist/parts/index.js +1 -1
  40. package/dist/parts/part.d.ts +2 -0
  41. package/dist/parts/part.d.ts.map +1 -1
  42. package/dist/parts/resizable-grid.d.ts +10 -3
  43. package/dist/parts/resizable-grid.d.ts.map +1 -1
  44. package/dist/parts/tabs.d.ts +6 -0
  45. package/dist/parts/tabs.d.ts.map +1 -1
  46. package/dist/{parts-CRVxaDd-.js → parts-CAt8aeU8.js} +1050 -586
  47. package/dist/parts-CAt8aeU8.js.map +1 -0
  48. package/dist/{webawesome-Y1_HnKa_.js → webawesome-BGXn04Mw.js} +18 -10
  49. package/dist/webawesome-BGXn04Mw.js.map +1 -0
  50. package/package.json +1 -1
  51. package/src/api/services.ts +12 -0
  52. package/src/components/attribution.ts +2 -0
  53. package/src/components/command.ts +2 -8
  54. package/src/components/extensions.ts +20 -3
  55. package/src/components/language-selector.ts +0 -1
  56. package/src/components/layout-switcher.ts +39 -26
  57. package/src/components/npm-packages.ts +2 -0
  58. package/src/components/release-history.ts +29 -40
  59. package/src/components/tasks.ts +0 -1
  60. package/src/contributions/default-layout-contributions.ts +7 -43
  61. package/src/contributions/default-ui-contributions.ts +4 -4
  62. package/src/core/apploader.ts +7 -54
  63. package/src/core/contribution-targets.ts +1 -0
  64. package/src/core/dialogservice.ts +76 -19
  65. package/src/core/dropdown-item.ts +52 -17
  66. package/src/core/layout-panels.ts +121 -0
  67. package/src/dialogs/navigable-info-dialog.ts +5 -2
  68. package/src/dialogs/version-info-dialog.ts +163 -21
  69. package/src/icons/icons.txt +4 -2
  70. package/src/icons/layout-standard-bottom-panel.svg +4 -4
  71. package/src/icons/layout-standard-full.svg +4 -4
  72. package/src/icons/layout-standard-left-aux.svg +8 -0
  73. package/src/icons/layout-standard-left-sidebar.svg +5 -0
  74. package/src/icons/layout-standard-right-aux.svg +8 -0
  75. package/src/icons/layout-standard-right-sidebar.svg +5 -0
  76. package/src/layouts/standard-layout.ts +81 -5
  77. package/src/parts/contextmenu.ts +2 -1
  78. package/src/parts/part.ts +24 -0
  79. package/src/parts/resizable-grid.ts +125 -57
  80. package/src/parts/tabs.ts +103 -0
  81. package/dist/api-Da9zQcfd.js.map +0 -1
  82. package/dist/parts-CRVxaDd-.js.map +0 -1
  83. package/dist/webawesome-Y1_HnKa_.js.map +0 -1
  84. package/src/icons/layout-standard-bottom-sidebar.svg +0 -6
  85. package/src/icons/layout-standard.svg +0 -6
@@ -1,4 +1,4 @@
1
- import { A as taskService, B as SIDEBAR_AUXILIARY, C as DocksElement, D as TOPIC_EXTENSIONS_CHANGED, E as keyBindingManager, G as SYSTEM_LAYOUTS, H as SIDEBAR_MAIN_BOTTOM, I as constants_exports, J as TOOLBAR_BOTTOM_CENTER, L as ABOUT_TABS, M as appSettings, O as extensionRegistry, Q as TOOLBAR_MAIN_RIGHT, R as EDITOR_AREA_MAIN, U as SIDEBAR_MAIN_TOOLBAR, V as SIDEBAR_MAIN, W as SYSTEM_ATTRIBUTIONS, X as TOOLBAR_MAIN, Y as TOOLBAR_BOTTOM_END, Z as TOOLBAR_MAIN_CENTER, b as deleteIndexedDbWorkspaceData, c as icon, d as filebrowserDialog, i as renderDropdownContribution, j as TOPIC_SETTINGS_CHANGED, k as esmShService, n as DocksContainer, o as renderDropdownItem, p as confirmDialog, q as TOOLBAR_BOTTOM, s as renderDropdownSubmenu, t as DocksPart, u as versionInfoDialog, v as promptDialog, w as parseMarkdownHtml, y as appLoaderService, z as PANEL_BOTTOM } from "./parts-CRVxaDd-.js";
1
+ import { A as filebrowserDialog, C as TOOLBAR_INFO, D as TOOLBAR_THEME_SWITCHER, E as TOOLBAR_TASKS, G as keyBindingManager, H as DocksElement, J as esmShService, K as TOPIC_EXTENSIONS_CHANGED, L as promptDialog, M as confirmDialog, O as VIEW_FILEBROWSER, R as appLoaderService, S as TOOLBAR_FULLSCREEN, T as TOOLBAR_LAYOUT_SWITCHER, X as TOPIC_SETTINGS_CHANGED, Y as taskService, Z as appSettings, _t as TOOLBAR_MAIN_CENTER, a as renderDropdownItem, at as SIDEBAR_AUXILIARY, b as TOOLBAR_ACTIVE_PART_NAME, ct as SIDEBAR_MAIN_BOTTOM, d as DocksContainer, dt as SYSTEM_LAYOUTS, f as ABOUT_TAB_ATTRIBUTIONS, gt as TOOLBAR_MAIN, h as ATTRIBUTION_ECLIPSE_DOCKS, ht as TOOLBAR_BOTTOM_END, it as PANEL_BOTTOM, k as VIEW_LOG_TERMINAL, l as versionInfoDialog, lt as SIDEBAR_MAIN_TOOLBAR, m as ABOUT_TAB_RELEASE, mt as TOOLBAR_BOTTOM_CENTER, nt as ABOUT_TABS, o as renderDropdownSubmenu, ot as SIDEBAR_AUXILIARY_BOTTOM, p as ABOUT_TAB_PACKAGES, pt as TOOLBAR_BOTTOM, q as extensionRegistry, r as renderDropdownContribution, rt as EDITOR_AREA_MAIN, s as icon, st as SIDEBAR_MAIN, t as handleDropdownWaSelect, tt as constants_exports, u as DocksPart, ut as SYSTEM_ATTRIBUTIONS, v as SIDEBAR_TOOLBAR_EXTENSIONS, vt as TOOLBAR_MAIN_RIGHT, w as TOOLBAR_LANGUAGE_SELECTOR, x as TOOLBAR_FAST_VIEWS, z as deleteIndexedDbWorkspaceData } from "./parts-CAt8aeU8.js";
2
2
  import { a as unregisterLogHandler, o as rootContext, r as registerLogHandler, s as uiContext, t as createLogger } from "./logger-DT0_NW3S.js";
3
3
  import { E as toastWarning, T as toastInfo, d as activeSelectionSignal, f as activeTasksSignal, g as contributionRegistry, h as TOPIC_CONTRIBUTEIONS_CHANGED, n as watchSignal, s as registerAll, t as DocksWidget, u as activePartSignal, v as getContributionVisible, w as toastError } from "./widget-BqQtioK1.js";
4
4
  import { n as subscribe, t as publish } from "./events-B_ZxkU_G.js";
@@ -299,7 +299,7 @@ var treeNodeComparator = (c1, c2) => {
299
299
  //#endregion
300
300
  //#region src/components/filebrowser.ts
301
301
  var _DocksFileBrowser;
302
- var logger$2 = createLogger("DocksFileBrowser");
302
+ var logger$1 = createLogger("DocksFileBrowser");
303
303
  var t$6 = await i18n(/* @__PURE__ */ Object.assign({
304
304
  "./filebrowser.de.json": () => import("./filebrowser.de-GEf6Eilh.js"),
305
305
  "./filebrowser.en.json": () => import("./filebrowser.en-o0Ad5f7Z.js")
@@ -501,7 +501,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
501
501
  }
502
502
  if (info?.backendName) node.workspaceTag = info.backendName;
503
503
  } catch (e) {
504
- logger$2.debug("Failed to get workspace info for directory", e);
504
+ logger$1.debug("Failed to get workspace info for directory", e);
505
505
  }
506
506
  if (resource instanceof Directory && loadChildren) {
507
507
  try {
@@ -529,7 +529,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
529
529
  return node;
530
530
  }
531
531
  node.loadError = error instanceof Error ? error.message : String(error);
532
- logger$2.error("Failed to load directory children:", error);
532
+ logger$1.error("Failed to load directory children:", error);
533
533
  }
534
534
  node.loaded = true;
535
535
  }
@@ -628,7 +628,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
628
628
  return;
629
629
  }
630
630
  node.loadError = error instanceof Error ? error.message : String(error);
631
- logger$2.error("Failed to load directory children:", error);
631
+ logger$1.error("Failed to load directory children:", error);
632
632
  this.requestUpdate();
633
633
  } finally {
634
634
  this.loadingNodes.delete(node);
@@ -770,7 +770,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
770
770
  if (paths.length === 0) return;
771
771
  const workspace = await workspaceService.getWorkspace();
772
772
  if (!workspace) {
773
- logger$2.warn("Workspace drop ignored because no workspace is connected");
773
+ logger$1.warn("Workspace drop ignored because no workspace is connected");
774
774
  return;
775
775
  }
776
776
  const moveWithinSameBackend = async (src) => {
@@ -787,7 +787,7 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
787
787
  for (const path of paths) try {
788
788
  const src = await workspace.getResource(path);
789
789
  if (!src) {
790
- logger$2.warn(`Workspace drop: source not found for path "${path}"`);
790
+ logger$1.warn(`Workspace drop: source not found for path "${path}"`);
791
791
  failed++;
792
792
  continue;
793
793
  }
@@ -798,11 +798,11 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
798
798
  const root = src.getWorkspace();
799
799
  if (root) srcRoots.add(root);
800
800
  } catch (error) {
801
- logger$2.error(`Failed to handle workspace drop for "${path}":`, error);
801
+ logger$1.error(`Failed to handle workspace drop for "${path}":`, error);
802
802
  failed++;
803
803
  }
804
804
  if (sources.length === 0) {
805
- if (failed > 0) logger$2.info(`Workspace drop failed for ${failed} item(s)`);
805
+ if (failed > 0) logger$1.info(`Workspace drop failed for ${failed} item(s)`);
806
806
  return;
807
807
  }
808
808
  let isCrossConnection = false;
@@ -824,17 +824,17 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
824
824
  destBackend
825
825
  }))) return;
826
826
  } catch (err) {
827
- logger$2.debug("Failed to resolve cross-connection info for DnD", err);
827
+ logger$1.debug("Failed to resolve cross-connection info for DnD", err);
828
828
  }
829
829
  for (const { path, resource } of sources) try {
830
830
  const move = await moveWithinSameBackend(resource);
831
831
  await workspaceService.copyResource(resource, targetDir, { move });
832
832
  processed++;
833
833
  } catch (error) {
834
- logger$2.error(`Failed to handle workspace drop for "${path}":`, error);
834
+ logger$1.error(`Failed to handle workspace drop for "${path}":`, error);
835
835
  failed++;
836
836
  }
837
- logger$2.info(`Workspace drop completed: ${processed}/${sources.length} items ${failed > 0 ? `, ${failed} failed` : ""}`);
837
+ logger$1.info(`Workspace drop completed: ${processed}/${sources.length} items ${failed > 0 ? `, ${failed} failed` : ""}`);
838
838
  await this.loadWorkspace(this.workspaceDir, true);
839
839
  }
840
840
  async handleFilesDrop(files, targetDir) {
@@ -853,10 +853,10 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
853
853
  await (await this.workspaceDir.getResource(targetPath, { create: true })).saveContents(file);
854
854
  processed++;
855
855
  } catch (error) {
856
- logger$2.error(`Failed to upload ${file.name}:`, error);
856
+ logger$1.error(`Failed to upload ${file.name}:`, error);
857
857
  failed++;
858
858
  }
859
- logger$2.info(`Uploaded ${processed}/${total} files${skipped > 0 ? `, ${skipped} skipped` : ""}${failed > 0 ? `, ${failed} failed` : ""}`);
859
+ logger$1.info(`Uploaded ${processed}/${total} files${skipped > 0 ? `, ${skipped} skipped` : ""}${failed > 0 ? `, ${failed} failed` : ""}`);
860
860
  await this.loadWorkspace(this.workspaceDir);
861
861
  }
862
862
  buildTargetPath(targetDir, fileName) {
@@ -958,33 +958,6 @@ var DocksFileBrowser = class DocksFileBrowser extends DocksPart {
958
958
  _decorate([state()], DocksFileBrowser.prototype, "root", void 0);
959
959
  DocksFileBrowser = _DocksFileBrowser = _decorate([customElement("docks-filebrowser")], DocksFileBrowser);
960
960
  //#endregion
961
- //#region src/core/contribution-names.ts
962
- var VIEW_FILEBROWSER = "view.filebrowser";
963
- var VIEW_LOG_TERMINAL = "view.logTerminal";
964
- var TOOLBAR_INFO = "toolbar.info";
965
- var TOOLBAR_FAST_VIEWS = "toolbar.fastViews";
966
- var TOOLBAR_LANGUAGE_SELECTOR = "toolbar.languageSelector";
967
- /** Main toolbar (right): layout picker (`docks-layout-switcher`). */
968
- var TOOLBAR_LAYOUT_SWITCHER = "toolbar.layoutSwitcher";
969
- /** Main toolbar (right): dark/light theme toggle (`switch_theme`). */
970
- var TOOLBAR_THEME_SWITCHER = "toolbar.themeSwitcher";
971
- /** Main toolbar (right): document fullscreen toggle (`fullscreen`). */
972
- var TOOLBAR_FULLSCREEN = "toolbar.fullscreen";
973
- /** Bottom-center toolbar: focused part title / active part indicator (`docks-part-name`). */
974
- var TOOLBAR_ACTIVE_PART_NAME = "toolbar.activePartName";
975
- /** Bottom-center toolbar: background tasks / progress (`docks-tasks`). */
976
- var TOOLBAR_TASKS = "toolbar.tasks";
977
- /** Main sidebar header toolbar: open extensions (`open_extensions` command). */
978
- var SIDEBAR_TOOLBAR_EXTENSIONS = "sidebar.toolbar.extensions";
979
- /** Default file-type → icon mappings on `system.icons`. */
980
- var SYSTEM_DEFAULT_FILE_ICONS = "system.icons.default";
981
- var ABOUT_TAB_RELEASE = "about.tab.release";
982
- var ABOUT_TAB_PACKAGES = "about.tab.packages";
983
- var ABOUT_TAB_ATTRIBUTIONS = "about.tab.attributions";
984
- var ATTRIBUTION_ECLIPSE_DOCKS = "attribution.eclipse-docks";
985
- var CTXMENU_FILEBROWSER_RENAME = "contextmenu.filebrowser.rename";
986
- var CTXMENU_FILEBROWSER_DELETE = "contextmenu.filebrowser.delete";
987
- //#endregion
988
961
  //#region src/components/tasks.ts
989
962
  var t$5 = await i18n(/* @__PURE__ */ Object.assign({
990
963
  "./tasks.de.json": () => import("./tasks.de-y2xPmQ1k.js"),
@@ -1019,10 +992,6 @@ function updateProgressDialog(forceOpen = false) {
1019
992
  }
1020
993
  const existingDialog = getDialogElement();
1021
994
  if (!(forceOpen || existingDialog?.open === true)) return;
1022
- const handleClose = () => {
1023
- const dialog = getDialogElement();
1024
- if (dialog) dialog.open = false;
1025
- };
1026
995
  const handleAfterHide = () => {
1027
996
  render(html``, container);
1028
997
  };
@@ -1032,7 +1001,6 @@ function updateProgressDialog(forceOpen = false) {
1032
1001
  open
1033
1002
  light-dismiss
1034
1003
  style="--width: 600px;"
1035
- @wa-request-close=${handleClose}
1036
1004
  @wa-after-hide=${handleAfterHide}
1037
1005
  >
1038
1006
  <style>
@@ -1289,7 +1257,7 @@ var DocksPartName = class DocksPartName extends DocksElement {
1289
1257
  DocksPartName = _decorate([customElement("docks-part-name")], DocksPartName);
1290
1258
  //#endregion
1291
1259
  //#region src/components/extensions.ts
1292
- var logger$1 = createLogger("DocksExtensions");
1260
+ var logger = createLogger("DocksExtensions");
1293
1261
  var t$2 = await i18n(/* @__PURE__ */ Object.assign({
1294
1262
  "./extensions.de.json": () => import("./extensions.de-Ct1DIybE.js"),
1295
1263
  "./extensions.en.json": () => import("./extensions.en-DRPFtVHT.js")
@@ -1300,6 +1268,9 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
1300
1268
  this.filterText = "";
1301
1269
  this.showRegisterDialog = false;
1302
1270
  this.registerExtensionData = {};
1271
+ this.handleRegisterDialogAfterHide = () => {
1272
+ this.finishRegisterDialogClose();
1273
+ };
1303
1274
  }
1304
1275
  doInitUI() {
1305
1276
  subscribe(TOPIC_EXTENSIONS_CHANGED, () => {
@@ -1400,7 +1371,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
1400
1371
  this.showRegisterDialog = true;
1401
1372
  this.requestUpdate();
1402
1373
  } catch (error) {
1403
- logger$1.warn(`Could not fetch package.json, using defaults: ${error}`);
1374
+ logger.warn(`Could not fetch package.json, using defaults: ${error}`);
1404
1375
  this.registerExtensionData = {
1405
1376
  url,
1406
1377
  id: "",
@@ -1439,7 +1410,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
1439
1410
  extensionRegistry.registerExtension(extension);
1440
1411
  await extensionRegistry.loadExtensionFromUrl(this.registerExtensionData.url, extension.id);
1441
1412
  toastInfo(`Extension ${extension.name} registered successfully`);
1442
- this.showRegisterDialog = false;
1413
+ this.closeRegisterDialog();
1443
1414
  this.registerExtensionData = {};
1444
1415
  this.requestUpdate();
1445
1416
  });
@@ -1447,11 +1418,22 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
1447
1418
  toastError(`Failed to register extension: ${error}`);
1448
1419
  }
1449
1420
  }
1450
- cancelRegisterExtension() {
1421
+ closeRegisterDialog() {
1422
+ const dialog = this.renderRoot.querySelector("wa-dialog");
1423
+ if (dialog && dialog.open !== false) {
1424
+ dialog.open = false;
1425
+ return;
1426
+ }
1427
+ this.finishRegisterDialogClose();
1428
+ }
1429
+ finishRegisterDialogClose() {
1451
1430
  this.showRegisterDialog = false;
1452
1431
  this.registerExtensionData = {};
1453
1432
  this.requestUpdate();
1454
1433
  }
1434
+ cancelRegisterExtension() {
1435
+ this.closeRegisterDialog();
1436
+ }
1455
1437
  renderToolbar() {
1456
1438
  return html`
1457
1439
  <wa-input
@@ -1482,7 +1464,7 @@ var DocksExtensions = class DocksExtensions extends DocksPart {
1482
1464
  <wa-dialog
1483
1465
  label="Register Extension"
1484
1466
  open
1485
- @wa-request-close=${() => this.cancelRegisterExtension()}
1467
+ @wa-after-hide=${this.handleRegisterDialogAfterHide}
1486
1468
  style="--wa-dialog-width: 500px;">
1487
1469
  <div style="display: flex; flex-direction: column; gap: 1rem; padding: 1rem;">
1488
1470
  <wa-input
@@ -2154,11 +2136,8 @@ var DocksCommand = class DocksCommand extends DocksWidget {
2154
2136
  this.placement = "bottom-start";
2155
2137
  this.dropdownContributions = [];
2156
2138
  }
2157
- closeDropdown(dropdown) {
2158
- if (dropdown && dropdown.open !== void 0) dropdown.open = false;
2159
- }
2160
2139
  handleSelect(event) {
2161
- this.closeDropdown(event.target);
2140
+ handleDropdownWaSelect(event);
2162
2141
  }
2163
2142
  getKeybinding() {
2164
2143
  if (!this.cmd || this.action) return null;
@@ -2578,7 +2557,6 @@ var showLanguageSelectorDialog = async () => {
2578
2557
  label="Select Language"
2579
2558
  open
2580
2559
  light-dismiss
2581
- @wa-request-close=${handleClose}
2582
2560
  @wa-after-hide=${handleAfterHide}>
2583
2561
  <style>
2584
2562
  .language-list {
@@ -2661,38 +2639,144 @@ var DocksLanguageSelector = class DocksLanguageSelector extends DocksElement {
2661
2639
  };
2662
2640
  DocksLanguageSelector = _decorate([customElement("docks-language-selector")], DocksLanguageSelector);
2663
2641
  //#endregion
2642
+ //#region src/core/layout-panels.ts
2643
+ var DEFAULT_LAYOUT_PANEL_VISIBILITY = {
2644
+ showLeftSidebar: true,
2645
+ showAuxSidebar: true,
2646
+ showBottomPanel: true,
2647
+ showLeftAux: false,
2648
+ showRightAux: false
2649
+ };
2650
+ function normalizePanelVisibility(stored) {
2651
+ return {
2652
+ showLeftSidebar: stored.showLeftSidebar ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showLeftSidebar,
2653
+ showAuxSidebar: stored.showAuxSidebar ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showAuxSidebar,
2654
+ showBottomPanel: stored.showBottomPanel ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showBottomPanel,
2655
+ showLeftAux: stored.showLeftAux ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showLeftAux,
2656
+ showRightAux: stored.showRightAux ?? DEFAULT_LAYOUT_PANEL_VISIBILITY.showRightAux
2657
+ };
2658
+ }
2659
+ var LAYOUT_PANEL_SETTINGS_KEY = "layoutPanelVisibility";
2660
+ /** @deprecated Legacy layout id persisted before panel visibility toggles. */
2661
+ var LEGACY_PREFERRED_LAYOUT_KEY = "preferredLayoutId";
2662
+ /** Maps legacy parameterized layout ids to panel visibility. */
2663
+ function layoutIdToPanelVisibility(layoutId) {
2664
+ switch (layoutId) {
2665
+ case "standard-bottom-panel": return {
2666
+ ...DEFAULT_LAYOUT_PANEL_VISIBILITY,
2667
+ showBottomPanel: true,
2668
+ showLeftAux: false,
2669
+ showRightAux: false
2670
+ };
2671
+ case "standard-bottom-sidebar": return {
2672
+ ...DEFAULT_LAYOUT_PANEL_VISIBILITY,
2673
+ showBottomPanel: false,
2674
+ showLeftAux: true,
2675
+ showRightAux: false
2676
+ };
2677
+ case "standard-full": return {
2678
+ ...DEFAULT_LAYOUT_PANEL_VISIBILITY,
2679
+ showLeftAux: true,
2680
+ showRightAux: true
2681
+ };
2682
+ default: return {
2683
+ ...DEFAULT_LAYOUT_PANEL_VISIBILITY,
2684
+ showBottomPanel: false,
2685
+ showLeftAux: false,
2686
+ showRightAux: false
2687
+ };
2688
+ }
2689
+ }
2690
+ function resolveInitialPanelVisibilityFromApp(appLayout) {
2691
+ if (typeof appLayout === "object" && appLayout.props) return {
2692
+ ...DEFAULT_LAYOUT_PANEL_VISIBILITY,
2693
+ showLeftSidebar: appLayout.props.showLeftSidebar !== false,
2694
+ showAuxSidebar: appLayout.props.showAuxSidebar !== false,
2695
+ showBottomPanel: appLayout.props.showBottomPanel === true,
2696
+ showLeftAux: appLayout.props.showLeftAux === true,
2697
+ showRightAux: appLayout.props.showRightAux === true
2698
+ };
2699
+ if (typeof appLayout === "string") return layoutIdToPanelVisibility(appLayout);
2700
+ return { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
2701
+ }
2702
+ async function resolveStoredPanelVisibility(appLayout) {
2703
+ try {
2704
+ const saved = await appSettings.get(LAYOUT_PANEL_SETTINGS_KEY);
2705
+ if (saved && typeof saved === "object") return normalizePanelVisibility(saved);
2706
+ } catch {}
2707
+ try {
2708
+ const legacyLayoutId = await appSettings.get(LEGACY_PREFERRED_LAYOUT_KEY);
2709
+ if (legacyLayoutId) return layoutIdToPanelVisibility(legacyLayoutId);
2710
+ } catch {}
2711
+ return resolveInitialPanelVisibilityFromApp(appLayout);
2712
+ }
2713
+ function findStandardLayout(container) {
2714
+ const root = container ?? document.getElementById("app-root") ?? document.body;
2715
+ if (!root || typeof root.querySelector !== "function") return null;
2716
+ return root.querySelector("docks-standard-layout");
2717
+ }
2718
+ var LAYOUT_PANEL_OPTIONS = [
2719
+ {
2720
+ key: "showLeftSidebar",
2721
+ label: "Left sidebar",
2722
+ icon: "docks layout-standard-left-sidebar"
2723
+ },
2724
+ {
2725
+ key: "showAuxSidebar",
2726
+ label: "Right sidebar",
2727
+ icon: "docks layout-standard-right-sidebar"
2728
+ },
2729
+ {
2730
+ key: "showBottomPanel",
2731
+ label: "Bottom panel",
2732
+ icon: "docks layout-standard-bottom-panel"
2733
+ },
2734
+ {
2735
+ key: "showLeftAux",
2736
+ label: "Left Aux",
2737
+ icon: "docks layout-standard-left-aux"
2738
+ },
2739
+ {
2740
+ key: "showRightAux",
2741
+ label: "Right Aux",
2742
+ icon: "docks layout-standard-right-aux"
2743
+ }
2744
+ ];
2745
+ //#endregion
2664
2746
  //#region src/components/layout-switcher.ts
2665
2747
  var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
2666
2748
  constructor(..._args) {
2667
2749
  super(..._args);
2668
- this.currentLayoutId = "standard";
2750
+ this.panels = { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
2669
2751
  }
2670
2752
  doBeforeUI() {
2671
- this.currentLayoutId = appLoaderService.getCurrentLayoutId();
2672
- const updateLayout = () => {
2673
- this.currentLayoutId = appLoaderService.getCurrentLayoutId();
2753
+ const syncPanels = () => {
2754
+ this.panels = findStandardLayout()?.getPanelVisibility() ?? { ...DEFAULT_LAYOUT_PANEL_VISIBILITY };
2674
2755
  this.requestUpdate();
2675
2756
  };
2676
- window.addEventListener("app-loaded", updateLayout);
2677
- window.addEventListener("layout-changed", updateLayout);
2757
+ syncPanels();
2758
+ window.addEventListener("app-loaded", syncPanels);
2759
+ window.addEventListener("layout-panels-changed", syncPanels);
2678
2760
  return () => {
2679
- window.removeEventListener("app-loaded", updateLayout);
2680
- window.removeEventListener("layout-changed", updateLayout);
2761
+ window.removeEventListener("app-loaded", syncPanels);
2762
+ window.removeEventListener("layout-panels-changed", syncPanels);
2681
2763
  };
2682
2764
  }
2683
2765
  async handleSelect(e) {
2684
- const layoutId = e.detail?.item?.value;
2685
- if (!layoutId || layoutId === this.currentLayoutId) return;
2766
+ const layout = findStandardLayout();
2767
+ if (!layout) return;
2768
+ const item = e.detail?.item;
2769
+ const key = item?.value;
2770
+ if (!item || !key) return;
2686
2771
  try {
2687
- await appLoaderService.setPreferredLayoutId(layoutId);
2772
+ await layout.setPanelVisibility({ [key]: item.checked ?? false });
2773
+ this.panels = layout.getPanelVisibility();
2688
2774
  } catch (err) {
2689
- console.error("Failed to switch layout:", err);
2775
+ console.error("Failed to update layout panels:", err);
2690
2776
  }
2691
2777
  }
2692
2778
  render() {
2693
- const layouts = appLoaderService.getRegisteredLayouts();
2694
- if (layouts.length <= 1) return html``;
2695
- const layoutName = layouts.find((l) => l.id === this.currentLayoutId)?.name ?? this.currentLayoutId;
2779
+ if (!findStandardLayout()) return html``;
2696
2780
  return html`
2697
2781
  <wa-dropdown
2698
2782
  placement="bottom-end"
@@ -2704,19 +2788,19 @@ var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
2704
2788
  appearance="plain"
2705
2789
  size="s"
2706
2790
  with-caret
2707
- title="Switch layout (current: ${layoutName})">
2708
- <wa-icon name="table-cells" label="Layout"></wa-icon>
2791
+ title="Show or hide layout panels">
2792
+ ${icon("docks layout-standard-full", { label: "Layout panels" })}
2709
2793
  </wa-button>
2710
- ${layouts.map((layout) => html`
2794
+ ${LAYOUT_PANEL_OPTIONS.map((panel) => html`
2711
2795
  <wa-dropdown-item
2712
- value="${layout.id}"
2796
+ value="${panel.key}"
2713
2797
  type="checkbox"
2714
- ?checked=${layout.id === this.currentLayoutId}>
2715
- ${icon(layout.icon, {
2716
- label: layout.name,
2798
+ ?checked=${this.panels[panel.key]}>
2799
+ ${icon(panel.icon, {
2800
+ label: panel.label,
2717
2801
  slot: "icon"
2718
2802
  })}
2719
- ${layout.name}
2803
+ ${panel.label}
2720
2804
  </wa-dropdown-item>
2721
2805
  `)}
2722
2806
  </wa-dropdown>
@@ -2730,143 +2814,15 @@ var DocksLayoutSwitcher = class DocksLayoutSwitcher extends DocksElement {
2730
2814
  `;
2731
2815
  }
2732
2816
  };
2733
- _decorate([state()], DocksLayoutSwitcher.prototype, "currentLayoutId", void 0);
2817
+ _decorate([state()], DocksLayoutSwitcher.prototype, "panels", void 0);
2734
2818
  DocksLayoutSwitcher = _decorate([customElement("docks-layout-switcher")], DocksLayoutSwitcher);
2735
2819
  //#endregion
2736
- //#region src/components/release-history.ts
2737
- var logger = createLogger("ReleaseHistory");
2738
- async function loadReleases(releaseHistory) {
2739
- if (!releaseHistory) return [];
2740
- if (typeof releaseHistory !== "function") return releaseHistory;
2741
- try {
2742
- return await releaseHistory();
2743
- } catch (error) {
2744
- logger.error(`Failed to load release history from app: ${error instanceof Error ? error.message : String(error)}`);
2745
- return [];
2746
- }
2747
- }
2748
- function semverEqual(a, b) {
2749
- return a.replace(/^v/i, "") === b.replace(/^v/i, "");
2750
- }
2751
- function isNewerThan(releaseTag, currentVersion) {
2752
- const currentParts = currentVersion.replace(/^v/i, "").split(".").map(Number);
2753
- const releaseParts = releaseTag.replace(/^v/i, "").split(".").map(Number);
2754
- for (let i = 0; i < Math.max(currentParts.length, releaseParts.length); i++) {
2755
- const current = currentParts[i] || 0;
2756
- const releasePart = releaseParts[i] || 0;
2757
- if (releasePart > current) return true;
2758
- if (releasePart < current) return false;
2759
- }
2760
- return false;
2761
- }
2762
- var DocksReleaseHistory = class DocksReleaseHistory extends DocksPart {
2820
+ //#region src/components/npm-packages.ts
2821
+ var DocksNpmPackages = class DocksNpmPackages extends DocksPart {
2763
2822
  constructor(..._args) {
2764
2823
  super(..._args);
2765
2824
  this.scrollMode = "none";
2766
- this.appVersion = "0.0.0";
2767
- this.releases = [];
2768
- this.currentReleaseIndex = 0;
2769
- }
2770
- static {
2771
- this.styles = [css`
2772
- .release-panel {
2773
- display: flex;
2774
- flex-direction: column;
2775
- gap: 0.5rem;
2776
- height: 100%;
2777
- padding: 0.75rem;
2778
- box-sizing: border-box;
2779
- }
2780
-
2781
- .release-panel wa-scroller {
2782
- flex: 1;
2783
- min-height: 0;
2784
- }
2785
-
2786
- .release-nav {
2787
- display: flex;
2788
- gap: 0.5rem;
2789
- }
2790
- `];
2791
- }
2792
- doInitUI() {
2793
- this.load();
2794
- }
2795
- async load() {
2796
- const app = appLoaderService.getCurrentApp();
2797
- this.appVersion = app?.version ?? "0.0.0";
2798
- this.releases = await loadReleases(app?.releaseHistory);
2799
- const currentIndex = this.releases.findIndex((release) => semverEqual(release.tag_name, this.appVersion));
2800
- this.currentReleaseIndex = currentIndex >= 0 ? currentIndex : 0;
2801
- }
2802
- showOlder() {
2803
- if (this.currentReleaseIndex < this.releases.length - 1) this.currentReleaseIndex += 1;
2804
- }
2805
- showNewer() {
2806
- if (this.currentReleaseIndex > 0) this.currentReleaseIndex -= 1;
2807
- }
2808
- renderContent() {
2809
- const release = this.releases[this.currentReleaseIndex];
2810
- if (!release) return html`<div class="release-panel">No release history available.</div>`;
2811
- const isCurrent = semverEqual(release.tag_name, this.appVersion);
2812
- const showUpdateHint = !isCurrent && isNewerThan(release.tag_name, this.appVersion);
2813
- const atOldest = this.currentReleaseIndex === this.releases.length - 1;
2814
- const atNewest = this.currentReleaseIndex === 0;
2815
- const bodyHtml = release.body ? parseMarkdownHtml(release.body) : "";
2816
- return html`
2817
- <div class="release-panel">
2818
- <p>
2819
- <strong>Version:</strong> ${release.tag_name}${isCurrent ? " (Current)" : ""}
2820
- </p>
2821
- <p>
2822
- <strong>Released:</strong>
2823
- <wa-format-date
2824
- .date=${release.published_at}
2825
- month="short"
2826
- day="numeric"
2827
- year="numeric"
2828
- ></wa-format-date>
2829
- </p>
2830
- ${showUpdateHint ? html`
2831
- <wa-callout variant="warning">
2832
- <wa-icon slot="icon" name="triangle-exclamation"></wa-icon>
2833
- Update available — reload the page to update
2834
- </wa-callout>
2835
- ` : ""}
2836
- <wa-scroller orientation="vertical">
2837
- ${bodyHtml ? html`<div style="white-space: normal;">${unsafeHTML(bodyHtml)}</div>` : ""}
2838
- </wa-scroller>
2839
- ${this.releases.length > 1 ? html`
2840
- <div class="release-nav">
2841
- <wa-button-group>
2842
- <wa-button
2843
- variant="default"
2844
- ?disabled=${atOldest}
2845
- @click=${() => this.showOlder()}
2846
- >
2847
- ← Previous
2848
- </wa-button>
2849
- <wa-button
2850
- variant="default"
2851
- ?disabled=${atNewest}
2852
- @click=${() => this.showNewer()}
2853
- >
2854
- Next →
2855
- </wa-button>
2856
- </wa-button-group>
2857
- </div>
2858
- ` : ""}
2859
- </div>
2860
- `;
2861
2825
  }
2862
- };
2863
- _decorate([state()], DocksReleaseHistory.prototype, "appVersion", void 0);
2864
- _decorate([state()], DocksReleaseHistory.prototype, "releases", void 0);
2865
- _decorate([state()], DocksReleaseHistory.prototype, "currentReleaseIndex", void 0);
2866
- DocksReleaseHistory = _decorate([customElement("docks-release-history")], DocksReleaseHistory);
2867
- //#endregion
2868
- //#region src/components/npm-packages.ts
2869
- var DocksNpmPackages = class DocksNpmPackages extends DocksPart {
2870
2826
  static {
2871
2827
  this.styles = [css`
2872
2828
  .packages-panel {
@@ -2912,6 +2868,7 @@ function renderHtmlContribution(contribution) {
2912
2868
  var DocksAttributionPart = class DocksAttributionPart extends DocksPart {
2913
2869
  constructor(..._args) {
2914
2870
  super(..._args);
2871
+ this.scrollMode = "none";
2915
2872
  this.attributions = [];
2916
2873
  }
2917
2874
  static {
@@ -2984,7 +2941,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
2984
2941
  ranking: 100,
2985
2942
  toolbar: false,
2986
2943
  contextMenu: false,
2987
- component: (id) => html`<docks-attribution id="${id}"></docks-attribution>`
2944
+ component: (id) => html`<docks-attribution id="${id}" embedded></docks-attribution>`
2988
2945
  });
2989
2946
  contributionRegistry.registerContribution(ABOUT_TABS, {
2990
2947
  name: ABOUT_TAB_RELEASE,
@@ -2993,7 +2950,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
2993
2950
  ranking: 50,
2994
2951
  toolbar: false,
2995
2952
  contextMenu: false,
2996
- component: (id) => html`<docks-release-history id="${id}"></docks-release-history>`
2953
+ component: (id) => html`<docks-release-history id="${id}" embedded></docks-release-history>`
2997
2954
  });
2998
2955
  contributionRegistry.registerContribution(ABOUT_TABS, {
2999
2956
  name: ABOUT_TAB_PACKAGES,
@@ -3002,7 +2959,7 @@ contributionRegistry.registerContribution(ABOUT_TABS, {
3002
2959
  ranking: 0,
3003
2960
  toolbar: false,
3004
2961
  contextMenu: false,
3005
- component: (id) => html`<docks-npm-packages id="${id}"></docks-npm-packages>`
2962
+ component: (id) => html`<docks-npm-packages id="${id}" embedded></docks-npm-packages>`
3006
2963
  });
3007
2964
  contributionRegistry.registerContribution(SYSTEM_ATTRIBUTIONS, {
3008
2965
  name: ATTRIBUTION_ECLIPSE_DOCKS,
@@ -3033,7 +2990,7 @@ contributionRegistry.registerContribution(TOOLBAR_BOTTOM_END, {
3033
2990
  });
3034
2991
  contributionRegistry.registerContribution(TOOLBAR_MAIN_RIGHT, {
3035
2992
  name: TOOLBAR_LAYOUT_SWITCHER,
3036
- label: "Layout Switcher",
2993
+ label: "Layout panels",
3037
2994
  component: () => html`<docks-layout-switcher></docks-layout-switcher>`
3038
2995
  });
3039
2996
  contributionRegistry.registerContribution(SIDEBAR_MAIN_TOOLBAR, {
@@ -3047,14 +3004,57 @@ contributionRegistry.registerContribution(SIDEBAR_MAIN_TOOLBAR, {
3047
3004
  var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
3048
3005
  constructor(..._args) {
3049
3006
  super(..._args);
3050
- this.showBottomSidebar = false;
3051
- this.showBottomPanel = false;
3007
+ this.showLeftAux = false;
3008
+ this.showBottomPanel = true;
3052
3009
  this.showLeftSidebar = true;
3053
3010
  this.showAuxSidebar = true;
3011
+ this.showRightAux = false;
3012
+ this.panelsInitialized = false;
3054
3013
  }
3055
3014
  createRenderRoot() {
3056
3015
  return this;
3057
3016
  }
3017
+ getPanelVisibility() {
3018
+ return {
3019
+ showLeftSidebar: this.showLeftSidebar,
3020
+ showAuxSidebar: this.showAuxSidebar,
3021
+ showBottomPanel: this.showBottomPanel,
3022
+ showLeftAux: this.showLeftAux,
3023
+ showRightAux: this.showRightAux
3024
+ };
3025
+ }
3026
+ applyPanelVisibility(panels) {
3027
+ this.showLeftSidebar = panels.showLeftSidebar;
3028
+ this.showAuxSidebar = panels.showAuxSidebar;
3029
+ this.showBottomPanel = panels.showBottomPanel;
3030
+ this.showLeftAux = panels.showLeftAux;
3031
+ this.showRightAux = panels.showRightAux;
3032
+ }
3033
+ async setPanelVisibility(panels) {
3034
+ const next = {
3035
+ ...this.getPanelVisibility(),
3036
+ ...panels
3037
+ };
3038
+ this.applyPanelVisibility(next);
3039
+ try {
3040
+ await appSettings.set(LAYOUT_PANEL_SETTINGS_KEY, next);
3041
+ } catch (error) {
3042
+ console.error("Failed to persist layout panel visibility:", error);
3043
+ throw error;
3044
+ }
3045
+ window.dispatchEvent(new CustomEvent("layout-panels-changed", { detail: { panels: this.getPanelVisibility() } }));
3046
+ }
3047
+ doInitUI() {
3048
+ this.initializePanelVisibility();
3049
+ }
3050
+ async initializePanelVisibility() {
3051
+ if (this.panelsInitialized) return;
3052
+ this.panelsInitialized = true;
3053
+ const appLayout = appLoaderService.getCurrentApp()?.layout;
3054
+ const panels = await resolveStoredPanelVisibility(appLayout);
3055
+ this.applyPanelVisibility(panels);
3056
+ window.dispatchEvent(new CustomEvent("layout-panels-changed", { detail: { panels: this.getPanelVisibility() } }));
3057
+ }
3058
3058
  getGridSizes() {
3059
3059
  if (this.showLeftSidebar && this.showAuxSidebar) return "20%, 60%, 20%";
3060
3060
  if (this.showLeftSidebar) return "20%, 80%";
@@ -3146,7 +3146,7 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
3146
3146
  sizes=${this.getGridSizes()}>
3147
3147
 
3148
3148
  ${this.showLeftSidebar ? html`
3149
- ${this.showBottomSidebar ? html`
3149
+ ${this.showLeftAux ? html`
3150
3150
  <docks-resizable-grid
3151
3151
  id="left-sidebar-split"
3152
3152
  orientation="vertical"
@@ -3167,7 +3167,17 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
3167
3167
  </docks-resizable-grid>
3168
3168
  ` : html`<docks-tabs id="${EDITOR_AREA_MAIN}"></docks-tabs>`}
3169
3169
 
3170
- ${this.showAuxSidebar ? html`<docks-tabs id="${SIDEBAR_AUXILIARY}"></docks-tabs>` : nothing}
3170
+ ${this.showAuxSidebar ? html`
3171
+ ${this.showRightAux ? html`
3172
+ <docks-resizable-grid
3173
+ id="right-sidebar-split"
3174
+ orientation="vertical"
3175
+ sizes="50%, 50%">
3176
+ <docks-tabs id="${SIDEBAR_AUXILIARY}"></docks-tabs>
3177
+ <docks-tabs id="${SIDEBAR_AUXILIARY_BOTTOM}" placement="start" icon-only></docks-tabs>
3178
+ </docks-resizable-grid>
3179
+ ` : html`<docks-tabs id="${SIDEBAR_AUXILIARY}"></docks-tabs>`}
3180
+ ` : nothing}
3171
3181
  </docks-resizable-grid>
3172
3182
 
3173
3183
  <div class="toolbar-bottom">
@@ -3180,8 +3190,8 @@ var DocksStandardLayout = class DocksStandardLayout extends DocksContainer {
3180
3190
  };
3181
3191
  _decorate([property({
3182
3192
  type: Boolean,
3183
- attribute: "show-bottom-sidebar"
3184
- })], DocksStandardLayout.prototype, "showBottomSidebar", void 0);
3193
+ attribute: "show-left-aux"
3194
+ })], DocksStandardLayout.prototype, "showLeftAux", void 0);
3185
3195
  _decorate([property({
3186
3196
  type: Boolean,
3187
3197
  attribute: "show-bottom-panel"
@@ -3194,51 +3204,20 @@ _decorate([property({
3194
3204
  type: Boolean,
3195
3205
  attribute: "show-aux-sidebar"
3196
3206
  })], DocksStandardLayout.prototype, "showAuxSidebar", void 0);
3207
+ _decorate([property({
3208
+ type: Boolean,
3209
+ attribute: "show-right-aux"
3210
+ })], DocksStandardLayout.prototype, "showRightAux", void 0);
3197
3211
  DocksStandardLayout = _decorate([customElement("docks-standard-layout")], DocksStandardLayout);
3198
3212
  //#endregion
3199
3213
  //#region src/contributions/default-layout-contributions.ts
3200
- for (const layout of [
3201
- {
3202
- id: "standard",
3203
- name: "Standard",
3204
- label: "Standard",
3205
- icon: "docks layout-standard",
3206
- component: "docks-standard-layout"
3207
- },
3208
- {
3209
- id: "standard-bottom-panel",
3210
- name: "Standard (bottom panel)",
3211
- label: "Standard (bottom panel)",
3212
- icon: "docks layout-standard-bottom-panel",
3213
- component: {
3214
- tag: "docks-standard-layout",
3215
- attributes: { "show-bottom-panel": "true" }
3216
- }
3217
- },
3218
- {
3219
- id: "standard-bottom-sidebar",
3220
- name: "Standard (bottom sidebar)",
3221
- label: "Standard (bottom sidebar)",
3222
- icon: "docks layout-standard-bottom-sidebar",
3223
- component: {
3224
- tag: "docks-standard-layout",
3225
- attributes: { "show-bottom-sidebar": "true" }
3226
- }
3227
- },
3228
- {
3229
- id: "standard-full",
3230
- name: "Standard (panel + sidebar)",
3231
- label: "Standard (panel + sidebar)",
3232
- icon: "docks layout-standard-full",
3233
- component: {
3234
- tag: "docks-standard-layout",
3235
- attributes: {
3236
- "show-bottom-panel": "true",
3237
- "show-bottom-sidebar": "true"
3238
- }
3239
- }
3240
- }
3241
- ]) contributionRegistry.registerContribution(SYSTEM_LAYOUTS, layout);
3214
+ contributionRegistry.registerContribution(SYSTEM_LAYOUTS, {
3215
+ id: "standard",
3216
+ name: "Standard",
3217
+ label: "Standard",
3218
+ icon: "docks layout-standard-full",
3219
+ component: "docks-standard-layout"
3220
+ });
3242
3221
  //#endregion
3243
3222
  //#region src/commands/files.ts
3244
3223
  async function getWorkspaceAndPath(params, requirePath = true) {
@@ -4636,6 +4615,6 @@ function getFrameworkConfig() {
4636
4615
  return { ...frameworkConfig };
4637
4616
  }
4638
4617
  //#endregion
4639
- export { VIEW_LOG_TERMINAL as C, i18n as D, createLazyLabel as E, VIEW_FILEBROWSER as S, editorRegistry as T, TOOLBAR_INFO as _, DocksStandardLayout as a, TOOLBAR_TASKS as b, ABOUT_TAB_RELEASE as c, CTXMENU_FILEBROWSER_RENAME as d, SIDEBAR_TOOLBAR_EXTENSIONS as f, TOOLBAR_FULLSCREEN as g, TOOLBAR_FAST_VIEWS as h, createJsRuntime as i, ATTRIBUTION_ECLIPSE_DOCKS as l, TOOLBAR_ACTIVE_PART_NAME as m, getFrameworkConfig as n, ABOUT_TAB_ATTRIBUTIONS as o, SYSTEM_DEFAULT_FILE_ICONS as p, runJavaScriptCode as r, ABOUT_TAB_PACKAGES as s, configureFramework as t, CTXMENU_FILEBROWSER_DELETE as u, TOOLBAR_LANGUAGE_SELECTOR as v, treeNodeComparator as w, TOOLBAR_THEME_SWITCHER as x, TOOLBAR_LAYOUT_SWITCHER as y };
4618
+ export { i18n as _, DocksStandardLayout as a, LAYOUT_PANEL_SETTINGS_KEY as c, layoutIdToPanelVisibility as d, resolveInitialPanelVisibilityFromApp as f, createLazyLabel as g, editorRegistry as h, createJsRuntime as i, LEGACY_PREFERRED_LAYOUT_KEY as l, treeNodeComparator as m, getFrameworkConfig as n, DEFAULT_LAYOUT_PANEL_VISIBILITY as o, resolveStoredPanelVisibility as p, runJavaScriptCode as r, LAYOUT_PANEL_OPTIONS as s, configureFramework as t, findStandardLayout as u };
4640
4619
 
4641
- //# sourceMappingURL=api-Da9zQcfd.js.map
4620
+ //# sourceMappingURL=api-oPg3Bv1S.js.map