@eclipse-docks/core 0.7.94 → 0.7.96

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.
@@ -60,6 +60,9 @@ import "@awesome.me/webawesome/dist/styles/native.css";
60
60
  import "@awesome.me/webawesome/dist/styles/utilities.css";
61
61
  import "@awesome.me/webawesome/dist/styles/themes/default.css";
62
62
  import { registerIconLibrary } from "@awesome.me/webawesome";
63
+ //#region src/icons/extensions.svg?url
64
+ var extensions_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='9.5'%20y='0.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='0.5'%20y='9.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='9.5'%20y='9.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='0.5'%20y='0.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.55'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3c/svg%3e";
65
+ //#endregion
63
66
  //#region src/icons/file-plus.svg?url
64
67
  var file_plus_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z'/%3e%3cpolyline%20fill='none'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20points='14%202%2014%208%2020%208'/%3e%3cline%20x1='12'%20y1='13'%20x2='12'%20y2='17'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3cline%20x1='10'%20y1='15'%20x2='14'%20y2='15'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e";
65
68
  //#endregion
@@ -87,10 +90,14 @@ var mark_github_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/
87
90
  //#region src/icons/python.svg?url
88
91
  var python_default = "data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2032%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.0164%202C10.8193%202%209.03825%203.72453%209.03825%205.85185V8.51852H15.9235V9.25926H5.97814C3.78107%209.25926%202%2010.9838%202%2013.1111L2%2018.8889C2%2021.0162%203.78107%2022.7407%205.97814%2022.7407H8.27322V19.4815C8.27322%2017.3542%2010.0543%2015.6296%2012.2514%2015.6296H19.5956C21.4547%2015.6296%2022.9617%2014.1704%2022.9617%2012.3704V5.85185C22.9617%203.72453%2021.1807%202%2018.9836%202H13.0164ZM12.0984%206.74074C12.8589%206.74074%2013.4754%206.14378%2013.4754%205.40741C13.4754%204.67103%2012.8589%204.07407%2012.0984%204.07407C11.3378%204.07407%2010.7213%204.67103%2010.7213%205.40741C10.7213%206.14378%2011.3378%206.74074%2012.0984%206.74074Z'%20fill='url(%23paint0_linear_87_8204)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M18.9834%2030C21.1805%2030%2022.9616%2028.2755%2022.9616%2026.1482V23.4815L16.0763%2023.4815L16.0763%2022.7408L26.0217%2022.7408C28.2188%2022.7408%2029.9998%2021.0162%2029.9998%2018.8889V13.1111C29.9998%2010.9838%2028.2188%209.25928%2026.0217%209.25928L23.7266%209.25928V12.5185C23.7266%2014.6459%2021.9455%2016.3704%2019.7485%2016.3704L12.4042%2016.3704C10.5451%2016.3704%209.03809%2017.8296%209.03809%2019.6296L9.03809%2026.1482C9.03809%2028.2755%2010.8192%2030%2013.0162%2030H18.9834ZM19.9015%2025.2593C19.1409%2025.2593%2018.5244%2025.8562%2018.5244%2026.5926C18.5244%2027.329%2019.1409%2027.9259%2019.9015%2027.9259C20.662%2027.9259%2021.2785%2027.329%2021.2785%2026.5926C21.2785%2025.8562%2020.662%2025.2593%2019.9015%2025.2593Z'%20fill='url(%23paint1_linear_87_8204)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_87_8204'%20x1='12.4809'%20y1='2'%20x2='12.4809'%20y2='22.7407'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23327EBD'/%3e%3cstop%20offset='1'%20stop-color='%231565A7'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_87_8204'%20x1='19.519'%20y1='9.25928'%20x2='19.519'%20y2='30'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23FFDA4B'/%3e%3cstop%20offset='1'%20stop-color='%23F9C600'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";
89
92
  //#endregion
93
+ //#region src/icons/settings.svg?url
94
+ var settings_default = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3cline%20x1='1.5'%20y1='5.5'%20x2='22.5'%20y2='5.5'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3cline%20x1='1.5'%20y1='12'%20x2='22.5'%20y2='12'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3cline%20x1='1.5'%20y1='18.5'%20x2='22.5'%20y2='18.5'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3ccircle%20cx='16.75'%20cy='5.5'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3ccircle%20cx='7.25'%20cy='12'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3ccircle%20cx='14.25'%20cy='18.5'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3c/svg%3e";
95
+ //#endregion
90
96
  //#region src/externals/webawesome.ts
91
97
  registerIconLibrary("docks", {
92
98
  resolver: (name) => {
93
99
  return new URL((/* @__PURE__ */ Object.assign({
100
+ "../icons/extensions.svg": extensions_default,
94
101
  "../icons/file-plus.svg": file_plus_default,
95
102
  "../icons/js.svg": js_default,
96
103
  "../icons/jupyter.svg": jupyter_default,
@@ -99,7 +106,8 @@ registerIconLibrary("docks", {
99
106
  "../icons/layout-standard-full.svg": layout_standard_full_default,
100
107
  "../icons/layout-standard.svg": layout_standard_default,
101
108
  "../icons/mark-github.svg": mark_github_default,
102
- "../icons/python.svg": python_default
109
+ "../icons/python.svg": python_default,
110
+ "../icons/settings.svg": settings_default
103
111
  }))[`../icons/${name}.svg`], import.meta.url).href;
104
112
  },
105
113
  mutator: (svg) => {
@@ -110,4 +118,4 @@ registerIconLibrary("docks", {
110
118
  //#endregion
111
119
  export { registerIconLibrary as t };
112
120
 
113
- //# sourceMappingURL=webawesome-CsYKhg4S.js.map
121
+ //# sourceMappingURL=webawesome-BIXFq9iK.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webawesome-BIXFq9iK.js","names":[],"sources":["../src/icons/extensions.svg?url","../src/icons/file-plus.svg?url","../src/icons/js.svg?url","../src/icons/jupyter.svg?url","../src/icons/layout-standard-bottom-panel.svg?url","../src/icons/layout-standard-bottom-sidebar.svg?url","../src/icons/layout-standard-full.svg?url","../src/icons/layout-standard.svg?url","../src/icons/mark-github.svg?url","../src/icons/python.svg?url","../src/icons/settings.svg?url","../src/externals/webawesome.ts"],"sourcesContent":["export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='9.5'%20y='0.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='0.5'%20y='9.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='9.5'%20y='9.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-brand-fill-loud)'%20fill-opacity='0.28'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.9'%20stroke-width='1'%20stroke-linejoin='round'/%3e%3crect%20x='0.5'%20y='0.5'%20width='8'%20height='8'%20rx='1'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.55'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3cpath%20fill='none'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M14%202H6a2%202%200%200%200-2%202v16a2%202%200%200%200%202%202h12a2%202%200%200%200%202-2V8z'/%3e%3cpolyline%20fill='none'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20points='14%202%2014%208%2020%208'/%3e%3cline%20x1='12'%20y1='13'%20x2='12'%20y2='17'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3cline%20x1='10'%20y1='15'%20x2='14'%20y2='15'%20stroke='currentColor'%20stroke-width='1.5'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2032%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3crect%20x='2'%20y='2'%20width='28'%20height='28'%20fill='%23FFCA28'/%3e%3cpath%20d='M19%2025.2879L21.0615%2023.9237C21.2231%2024.4313%2022.2462%2025.6368%2023.5385%2025.6368C24.8308%2025.6368%2025.4308%2024.931%2025.4308%2024.463C25.4308%2023.1878%2024.1112%2022.7382%2023.4774%2022.5223C23.374%2022.4871%2023.289%2022.4581%2023.2308%2022.4328C23.2009%2022.4198%2023.1558%2022.4025%2023.0979%2022.3804C22.393%2022.1111%2019.7923%2021.1175%2019.7923%2018.2373C19.7923%2015.065%2022.8538%2014.7002%2023.5462%2014.7002C23.9991%2014.7002%2026.1769%2014.7557%2027.2615%2016.7939L25.2615%2018.1898C24.8231%2017.3015%2024.0946%2017.0081%2023.6462%2017.0081C22.5385%2017.0081%2022.3077%2017.8201%2022.3077%2018.1898C22.3077%2019.227%2023.5112%2019.6919%2024.5273%2020.0844C24.7932%2020.1871%2025.0462%2020.2848%2025.2615%2020.3866C26.3692%2020.91%2028%2021.7666%2028%2024.463C28%2025.8136%2026.8672%2028.0002%2024.0154%2028.0002C20.1846%2028.0002%2019.1692%2025.7003%2019%2025.2879Z'%20fill='%233E3E3E'/%3e%3cpath%20d='M9%2025.5587L11.1487%2024.1953C11.317%2024.7026%2011.9713%2025.638%2012.9205%2025.638C13.8698%2025.638%2014.3557%2024.663%2014.3557%2024.1953V15.0002H16.9982V24.1953C17.041%2025.4636%2016.3376%2028.0002%2013.2332%2028.0002C10.379%2028.0002%209.19242%2026.3039%209%2025.5587Z'%20fill='%233E3E3E'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='-22%200%20300%20300'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20preserveAspectRatio='xMidYMid'%3e%3cg%3e%3cpath%20d='M10.5838307,156.409656%20L10.5838307,156.196646%20L10.5838307,123.657627%20L17.7200527,123.657627%20L17.7200527,158.912657%20C18.0516208,161.753926%2017.8075656,164.63288%2017.0023629,167.377784%20C16.19722,170.122687%2014.8474392,172.677251%2013.0335946,174.88924%20C9.6624625,177.797086%205.34298451,179.369568%200.891381719,179.309391%20L0.145805038,173.983903%20C3.01718628,173.985518%205.78730255,172.922981%207.92105685,171.001585%20C9.83826599,168.76489%2010.5838307,165.729334%2010.5838307,156.409656%20Z%20M63.8037763,152.209035%20C63.8037763,156.203166%2063.8037763,159.771277%2064.1232613,162.860071%20L57.7859014,162.860071%20L57.3598815,156.522711%20C56.0343268,158.765028%2054.1386519,160.616318%2051.8656486,161.888456%20C49.5925854,163.160593%2047.0232464,163.808237%2044.4187946,163.765408%20C38.2412071,163.765408%2030.8919752,160.410366%2030.8919752,146.723715%20L30.8919752,123.983721%20L38.0281972,123.983721%20L38.0281972,145.285823%20C38.0281972,152.688352%2040.3181887,157.641058%2046.7620834,157.641058%20C48.0878176,157.655354%2049.4030239,157.404719%2050.6306575,156.903927%20C51.8582911,156.403136%2052.9735276,155.662296%2053.9110465,154.724777%20C54.8485056,153.787318%2055.5894046,152.672022%2056.0901963,151.444448%20C56.5909282,150.216815%2056.8415633,148.901549%2056.8273268,147.575814%20L56.8273268,123.717444%20L63.9634889,123.717444%20L63.9634889,151.996025%20L63.8037763,152.209035%20Z%20M77.330762,136.653806%20C77.330762,131.70104%2077.330762,127.653648%2077.0112304,123.979032%20L83.4018876,123.979032%20L83.7213726,130.635931%20C85.1452074,128.23088%2087.1949721,126.257257%2089.6521533,124.925482%20C92.1093944,123.593709%2094.8819333,122.953703%2097.6742718,123.073695%20C107.153723,123.073695%20114.289945,131.008713%20114.289945,142.831393%20C114.289945,156.784292%20105.715831,163.707504%2096.4493898,163.707504%20C94.0776877,163.813321%2091.7187865,163.305232%2089.6009496,162.232346%20C87.4831127,161.159401%2085.6780613,159.558028%2084.3604623,157.583154%20L84.3604623,178.885226%20L77.330762,178.885226%20L77.330762,136.813578%20L77.330762,136.653806%20Z%20M84.3604623,147.038594%20C84.3797833,148.004885%2084.4867369,148.967408%2084.6800071,149.914378%20C85.2842232,152.279021%2086.6597255,154.374666%2088.5887785,155.869683%20C90.5178913,157.364761%2092.8904309,158.173852%2095.3310427,158.168947%20C102.840047,158.168947%20107.260258,152.044597%20107.260258,143.150938%20C107.260258,135.375686%20103.106354,128.718758%2095.59735,128.718758%20C92.6257387,128.962101%2089.844945,130.280974%2087.7762781,132.428062%20C85.7076111,134.575149%2084.4931374,137.403079%2084.3604623,140.381689%20L84.3604623,147.038594%20Z%20M127.004503,123.94359%20L135.578617,146.896647%20C136.483954,149.452886%20137.442529,152.54168%20138.081618,154.831671%20C138.827183,152.488442%20139.625985,149.506124%20140.58462,146.736875%20L148.359872,123.94359%20L155.868876,123.94359%20L145.21784,151.636343%20C139.892293,164.950152%20136.643726,171.820127%20131.744199,175.97403%20C129.27643,178.228071%20126.267791,179.805756%20123.010354,180.553953%20L121.252929,174.589376%20C123.530581,173.840999%20125.645092,172.666304%20127.48382,171.127799%20C130.081872,169.010501%20132.14366,166.310102%20133.501635,163.246013%20C133.792288,162.715372%20133.990404,162.139031%20134.087428,161.541814%20C134.026892,160.899135%20133.865146,160.270094%20133.60817,159.677902%20L119.122716,123.837079%20L126.897968,123.837079%20L127.004503,123.94359%20Z%20M174.813541,112.770851%20L174.813541,123.954441%20L185.038557,123.954441%20L185.038557,129.279989%20L174.813541,129.279989%20L174.813541,150.262575%20C174.813541,155.055568%20176.198196,157.824817%20180.139089,157.824817%20C181.538758,157.847727%20182.935316,157.686579%20184.292992,157.345559%20L184.612537,162.671047%20C182.57671,163.376355%20180.428486,163.701283%20178.275118,163.629682%20C176.849069,163.718929%20175.420569,163.498622%20174.087657,162.983833%20C172.754744,162.469044%20171.549004,161.671976%20170.553103,160.647363%20C168.383883,157.745977%20167.394359,154.130491%20167.783854,150.528882%20L167.783854,129.226751%20L161.712742,129.226751%20L161.712742,123.901204%20L167.890329,123.901204%20L167.890329,114.421764%20L174.813541,112.770851%20Z%20M198.184399,144.647511%20C198.03988,146.453639%20198.289199,148.269577%20198.915189,149.969888%20C199.541179,151.670199%20200.528884,153.214267%20201.810114,154.495437%20C203.091285,155.776667%20204.635352,156.764373%20206.335664,157.390363%20C208.035975,158.016352%20209.851913,158.265672%20211.658041,158.121153%20C215.311153,158.202863%20218.940457,157.513288%20222.309077,156.097409%20L223.533958,161.422956%20C219.400274,163.12572%20214.955358,163.942168%20210.486396,163.819423%20C207.881107,163.997798%20205.268101,163.61054%20202.826592,162.684147%20C200.385023,161.757814%20198.172795,160.3143%20196.341489,158.452721%20C194.51022,156.591082%20193.103284,154.355345%20192.217196,151.898941%20C191.331104,149.442478%20190.986827,146.82349%20191.207978,144.221491%20C191.207978,132.505346%20198.184399,123.238905%20209.581059,123.238905%20C222.362314,123.238905%20225.557643,134.422495%20225.557643,141.558717%20C225.625954,142.658281%20225.625954,143.761016%20225.557643,144.860581%20L198.024687,144.860581%20L198.184399,144.647511%20Z%20M219.06051,139.322023%20C219.266043,137.898188%20219.163995,136.446897%20218.761184,135.065892%20C218.358433,133.684886%20217.664311,132.406228%20216.725656,131.316115%20C215.786941,130.226062%20214.625525,129.349856%20213.31959,128.746561%20C212.013656,128.143278%20210.59353,127.826939%20209.155039,127.818864%20C206.228949,128.030665%20203.487515,129.327603%20201.467959,131.455549%20C199.448402,133.583436%20198.296377,136.388874%20198.237697,139.322023%20L219.06051,139.322023%20Z%20M236.385366,136.053478%20C236.385366,131.473555%20236.385366,127.532637%20236.065834,123.911277%20L242.456492,123.911277%20L242.456492,131.526792%20L242.775977,131.526792%20C243.446769,129.176325%20244.83268,127.093027%20246.741335,125.566097%20C248.64999,124.039161%20250.986699,123.144369%20253.427072,123.005938%20C254.098762,122.917777%20254.779066,122.917777%20255.450756,123.005938%20L255.450756,129.66288%20C254.63688,129.568608%20253.814868,129.568608%20253.000992,129.66288%20C250.58353,129.756495%20248.282771,130.726973%20246.528505,132.393068%20C244.774238,134.059104%20243.686458,136.306745%20243.468304,138.716252%20C243.269171,139.805946%20243.162278,140.910475%20243.148819,142.018055%20L243.148819,162.734394%20L236.11909,162.734394%20L236.11909,136.106715%20L236.385366,136.053478%20Z'%20fill='%234E4E4E'%3e%3c/path%3e%3cpath%20d='M233.257943,16.9621357%20C233.476636,20.5398773%20232.625434,24.1017075%20230.812666,27.1939108%20C228.999898,30.286174%20226.307754,32.7687777%20223.079047,34.3255867%20C219.85034,35.8823358%20216.231324,36.4427655%20212.683013,35.9355136%20C209.134702,35.4282017%20205.817704,33.8761781%20203.154559,31.4770796%20C200.491421,29.0780409%20198.602703,25.9404959%20197.729013,22.4642047%20C196.855323,18.9879135%20197.036209,15.330196%20198.248625,11.9570899%20C199.461041,8.5839838%20201.650109,5.64808944%20204.536953,3.52346926%20C207.423803,1.39884909%20210.877782,0.181657262%20214.458814,0.0269503701%20C216.806708,-0.10224713%20219.156996,0.233972409%20221.374429,1.01627461%20C223.591922,1.79857323%20225.632893,3.01152758%20227.379981,4.58537259%20C229.12701,6.15922358%20230.54576,8.06291398%20231.554522,10.1869719%20C232.563283,12.3110298%20233.142196,14.6135829%20233.257943,16.9621357%20Z'%20fill='%23767677'%3e%3c/path%3e%3cpath%20d='M127.952969,225.540984%20C80.0236372,225.540984%2037.8984531,208.339518%2016.1170646,182.936721%20C24.5683135,205.78944%2039.8176362,225.504615%2059.8124569,239.428562%20C79.8070981,253.352629%20103.588124,260.816651%20127.952969,260.816651%20C152.318411,260.816651%20176.098839,253.352629%20196.094019,239.428562%20C216.0886,225.504615%20231.337863,205.78944%20239.789471,182.936721%20C218.061379,208.339518%20176.095848,225.540984%20127.952969,225.540984%20Z'%20fill='%23F37726'%3e%3c/path%3e%3cpath%20d='M127.952969,60.3543133%20C175.882898,60.3543133%20218.008142,77.5557785%20239.789471,102.958396%20C231.337863,80.1058563%20216.0886,60.3906823%20196.094019,46.4667348%20C176.098839,32.5427873%20152.318411,25.0784666%20127.952969,25.0784666%20C103.588124,25.0784666%2079.8070981,32.5427873%2059.8124569,46.4667348%20C39.8176362,60.3906823%2024.5683135,80.1058563%2016.1170646,102.958396%20C37.8984531,77.502541%2079.8106871,60.3543133%20127.952969,60.3543133%20Z'%20fill='%23F37726'%3e%3c/path%3e%3cpath%20d='M61.9716874,274.975202%20C62.2528294,279.48161%2061.186045,283.969713%2058.9072992,287.867658%20C56.6284936,291.765602%2053.2409116,294.896926%2049.1761363,296.862707%20C45.1113611,298.828488%2040.5533909,299.539717%2036.0829934,298.905772%20C31.6125362,298.271767%2027.4320141,296.321359%2024.0740419,293.30297%20C20.7160636,290.284582%2018.3326671,286.334835%2017.2274978,281.957035%20C16.1223339,277.579176%2016.3454363,272.971497%2017.868382,268.720869%20C19.3913284,264.470301%2022.1451683,260.769335%2025.7790187,258.089483%20C29.4129289,255.40962%2033.7623156,253.872201%2038.2730898,253.673106%20C41.2280121,253.515051%2044.1851476,253.940738%2046.9755719,254.925846%20C49.7659364,255.910962%2052.3349165,257.436187%2054.5356604,259.414404%20C56.7364042,261.392633%2058.5259031,263.785032%2059.8017495,266.455044%20C61.0776558,269.124996%2061.8150255,272.02022%2061.9716874,274.975202%20Z'%20fill='%239E9E9E'%3e%3c/path%3e%3cpath%20d='M21.5641016,54.5650606%20C18.9814831,54.6363631%2016.4354131,53.9424806%2014.2460944,52.570687%20C12.0567996,51.1988336%2010.3219858,49.2102622%209.25983722,46.8551295%20C8.19768984,44.499937%207.85562972,41.8832824%208.276674,39.3342215%20C8.69771827,36.7851606%209.86306631,34.4174662%2011.6261678,32.5289814%20C13.3892752,30.6404727%2015.6714246,29.3154324%2018.1856119,28.7204982%20C20.6997394,28.1255646%2023.3336813,28.2873008%2025.7562282,29.1853653%20C28.1787154,30.0834346%2030.2815979,31.6777312%2031.800363,33.767765%20C33.3191879,35.8578106%2034.1861222,38.3502842%2034.2921188,40.9317063%20C34.3930308,44.4222341%2033.113057,47.8117302%2030.7300493,50.3642007%20C28.3470417,52.916731%2025.0533134,54.4262842%2021.5641016,54.5650606%20Z'%20fill='%23616262'%3e%3c/path%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='4'%20y='3'%20width='12'%20height='8'%20rx='1.25'%20ry='1.25'%20fill='none'%20stroke='currentColor'%20stroke-width='1.25'%20stroke-linejoin='round'/%3e%3cline%20x1='2'%20y1='20'%20x2='18'%20y2='20'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cline%20x1='20'%20y1='2'%20x2='20'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='10'%20y='4'%20width='12'%20height='16'%20rx='1.25'%20ry='1.25'%20fill='none'%20stroke='currentColor'%20stroke-width='1.25'%20stroke-linejoin='round'/%3e%3cline%20x1='2.5'%20y1='2'%20x2='2.5'%20y2='9'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cline%20x1='2.5'%20y1='15'%20x2='2.5'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='8'%20y='4'%20width='8'%20height='8'%20rx='1.25'%20ry='1.25'%20fill='none'%20stroke='currentColor'%20stroke-width='1.25'%20stroke-linejoin='round'/%3e%3cline%20x1='2.5'%20y1='2'%20x2='2.5'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cline%20x1='21.5'%20y1='2'%20x2='21.5'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cline%20x1='6'%20y1='20'%20x2='18'%20y2='20'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3crect%20x='8'%20y='4'%20width='8'%20height='16'%20rx='1.25'%20ry='1.25'%20fill='none'%20stroke='currentColor'%20stroke-width='1.25'%20stroke-linejoin='round'/%3e%3cline%20x1='2.5'%20y1='2'%20x2='2.5'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3cline%20x1='21.5'%20y1='2'%20x2='21.5'%20y2='22'%20stroke='%233b82f6'%20stroke-width='2'%20stroke-linecap='round'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%20width='16'%20height='16'%3e%3cpath%20fill-rule='evenodd'%20d='M8%200C3.58%200%200%203.58%200%208c0%203.54%202.29%206.53%205.47%207.59.4.07.55-.17.55-.38%200-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01%201.08.58%201.23.82.72%201.21%201.87.87%202.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95%200-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12%200%200%20.67-.21%202.2.82.64-.18%201.32-.27%202-.27.68%200%201.36.09%202%20.27%201.53-1.04%202.2-.82%202.2-.82.44%201.1.16%201.92.08%202.12.51.56.82%201.27.82%202.15%200%203.07-1.87%203.75-3.65%203.95.29.25.54.73.54%201.48%200%201.07-.01%201.93-.01%202.2%200%20.21.15.46.55.38A8.013%208.013%200%200016%208c0-4.42-3.58-8-8-8z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='utf-8'?%3e%3c!--%20Uploaded%20to:%20SVG%20Repo,%20www.svgrepo.com,%20Generator:%20SVG%20Repo%20Mixer%20Tools%20--%3e%3csvg%20width='800px'%20height='800px'%20viewBox='0%200%2032%2032'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M13.0164%202C10.8193%202%209.03825%203.72453%209.03825%205.85185V8.51852H15.9235V9.25926H5.97814C3.78107%209.25926%202%2010.9838%202%2013.1111L2%2018.8889C2%2021.0162%203.78107%2022.7407%205.97814%2022.7407H8.27322V19.4815C8.27322%2017.3542%2010.0543%2015.6296%2012.2514%2015.6296H19.5956C21.4547%2015.6296%2022.9617%2014.1704%2022.9617%2012.3704V5.85185C22.9617%203.72453%2021.1807%202%2018.9836%202H13.0164ZM12.0984%206.74074C12.8589%206.74074%2013.4754%206.14378%2013.4754%205.40741C13.4754%204.67103%2012.8589%204.07407%2012.0984%204.07407C11.3378%204.07407%2010.7213%204.67103%2010.7213%205.40741C10.7213%206.14378%2011.3378%206.74074%2012.0984%206.74074Z'%20fill='url(%23paint0_linear_87_8204)'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M18.9834%2030C21.1805%2030%2022.9616%2028.2755%2022.9616%2026.1482V23.4815L16.0763%2023.4815L16.0763%2022.7408L26.0217%2022.7408C28.2188%2022.7408%2029.9998%2021.0162%2029.9998%2018.8889V13.1111C29.9998%2010.9838%2028.2188%209.25928%2026.0217%209.25928L23.7266%209.25928V12.5185C23.7266%2014.6459%2021.9455%2016.3704%2019.7485%2016.3704L12.4042%2016.3704C10.5451%2016.3704%209.03809%2017.8296%209.03809%2019.6296L9.03809%2026.1482C9.03809%2028.2755%2010.8192%2030%2013.0162%2030H18.9834ZM19.9015%2025.2593C19.1409%2025.2593%2018.5244%2025.8562%2018.5244%2026.5926C18.5244%2027.329%2019.1409%2027.9259%2019.9015%2027.9259C20.662%2027.9259%2021.2785%2027.329%2021.2785%2026.5926C21.2785%2025.8562%2020.662%2025.2593%2019.9015%2025.2593Z'%20fill='url(%23paint1_linear_87_8204)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_87_8204'%20x1='12.4809'%20y1='2'%20x2='12.4809'%20y2='22.7407'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23327EBD'/%3e%3cstop%20offset='1'%20stop-color='%231565A7'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_87_8204'%20x1='19.519'%20y1='9.25928'%20x2='19.519'%20y2='30'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23FFDA4B'/%3e%3cstop%20offset='1'%20stop-color='%23F9C600'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20aria-hidden='true'%3e%3cline%20x1='1.5'%20y1='5.5'%20x2='22.5'%20y2='5.5'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3cline%20x1='1.5'%20y1='12'%20x2='22.5'%20y2='12'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3cline%20x1='1.5'%20y1='18.5'%20x2='22.5'%20y2='18.5'%20stroke='var(--wa-color-brand-fill-loud)'%20stroke-opacity='0.45'%20stroke-width='2.5'%20stroke-linecap='round'/%3e%3ccircle%20cx='16.75'%20cy='5.5'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3ccircle%20cx='7.25'%20cy='12'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3ccircle%20cx='14.25'%20cy='18.5'%20r='3.5'%20fill='var(--wa-color-success-fill-loud)'%20fill-opacity='0.85'%20stroke='var(--wa-color-success-fill-loud)'%20stroke-opacity='1'%20stroke-width='1'/%3e%3c/svg%3e\"","// unfortunately, webawesome has no all-in-one import, so we need to import each component individually\nimport '@awesome.me/webawesome/dist/components/animated-image/animated-image.js';\nimport '@awesome.me/webawesome/dist/components/animation/animation.js';\nimport '@awesome.me/webawesome/dist/components/avatar/avatar.js';\nimport '@awesome.me/webawesome/dist/components/badge/badge.js';\nimport '@awesome.me/webawesome/dist/components/breadcrumb/breadcrumb.js';\nimport '@awesome.me/webawesome/dist/components/breadcrumb-item/breadcrumb-item.js';\nimport '@awesome.me/webawesome/dist/components/button/button.js';\nimport '@awesome.me/webawesome/dist/components/button-group/button-group.js';\nimport '@awesome.me/webawesome/dist/components/callout/callout.js';\nimport '@awesome.me/webawesome/dist/components/card/card.js';\nimport '@awesome.me/webawesome/dist/components/carousel/carousel.js';\nimport '@awesome.me/webawesome/dist/components/carousel-item/carousel-item.js';\nimport '@awesome.me/webawesome/dist/components/checkbox/checkbox.js';\nimport '@awesome.me/webawesome/dist/components/color-picker/color-picker.js';\nimport '@awesome.me/webawesome/dist/components/comparison/comparison.js';\nimport '@awesome.me/webawesome/dist/components/copy-button/copy-button.js';\nimport '@awesome.me/webawesome/dist/components/details/details.js';\nimport '@awesome.me/webawesome/dist/components/dialog/dialog.js';\nimport '@awesome.me/webawesome/dist/components/divider/divider.js';\nimport '@awesome.me/webawesome/dist/components/drawer/drawer.js';\nimport '@awesome.me/webawesome/dist/components/dropdown/dropdown.js';\nimport '@awesome.me/webawesome/dist/components/dropdown-item/dropdown-item.js';\nimport '@awesome.me/webawesome/dist/components/format-bytes/format-bytes.js';\nimport '@awesome.me/webawesome/dist/components/format-date/format-date.js';\nimport '@awesome.me/webawesome/dist/components/format-number/format-number.js';\nimport '@awesome.me/webawesome/dist/components/icon/icon.js';\nimport '@awesome.me/webawesome/dist/components/include/include.js';\nimport '@awesome.me/webawesome/dist/components/input/input.js';\nimport '@awesome.me/webawesome/dist/components/intersection-observer/intersection-observer.js';\nimport '@awesome.me/webawesome/dist/components/mutation-observer/mutation-observer.js';\nimport '@awesome.me/webawesome/dist/components/number-input/number-input.js';\nimport '@awesome.me/webawesome/dist/components/option/option.js';\nimport '@awesome.me/webawesome/dist/components/popover/popover.js';\nimport '@awesome.me/webawesome/dist/components/popup/popup.js';\nimport '@awesome.me/webawesome/dist/components/progress-bar/progress-bar.js';\nimport '@awesome.me/webawesome/dist/components/progress-ring/progress-ring.js';\nimport '@awesome.me/webawesome/dist/components/qr-code/qr-code.js';\nimport '@awesome.me/webawesome/dist/components/radio/radio.js';\nimport '@awesome.me/webawesome/dist/components/radio-group/radio-group.js';\nimport '@awesome.me/webawesome/dist/components/rating/rating.js';\nimport '@awesome.me/webawesome/dist/components/relative-time/relative-time.js';\nimport '@awesome.me/webawesome/dist/components/resize-observer/resize-observer.js';\nimport '@awesome.me/webawesome/dist/components/scroller/scroller.js';\nimport '@awesome.me/webawesome/dist/components/select/select.js';\nimport '@awesome.me/webawesome/dist/components/skeleton/skeleton.js';\nimport '@awesome.me/webawesome/dist/components/slider/slider.js';\nimport '@awesome.me/webawesome/dist/components/spinner/spinner.js';\nimport '@awesome.me/webawesome/dist/components/split-panel/split-panel.js';\nimport '@awesome.me/webawesome/dist/components/switch/switch.js';\nimport '@awesome.me/webawesome/dist/components/tab/tab.js';\nimport '@awesome.me/webawesome/dist/components/tab-group/tab-group.js';\nimport '@awesome.me/webawesome/dist/components/tab-panel/tab-panel.js';\nimport '@awesome.me/webawesome/dist/components/tag/tag.js';\nimport '@awesome.me/webawesome/dist/components/textarea/textarea.js';\nimport '@awesome.me/webawesome/dist/components/tooltip/tooltip.js';\nimport '@awesome.me/webawesome/dist/components/tree/tree.js';\nimport '@awesome.me/webawesome/dist/components/tree-item/tree-item.js';\nimport '@awesome.me/webawesome/dist/components/zoomable-frame/zoomable-frame.js';\n\n// Import default WebAwesome styles\nimport '@awesome.me/webawesome/dist/styles/native.css';\nimport '@awesome.me/webawesome/dist/styles/utilities.css';\nimport '@awesome.me/webawesome/dist/styles/themes/default.css';\n\nimport {registerIconLibrary} from '@awesome.me/webawesome'\n\nregisterIconLibrary('docks', {\n resolver: (name: string) => {\n return new URL(`../icons/${name}.svg`, import.meta.url).href;\n },\n mutator: (svg: SVGElement) => {\n svg.setAttribute('fill', 'currentColor');\n svg.setAttribute('stroke', 'currentColor');\n }\n});\n\nexport { registerIconLibrary };"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAA,qBAAe;;;ACAf,IAAA,oBAAe;;;ACAf,IAAA,aAAe;;;ACAf,IAAA,kBAAe;;;ACAf,IAAA,uCAAe;;;ACAf,IAAA,yCAAe;;;ACAf,IAAA,+BAAe;;;ACAf,IAAA,0BAAe;;;ACAf,IAAA,sBAAe;;;ACAf,IAAA,iBAAe;;;ACAf,IAAA,mBAAe;;;ACmEf,oBAAoB,SAAS;CACzB,WAAW,SAAiB;AACxB,SAAO,IAAA,KAAA,uBAAA,OAAA;GAAA,2BAAA;GAAA,0BAAA;GAAA,mBAAA;GAAA,wBAAA;GAAA,6CAAA;GAAA,+CAAA;GAAA,qCAAA;GAAA,gCAAA;GAAA,4BAAA;GAAA,uBAAA;GAAA,yBAAA;GAAA,CAAA,EAAA,YAAA,KAAA,QAAA,OAAA,KAAA,IAAgD,CAAC;;CAE5D,UAAU,QAAoB;AAC1B,MAAI,aAAa,QAAQ,eAAe;AACxC,MAAI,aAAa,UAAU,eAAe;;CAEjD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@eclipse-docks/core",
3
- "version": "0.7.94",
3
+ "version": "0.7.96",
4
4
  "description": "Eclipse Docks platform core: registries, services, parts, widgets, and API",
5
5
  "type": "module",
6
6
  "license": "EPL-2.0",
@@ -121,18 +121,13 @@ registerAll({
121
121
  title: "Extensions",
122
122
  data: {},
123
123
  key: "system.extensions",
124
- icon: "puzzle-piece",
124
+ icon: "docks extensions",
125
125
  state: {},
126
126
  component: (id: string) => html`<docks-extensions id="${id}"></docks-extensions>`,
127
127
  }
128
128
  editorRegistry.loadEditor(editorInput, "extensions-editor").then()
129
129
  }
130
130
  },
131
- contribution: {
132
- target: TOOLBAR_MAIN_RIGHT,
133
- icon: "puzzle-piece",
134
- label: "Open Extensions",
135
- }
136
131
  })
137
132
 
138
133
  registerAll({
@@ -3,6 +3,7 @@ import { contributionRegistry, type HTMLContribution } from "../core/contributio
3
3
  import {
4
4
  PANEL_BOTTOM,
5
5
  SIDEBAR_MAIN,
6
+ SIDEBAR_MAIN_TOOLBAR,
6
7
  TOOLBAR_BOTTOM_END,
7
8
  TOOLBAR_MAIN_RIGHT
8
9
  } from "../core/constants";
@@ -18,7 +19,7 @@ import {
18
19
  contributionRegistry.registerContribution(SIDEBAR_MAIN, {
19
20
  name: VIEW_FILEBROWSER,
20
21
  label: "Workspace",
21
- icon: "folder-open",
22
+ icon: "folder",
22
23
  component: (id: string) => html`<docks-filebrowser id="${id}"></docks-filebrowser>`
23
24
  });
24
25
 
@@ -55,3 +56,8 @@ contributionRegistry.registerContribution(TOOLBAR_MAIN_RIGHT, {
55
56
  component: () => html`<docks-layout-switcher></docks-layout-switcher>`
56
57
  } as HTMLContribution);
57
58
 
59
+ contributionRegistry.registerContribution(SIDEBAR_MAIN_TOOLBAR, {
60
+ command: "open_extensions",
61
+ icon: "docks extensions",
62
+ label: "Extensions",
63
+ });
@@ -6,6 +6,9 @@ export const TOOLBAR_BOTTOM = "app-toolbars-bottom"
6
6
  export const TOOLBAR_BOTTOM_CENTER = "app-toolbars-bottom-center"
7
7
  export const TOOLBAR_BOTTOM_END = "app-toolbars-bottom-end"
8
8
 
9
+ /** Commands/HTML at the end of the main sidebar activity rail (wa-tab-group nav slot). */
10
+ export const SIDEBAR_MAIN_TOOLBAR = "sidebar-main-toolbar"
11
+
9
12
  export const SYSTEM_VIEWS = "system-views"
10
13
  export const SYSTEM_LAYOUTS = "system.layouts"
11
14
 
@@ -198,8 +198,8 @@ class ExtensionRegistry {
198
198
  logger.info(`Registered extension from URL: ${id}`);
199
199
  }
200
200
 
201
- this.enable(id, false);
202
-
201
+ await this.enableAsync(id, false);
202
+
203
203
  logger.info(`Successfully enabled extension from URL: ${finalUrl}`);
204
204
  return id;
205
205
  } catch (error) {
@@ -248,22 +248,33 @@ class ExtensionRegistry {
248
248
  return
249
249
  }
250
250
  logger.debug(`Loading extension: ${extensionId}`)
251
- this.load(extensionId).then(() => {
252
- this.updateEnablement(extensionId, true, informUser)
253
- }).catch(_e => {
254
- logger.error(`Could not load extension: ${extensionId}: ${_e}`)
255
- })
251
+ this.load(extensionId)
252
+ .then(() => this.updateEnablementAsync(extensionId, true, informUser))
253
+ .catch(_e => {
254
+ logger.error(`Could not load extension: ${extensionId}: ${_e}`)
255
+ })
256
256
  }
257
257
 
258
258
  /** Like enable() but returns a Promise that resolves when the extension is loaded. Use when the caller must wait for commands/contributions to be registered (e.g. before rendering the app). */
259
259
  public async enableAsync(extensionId: string, informUser: boolean = false): Promise<void> {
260
260
  if (this.isEnabled(extensionId)) {
261
- return
261
+ if (!this.isLoaded(extensionId)) {
262
+ logger.debug(
263
+ `Extension ${extensionId} is enabled in settings but not loaded; loading now`,
264
+ );
265
+ try {
266
+ await this.load(extensionId);
267
+ } catch (e) {
268
+ logger.error(`Could not load extension: ${extensionId}: ${e}`);
269
+ throw e;
270
+ }
271
+ }
272
+ return;
262
273
  }
263
274
  logger.debug(`Loading extension: ${extensionId}`)
264
275
  try {
265
276
  await this.load(extensionId)
266
- this.updateEnablement(extensionId, true, informUser)
277
+ await this.updateEnablementAsync(extensionId, true, informUser)
267
278
  } catch (e) {
268
279
  logger.error(`Could not load extension: ${extensionId}: ${e}`)
269
280
  throw e
@@ -341,17 +352,17 @@ class ExtensionRegistry {
341
352
  }
342
353
  })
343
354
 
344
- // Mark as loaded BEFORE executing the module
345
- this.loadedExtensions.add(extensionId)
346
-
347
355
  if (module?.default instanceof Function) {
348
356
  try {
349
- module.default(uiContext.getProxy())
357
+ const activationResult = module.default(uiContext.getProxy())
358
+ await Promise.resolve(activationResult)
350
359
  } catch (error) {
351
360
  logger.error(`Error executing extension function for ${extensionId}: ${error}`)
352
361
  throw error
353
362
  }
354
363
  }
364
+
365
+ this.loadedExtensions.add(extensionId)
355
366
 
356
367
  } catch (error) {
357
368
  // If loading failed, remove from loaded set
@@ -371,28 +382,8 @@ class ExtensionRegistry {
371
382
  if (!this.isEnabled(extensionId)) {
372
383
  return
373
384
  }
374
- this.updateEnablement(extensionId, false, informUser)
375
- }
376
-
377
- private updateEnablement(extensionId: string, enabled: boolean, informUser: boolean) {
378
- this.checkExtensionsConfig().then(() => {
379
- const extension = this.extensionsSettings?.find(e => e.id == extensionId)
380
- if (extension) {
381
- extension.enabled = enabled
382
- } else {
383
- this.extensionsSettings?.push({id: extensionId, enabled: enabled})
384
- }
385
- appSettings.set(KEY_EXTENSIONS_CONFIG, this.extensionsSettings).then(() => {
386
- if (informUser) {
387
- const extObj = this.extensions[extensionId]
388
- if (enabled) {
389
- toastInfo(extObj.name + " enabled.")
390
- } else {
391
- toastInfo(extObj.name + " disabled " + " - Please restart to take effect")
392
- }
393
- }
394
- publish(TOPIC_EXTENSIONS_CHANGED, this.extensionsSettings)
395
- })
385
+ void this.updateEnablementAsync(extensionId, false, informUser).catch((e) => {
386
+ logger.error(`Could not persist disable for extension ${extensionId}: ${e}`)
396
387
  })
397
388
  }
398
389
 
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
2
+ <rect x="9.5" y="0.5" width="8" height="8" rx="1"
3
+ fill="var(--wa-color-brand-fill-loud)" fill-opacity="0.28"
4
+ stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.9"
5
+ stroke-width="1" stroke-linejoin="round"/>
6
+ <rect x="0.5" y="9.5" width="8" height="8" rx="1"
7
+ fill="var(--wa-color-brand-fill-loud)" fill-opacity="0.28"
8
+ stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.9"
9
+ stroke-width="1" stroke-linejoin="round"/>
10
+ <rect x="9.5" y="9.5" width="8" height="8" rx="1"
11
+ fill="var(--wa-color-brand-fill-loud)" fill-opacity="0.28"
12
+ stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.9"
13
+ stroke-width="1" stroke-linejoin="round"/>
14
+ <rect x="0.5" y="0.5" width="8" height="8" rx="1"
15
+ fill="var(--wa-color-success-fill-loud)" fill-opacity="0.55"
16
+ stroke="var(--wa-color-success-fill-loud)" stroke-opacity="1" stroke-width="1"/>
17
+ </svg>
@@ -1,3 +1,6 @@
1
+ # Provenance — bundled icons in this folder (licence, author, source).
2
+ # Used for compliance review and attribution; resolver: registerIconLibrary('docks') in externals/webawesome.ts
3
+
1
4
  - python.svg: Licence=MIT, Author=Garuda Technology, Source=https://www.svgrepo.com/svg/452091/python
2
5
  - js.svg: Licence=MIT, Author=Garuda Technology, Source=https://www.svgrepo.com/svg/452045/js
3
6
  - jupyter.svg: Licence=Logo License, Author=gilbarbara, Source=https://www.svgrepo.com/svg/353949/jupyter
@@ -7,3 +10,5 @@
7
10
  - layout-standard-full.svg: Licence=Project-internal, Author=Eclipse Docks Team
8
11
  - mark-github.svg: Licence=MIT, Author=GitHub, Source=https://github.com/primer/octicons (icons/mark-github-16.svg)
9
12
  - file-plus.svg: Licence=Project-internal, Author=Eclipse Docks Team
13
+ - settings.svg: Licence=Project-internal, Author=Eclipse Docks Team, Note=Settings; duotone brand tracks + success knobs (sliders motif)
14
+ - extensions.svg: Licence=Project-internal, Author=Eclipse Docks Team, Note=Extensions; 2×2 tile grid like docks favicon (packages/app/public/favicon.svg); one success tile, three brand tiles
@@ -0,0 +1,8 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true">
2
+ <line x1="1.5" y1="5.5" x2="22.5" y2="5.5" stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.45" stroke-width="2.5" stroke-linecap="round"/>
3
+ <line x1="1.5" y1="12" x2="22.5" y2="12" stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.45" stroke-width="2.5" stroke-linecap="round"/>
4
+ <line x1="1.5" y1="18.5" x2="22.5" y2="18.5" stroke="var(--wa-color-brand-fill-loud)" stroke-opacity="0.45" stroke-width="2.5" stroke-linecap="round"/>
5
+ <circle cx="16.75" cy="5.5" r="3.5" fill="var(--wa-color-success-fill-loud)" fill-opacity="0.85" stroke="var(--wa-color-success-fill-loud)" stroke-opacity="1" stroke-width="1"/>
6
+ <circle cx="7.25" cy="12" r="3.5" fill="var(--wa-color-success-fill-loud)" fill-opacity="0.85" stroke="var(--wa-color-success-fill-loud)" stroke-opacity="1" stroke-width="1"/>
7
+ <circle cx="14.25" cy="18.5" r="3.5" fill="var(--wa-color-success-fill-loud)" fill-opacity="0.85" stroke="var(--wa-color-success-fill-loud)" stroke-opacity="1" stroke-width="1"/>
8
+ </svg>
@@ -139,11 +139,11 @@ export class DocksStandardLayout extends DocksContainer {
139
139
  id="left-sidebar-split"
140
140
  orientation="vertical"
141
141
  sizes="50%, 50%">
142
- <docks-tabs id="${SIDEBAR_MAIN}"></docks-tabs>
143
- <docks-tabs id="${SIDEBAR_MAIN_BOTTOM}"></docks-tabs>
142
+ <docks-tabs id="${SIDEBAR_MAIN}" placement="start" icon-only with-toolbar></docks-tabs>
143
+ <docks-tabs id="${SIDEBAR_MAIN_BOTTOM}" placement="start" icon-only></docks-tabs>
144
144
  </docks-resizable-grid>
145
145
  `
146
- : html`<docks-tabs id="${SIDEBAR_MAIN}"></docks-tabs>`
146
+ : html`<docks-tabs id="${SIDEBAR_MAIN}" placement="start" icon-only with-toolbar></docks-tabs>`
147
147
  }
148
148
  `
149
149
  : nothing
package/src/parts/tabs.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import {customElement, property, state} from "lit/decorators.js";
2
2
  import {css, html, nothing} from "lit";
3
3
  import {DocksContainer} from "./container";
4
+ import {appLoaderService} from "../core/apploader";
4
5
  import {contributionRegistry, ContributionChangeEvent, TabContribution, TOPIC_CONTRIBUTEIONS_CHANGED} from "../core/contributionregistry";
5
6
  import {when} from "lit/directives/when.js";
6
7
  import {repeat} from "lit/directives/repeat.js";
@@ -12,8 +13,6 @@ import {MouseButton, EDITOR_AREA_MAIN} from "../core/constants";
12
13
  import {activePartSignal, activeEditorSignal, partDirtySignal} from "../core/appstate";
13
14
  import {watchSignal} from "../core/signals";
14
15
  import {confirmDialog} from "../dialogs";
15
- import {appLoaderService} from "../core/apploader";
16
-
17
16
  /**
18
17
  * DocksTabs - A dynamic tab container component
19
18
  *
@@ -32,6 +31,16 @@ export class DocksTabs extends DocksContainer {
32
31
  @property({reflect: true})
33
32
  placement: "top" | "bottom" | "start" | "end" = "top";
34
33
 
34
+ /** When true, tab contributions show icons only (labels remain on title + wa-icon for a11y). */
35
+ @property({type: Boolean, reflect: true, attribute: 'icon-only'})
36
+ iconOnly: boolean = false;
37
+
38
+ /**
39
+ * When true, render a `docks-toolbar` in the tab group `nav` slot after tabs (extensions contribute via id `${containerId}-toolbar`).
40
+ */
41
+ @property({type: Boolean, reflect: true, attribute: 'with-toolbar'})
42
+ withToolbar: boolean = false;
43
+
35
44
  /** Tab contributions for this container */
36
45
  @state()
37
46
  private contributions: TabContribution[] = [];
@@ -60,11 +69,14 @@ export class DocksTabs extends DocksContainer {
60
69
  this.updateComplete.then(() => this.ensureTabGroupListenersAndActivate());
61
70
 
62
71
  subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {
63
- if (!this.containerId || event.target !== this.containerId) return;
64
-
72
+ if (!this.containerId) return;
73
+ const navToolbarId = `${this.containerId}-toolbar`;
74
+ if (event.target === navToolbarId) return;
75
+ if (event.target !== this.containerId) return;
76
+
65
77
  this.loadAndResolveContributions();
66
78
  this.requestUpdate();
67
-
79
+
68
80
  this.updateComplete.then(() => {
69
81
  this.activateNextAvailableTab();
70
82
  });
@@ -326,6 +338,11 @@ export class DocksTabs extends DocksContainer {
326
338
  return label.slice(0, startLen) + ellipsis + label.slice(-(take - startLen));
327
339
  }
328
340
 
341
+ /** Aligns `docks-toolbar` with `placement`: side rails → vertical, top/bottom tab strip → horizontal. */
342
+ private withToolbarOrientation(): "horizontal" | "vertical" {
343
+ return this.placement === "start" || this.placement === "end" ? "vertical" : "horizontal";
344
+ }
345
+
329
346
  private renderEmptyState() {
330
347
  const currentApp = appLoaderService.getCurrentApp();
331
348
  return html`
@@ -351,6 +368,7 @@ export class DocksTabs extends DocksContainer {
351
368
  if (this.contributions.length === 0) {
352
369
  return this.renderEmptyState();
353
370
  }
371
+ const navToolbarId = this.containerId ? `${this.containerId}-toolbar` : '';
354
372
  return html`
355
373
  <wa-tab-group ${ref(this.tabGroup)} placement=${this.placement}>
356
374
  ${repeat(
@@ -364,7 +382,7 @@ export class DocksTabs extends DocksContainer {
364
382
  title="${fullLabel}"
365
383
  @auxclick="${(e: MouseEvent) => this.handleTabAuxClick(e, c)}">
366
384
  ${icon(c.icon, { label: fullLabel })}
367
- ${shortLabel}
385
+ ${this.iconOnly ? nothing : shortLabel}
368
386
  ${when(c.closable, () => html`
369
387
  <wa-icon name="xmark" label="Close" @click="${(e: Event) => this.closeTab(e, c.name)}"></wa-icon>
370
388
  `)}
@@ -375,6 +393,18 @@ export class DocksTabs extends DocksContainer {
375
393
  `;
376
394
  }
377
395
  )}
396
+ ${this.withToolbar && navToolbarId
397
+ ? html`
398
+ <div class="nav-toolbar-spacer" slot="nav" aria-hidden="true"></div>
399
+ <docks-toolbar
400
+ slot="nav"
401
+ id=${navToolbarId}
402
+ orientation=${this.withToolbarOrientation()}
403
+ align="center"
404
+ size="large"
405
+ ></docks-toolbar>
406
+ `
407
+ : nothing}
378
408
  </wa-tab-group>
379
409
  `;
380
410
  }
@@ -388,15 +418,22 @@ export class DocksTabs extends DocksContainer {
388
418
  wa-tab-group {
389
419
  height: 100%;
390
420
  width: 100%;
421
+ min-height: 0;
391
422
  }
392
423
 
393
- wa-tab-group::part(base) {
424
+ :host(:is([placement="top"], [placement="bottom"])) wa-tab-group::part(base) {
394
425
  display: grid;
395
426
  grid-template-rows: auto minmax(0, 1fr);
396
427
  height: 100%;
397
428
  width: 100%;
398
429
  }
399
430
 
431
+ :host(:is([placement="start"], [placement="end"])) wa-tab-group::part(base) {
432
+ height: 100%;
433
+ width: 100%;
434
+ min-height: 0;
435
+ }
436
+
400
437
  wa-tab-panel[active] {
401
438
  display: grid;
402
439
  grid-template-rows: minmax(0, 1fr);
@@ -416,6 +453,56 @@ export class DocksTabs extends DocksContainer {
416
453
  padding: 3px 0.5rem;
417
454
  }
418
455
 
456
+ :host([icon-only]) wa-tab::part(base) {
457
+ justify-content: center;
458
+ }
459
+
460
+ :host([icon-only]:is([placement="top"], [placement="bottom"])) wa-tab::part(base) {
461
+ padding: var(--wa-space-s);
462
+ }
463
+
464
+ :host([icon-only]:is([placement="start"], [placement="end"])) wa-tab::part(base) {
465
+ padding-inline: 0;
466
+ padding-block: var(--wa-space-s);
467
+ }
468
+
469
+ :host([icon-only]) wa-tab wa-icon {
470
+ font-size: var(--wa-font-size-l);
471
+ }
472
+
473
+ :host([icon-only]:is([placement="start"], [placement="end"])) wa-tab-group::part(nav),
474
+ :host([icon-only]:is([placement="start"], [placement="end"])) wa-tab-group::part(tabs) {
475
+ padding: 0;
476
+ margin: 0;
477
+ }
478
+
479
+ :host([icon-only]:is([placement="start"], [placement="end"])) wa-tab-group::part(nav) {
480
+ flex: 0 0 auto;
481
+ }
482
+
483
+ :host([with-toolbar]) .nav-toolbar-spacer {
484
+ flex: 1 1 auto;
485
+ min-height: 0;
486
+ min-width: 0;
487
+ pointer-events: none;
488
+ }
489
+
490
+ :host([with-toolbar]:is([placement="start"], [placement="end"])) wa-tab-group::part(nav) {
491
+ display: grid;
492
+ grid-template-rows: 1fr;
493
+ height: 100%;
494
+ min-height: 0;
495
+ }
496
+
497
+ :host([with-toolbar]:is([placement="start"], [placement="end"])) wa-tab-group::part(tabs) {
498
+ display: flex;
499
+ flex-direction: column;
500
+ min-height: 0;
501
+ height: 100%;
502
+ flex: 1 1 auto;
503
+ align-self: stretch;
504
+ }
505
+
419
506
  wa-tab-panel {
420
507
  --padding: 0px;
421
508
  }
@@ -431,7 +518,6 @@ export class DocksTabs extends DocksContainer {
431
518
  justify-content: center;
432
519
  width: 100%;
433
520
  height: 100%;
434
- grid-row: 2;
435
521
  }
436
522
 
437
523
  .empty-content {
@@ -135,7 +135,7 @@ export class DocksToolbar extends DocksElement {
135
135
 
136
136
  protected doBeforeUI() {
137
137
  this.refreshContributions();
138
-
138
+
139
139
  subscribe(TOPIC_CONTRIBUTEIONS_CHANGED, (event: ContributionChangeEvent) => {
140
140
  const id = this.getAttribute("id");
141
141
  if (!id) return;