diff --git a/.github/workflows/ci-upload-help.yml b/.github/workflows/ci-upload-help.yml
new file mode 100644
index 0000000000..a3c24f973a
--- /dev/null
+++ b/.github/workflows/ci-upload-help.yml
@@ -0,0 +1,77 @@
+name: "Build and upload helps"
+
+on:
+ create:
+ push:
+ branches:
+ - 'release/*'
+ - 'hotfix/*'
+ paths:
+ - '**/resources/help/**'
+
+
+jobs:
+ build-help:
+ name: "Build Apps and upload"
+ runs-on: ubuntu-latest
+ if: startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/hotfix')
+ steps:
+
+ - name: Checkout Web-Apps
+ uses: actions/checkout@v3
+ with:
+ repository: onlyoffice/web-apps
+ ref: ${{github.ref}}
+ path: 'web-apps'
+
+ - name: Checkout SDKJS
+ uses: actions/checkout@v3
+ with:
+ repository: onlyoffice/sdkjs
+ ref: ${{github.ref}}
+ path: 'sdkjs'
+
+ - name: Use Node.js 16
+ uses: actions/setup-node@v3
+ with:
+ node-version: 16
+
+ - name: Configure AWS Credentials
+ uses: aws-actions/configure-aws-credentials@v2
+ with:
+ aws-access-key-id: ${{secrets.AWS_ACCESS_KEY_ID}}
+ aws-secret-access-key: ${{secrets.AWS_SECRET_ACCESS_KEY}}
+ aws-region: us-east-1
+
+ - name: Export tag and directory path
+ id: tag-dir
+ run: |
+ BRANCH_NAME=${GITHUB_REF#refs/heads/}
+ export TAG=${BRANCH_NAME#*/}
+ echo "PATH=/install/desktop/editors/help/$TAG/apps" >> $GITHUB_OUTPUT
+
+ - name: Build
+ run: |
+ cd web-apps/build
+ ./sprites.sh
+ npm install
+ grunt
+
+ - name: Upload
+ env:
+ PATH: ${{steps.tag-dir.outputs.PATH}}
+ run: |
+ aws s3 sync ./web-apps/deploy/web-apps/apps/ \
+ ${{secrets.AWS_BUCKET_URL}}${PATH} \
+ --acl public-read \
+ --metadata-directive REPLACE
+
+
+ - name: Invalidate AWS CLOUDFRONT cache
+ env:
+ PATH: ${{steps.tag-dir.outputs.PATH}}
+ run: |
+ aws cloudfront create-invalidation \
+ --distribution-id ${{ secrets.AWS_DISTRIBUTION_ID }} \
+ --paths \
+ "${PATH}/*"
diff --git a/apps/common/main/lib/component/Button.js b/apps/common/main/lib/component/Button.js
index 99965931b6..3c012e8b4d 100644
--- a/apps/common/main/lib/component/Button.js
+++ b/apps/common/main/lib/component/Button.js
@@ -340,6 +340,9 @@ define([
me.style = me.options.style;
me.rendered = false;
+ // if ( /(? li.selected');
@@ -355,6 +360,34 @@ define([
this._search = {};
},
+ alignMenuPosition: function () {
+ if (this.restoreMenuHeight) {
+ var $list = $(this.el).find('ul');
+ if (typeof this.restoreMenuHeight !== "number") {
+ if ($list.hasClass('scrollable-menu')) {
+ var maxHeight = parseFloat($list.css('max-height'));
+ this.restoreMenuHeight = maxHeight ? maxHeight : 100000;
+ } else {
+ this.restoreMenuHeight = 100000;
+ }
+ }
+ var cg = Common.Utils.croppedGeometry(),
+ docH = cg.height - 10,
+ menuH = $list.outerHeight(),
+ menuTop = $list.get(0).getBoundingClientRect().top,
+ newH = menuH;
+
+ if (menuH < this.restoreMenuHeight)
+ newH = this.restoreMenuHeight;
+
+ if (menuTop + newH > docH)
+ newH = docH - menuTop;
+
+ if (newH !== menuH)
+ $list.css('max-height', newH + 'px');
+ }
+ },
+
onBeforeHideMenu: function(e) {
this.trigger('hide:before', this, e);
diff --git a/apps/common/main/lib/component/ComboBoxFonts.js b/apps/common/main/lib/component/ComboBoxFonts.js
index 8ab9686fe1..c8126eae77 100644
--- a/apps/common/main/lib/component/ComboBoxFonts.js
+++ b/apps/common/main/lib/component/ComboBoxFonts.js
@@ -58,7 +58,13 @@ define([
{ratio: 1.25, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.25x.png', width: iconWidth * 1.25, height: iconHeight * 1.25},
{ratio: 1.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.5x.png', width: iconWidth * 1.5, height: iconHeight * 1.5},
{ratio: 1.75, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@1.75x.png', width: iconWidth * 1.75, height: iconHeight * 1.75},
- {ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@2x.png', width: iconWidth * 2, height: iconHeight * 2}
+ {ratio: 2, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@2x.png', width: iconWidth * 2, height: iconHeight * 2},
+ /*{ratio: 2.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@2.5x.png', width: iconWidth * 2.5, height: iconHeight * 2.5},
+ {ratio: 3, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@3x.png', width: iconWidth * 3, height: iconHeight * 3},
+ {ratio: 3.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@3.5x.png', width: iconWidth * 3.5, height: iconHeight * 3.5},
+ {ratio: 4, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@4x.png', width: iconWidth * 4, height: iconHeight * 4},
+ {ratio: 4.5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@4.5x.png', width: iconWidth * 4.5, height: iconHeight * 4.5},
+ {ratio: 5, path: '../../../../sdkjs/common/Images/fonts_thumbnail' + postfix + '@5x.png', width: iconWidth * 5, height: iconHeight * 5},*/
],
thumbIdx = 0,
listItemHeight = 28,
@@ -71,6 +77,12 @@ define([
thumbs[2].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.5x');
thumbs[3].path = Common.Controllers.Desktop.call('getFontsSprite', '@1.75x');
thumbs[4].path = Common.Controllers.Desktop.call('getFontsSprite', '@2x');
+ /*thumbs[5].path = Common.Controllers.Desktop.call('getFontsSprite', '@2.5x');
+ thumbs[6].path = Common.Controllers.Desktop.call('getFontsSprite', '@3x');
+ thumbs[7].path = Common.Controllers.Desktop.call('getFontsSprite', '@3.5x');
+ thumbs[8].path = Common.Controllers.Desktop.call('getFontsSprite', '@4x');
+ thumbs[9].path = Common.Controllers.Desktop.call('getFontsSprite', '@4.5x');
+ thumbs[10].path = Common.Controllers.Desktop.call('getFontsSprite', '@5x');*/
}
var bestDistance = Math.abs(applicationPixelRatio-thumbs[0].ratio);
@@ -648,6 +660,7 @@ define([
},
onAfterShowMenu: function(e) {
+ this.alignMenuPosition();
if (this.recent > 0) {
if (this.scroller && !this._scrollerIsInited) {
this.scroller.update();
diff --git a/apps/common/main/lib/component/Mixtbar.js b/apps/common/main/lib/component/Mixtbar.js
index c726977006..cccd90a940 100644
--- a/apps/common/main/lib/component/Mixtbar.js
+++ b/apps/common/main/lib/component/Mixtbar.js
@@ -49,17 +49,32 @@ define([
Common.UI.Mixtbar = Common.UI.BaseView.extend((function () {
var $boxTabs;
var $scrollL;
+ var $scrollR;
var optsFold = {timeout: 2000};
var config = {};
var btnsMore = [];
+ function setScrollButtonsDisabeled(){
+ var scrollLeft = $boxTabs.scrollLeft();
+ $scrollL.toggleClass('disabled', scrollLeft==0);
+ $scrollR.toggleClass('disabled', Math.round(scrollLeft) == $boxTabs[0].scrollWidth - $boxTabs[0].clientWidth);
+ }
+
var onScrollTabs = function(opts, e) {
+ if($(e.target).hasClass('disabled')) return;
var sv = $boxTabs.scrollLeft();
if (sv || opts == 'right' || Common.UI.isRTL() && opts == 'left') {
- $boxTabs.animate({scrollLeft: opts == 'left' ? sv - 100 : sv + 100}, 200);
+ $boxTabs.animate({scrollLeft: opts == 'left' ? sv - 100 : sv + 100}, 200, setScrollButtonsDisabeled);
}
};
+ var onWheelTabs = function(e) {
+ e.preventDefault();
+ var deltaX = e.deltaX || e.detail || e.deltaY;
+ $boxTabs.scrollLeft($boxTabs.scrollLeft() + (deltaX * 60));
+ setScrollButtonsDisabeled();
+ };
+
function onTabDblclick(e) {
var tab = $(e.currentTarget).find('> a[data-tab]').data('tab');
if ( this.dblclick_el == tab ) {
@@ -149,7 +164,7 @@ define([
me.$panels = me.$boxpanels.find('> .panel');
optsFold.$bar = me.$('.toolbar');
- var $scrollR = me.$('.tabs .scroll.right');
+ $scrollR = me.$('.tabs .scroll.right');
$scrollL = me.$('.tabs .scroll.left');
$scrollL.on('click', onScrollTabs.bind(this, 'left'));
@@ -157,6 +172,7 @@ define([
$boxTabs.on('dblclick', '> .ribtab', onTabDblclick.bind(this));
$boxTabs.on('click', '> .ribtab', me.onTabClick.bind(this));
+ $boxTabs.on('mousewheel', onWheelTabs);
},
isTabActive: function(tag) {
@@ -249,8 +265,10 @@ define([
onResizeTabs: function(e) {
if ( this.hasTabInvisible() ) {
- if ( !$boxTabs.parent().hasClass('short') )
+ if ( !$boxTabs.parent().hasClass('short') ) {
$boxTabs.parent().addClass('short');
+ setScrollButtonsDisabeled();
+ }
} else
if ( $boxTabs.parent().hasClass('short') ) {
$boxTabs.parent().removeClass('short');
diff --git a/apps/common/main/lib/component/TreeView.js b/apps/common/main/lib/component/TreeView.js
index dc86e82c40..145dea7735 100644
--- a/apps/common/main/lib/component/TreeView.js
+++ b/apps/common/main/lib/component/TreeView.js
@@ -169,7 +169,7 @@ define([
initialize : function(options) {
options.store = options.store || new Common.UI.TreeViewStore();
options.emptyItemText = options.emptyItemText || '';
- options.itemTemplate = options.itemTemplate || !Common.UI.isRTL() ? _.template([
+ options.itemTemplate = options.itemTemplate || (!Common.UI.isRTL() ? _.template([
'
',
'<% if (hasSubItems) { %>',
'
',
@@ -195,7 +195,7 @@ define([
'
<%= Common.Utils.String.htmlEncode(name) %>
',
'<% } %>',
'
'
- ].join(''));
+ ].join('')));
Common.UI.DataView.prototype.initialize.call(this, options);
},
@@ -240,7 +240,7 @@ define([
onClickItem: function(view, record, e) {
var btn = $(e.target);
- if (btn && btn.hasClass('tree-caret')) {
+ if (btn && (btn.hasClass('tree-caret') || btn.hasClass('btn-tree-caret'))) {
var tip = view.$el.data('bs.tooltip');
if (tip) (tip.tip()).remove();
diff --git a/apps/common/main/lib/component/Window.js b/apps/common/main/lib/component/Window.js
index 4e9b3a2380..09c361e167 100644
--- a/apps/common/main/lib/component/Window.js
+++ b/apps/common/main/lib/component/Window.js
@@ -475,7 +475,7 @@ define([
var template = '' +
'<% if (typeof iconCls !== "undefined") { %>
<% } %>' +
- '
style="padding-left:10px;" <% } %>>
<%= msg %>' +
+ '
padding-left-10<% } %>' + '">
<%= msg %>' +
'<% if (dontshow) { %>
<% } %>' +
'
' +
'
' +
@@ -497,22 +497,27 @@ define([
var header = window.getChild('.header');
var body = window.getChild('.body');
var icon = window.getChild('.icon'),
- icon_height = (icon.length>0) ? icon.height() : 0;
+ icon_height = (icon.length>0) ? icon.height() : 0,
+ icon_width = (icon.length>0) ? $(icon).outerWidth(true) : 0;
var check = window.getChild('.info-box .dont-show-checkbox');
if (!options.dontshow) body.css('padding-bottom', '10px');
if (options.maxwidth && options.width=='auto') {
- if ((text.position().left + text.width() + parseInt(text_cnt.css('padding-right'))) > options.maxwidth)
+ var width = !Common.UI.isRTL() ? (text.position().left + text.width() + parseInt(text_cnt.css('padding-right'))) :
+ (parseInt(text_cnt.css('padding-right')) + icon_width + text.width() + parseInt(text_cnt.css('padding-left')));
+ if (width > options.maxwidth)
options.width = options.maxwidth;
}
if (options.width=='auto') {
text_cnt.height(Math.max(text.height(), icon_height) + ((check.length>0) ? (check.height() + parseInt(check.css('margin-top'))) : 0));
body.height(parseInt(text_cnt.css('height')) + parseInt(footer.css('height')));
var span_el = check.find('span');
- window.setSize(Math.max(text.width(), span_el.length>0 ? span_el.position().left + span_el.width() : 0) + text.position().left + parseInt(text_cnt.css('padding-right')) +
- (Common.UI.isRTL() && icon.length > 0 ? icon.width() + parseInt(icon.css('margin-right')) + parseInt(icon.css('margin-left')) : 0),
- parseInt(body.css('height')) + parseInt(header.css('height')));
+ var width = !Common.UI.isRTL() ?
+ (Math.max(text.width(), span_el.length>0 ? span_el.position().left + span_el.width() : 0) + text.position().left + parseInt(text_cnt.css('padding-right'))) :
+ (parseInt(text_cnt.css('padding-right')) + icon_width + parseInt(text_cnt.css('padding-left')) +
+ (Math.max(text.width(), check.length>0 ? $(check).find('.checkbox-indeterminate').outerWidth(true) : 0)));
+ window.setSize(width, parseInt(body.css('height')) + parseInt(header.css('height')));
} else {
text.css('white-space', 'normal');
window.setWidth(options.width);
diff --git a/apps/common/main/lib/controller/Desktop.js b/apps/common/main/lib/controller/Desktop.js
index 115739c799..9079d0e2c8 100644
--- a/apps/common/main/lib/controller/Desktop.js
+++ b/apps/common/main/lib/controller/Desktop.js
@@ -376,7 +376,7 @@ define([
cls: 'btn-header',
iconCls: 'toolbar__icon icon--inverse btn-home',
visible: false,
- hint: 'Show Main window',
+ hint: Common.Locale.get('hintBtnHome', {name:"Common.Controllers.Desktop", default: 'Show Main window'}),
dataHint:'0',
dataHintDirection: 'right',
dataHintOffset: '10, -18',
diff --git a/apps/common/main/lib/util/define.js b/apps/common/main/lib/util/define.js
index fb698d1581..a131004802 100644
--- a/apps/common/main/lib/util/define.js
+++ b/apps/common/main/lib/util/define.js
@@ -1074,5 +1074,4 @@ define(function(){ 'use strict';
},
}
})(), Common.define.smartArt || {});
-
});
\ No newline at end of file
diff --git a/apps/common/main/lib/view/AutoCorrectDialog.js b/apps/common/main/lib/view/AutoCorrectDialog.js
index a6c287918a..26c327c1ca 100644
--- a/apps/common/main/lib/view/AutoCorrectDialog.js
+++ b/apps/common/main/lib/view/AutoCorrectDialog.js
@@ -151,7 +151,7 @@ define([ 'text!common/main/lib/template/AutoCorrectDialog.template',
template: _.template(['
'].join('')),
itemTemplate: _.template([
'
',
- '
<%= replaced %>
',
+ '
<%= replaced %>
',
'
<%= by %>
',
'
'
].join('')),
diff --git a/apps/common/main/lib/view/History.js b/apps/common/main/lib/view/History.js
index 16040af9c2..aa0172b25f 100644
--- a/apps/common/main/lib/view/History.js
+++ b/apps/common/main/lib/view/History.js
@@ -82,7 +82,7 @@ define([
enableKeyEvents: false,
itemTemplate: _.template([
'
' + 'padding-left: 40px;' + '<% } %>' + '<% if (canRestore && selected) { %>' + 'padding-bottom: 6px;' + '<% } %>' +'">',
+ 'style="display: block; ' + '<% if (!isRevision) { %>' + (Common.UI.isRTL() ? 'padding-right: 40px;' : 'padding-left: 40px;') + '<% } %>' + '<% if (canRestore && selected) { %>' + 'padding-bottom: 6px;' + '<% } %>' +'">',
'
<%= created %>
',
'<% if (markedAsVersion) { %>',
'
' + this.textVer + '<%=version%>
',
diff --git a/apps/common/main/lib/view/ListSettingsDialog.js b/apps/common/main/lib/view/ListSettingsDialog.js
index 9d1ad05214..31e852a4ee 100644
--- a/apps/common/main/lib/view/ListSettingsDialog.js
+++ b/apps/common/main/lib/view/ListSettingsDialog.js
@@ -84,29 +84,29 @@ define([
'
',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
'',
' | ',
' | ',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
' | ',
' | ',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
' | ',
'',
@@ -114,19 +114,19 @@ define([
' | ',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
' | ',
' | ',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
' | ',
' | ',
diff --git a/apps/common/main/lib/view/OpenDialog.js b/apps/common/main/lib/view/OpenDialog.js
index 9a8832e5b1..c717d1b2ca 100644
--- a/apps/common/main/lib/view/OpenDialog.js
+++ b/apps/common/main/lib/view/OpenDialog.js
@@ -99,7 +99,7 @@ define([
'<% if (warning) { %>',
'',
'
',
- '
' + (typeof _options.warningMsg=='string' ? _options.warningMsg : t.txtProtected) + '
',
+ '
' + (typeof _options.warningMsg=='string' ? _options.warningMsg : t.txtProtected) + '
',
'',
'
',
'
',
@@ -345,7 +345,7 @@ define([
'<% _.each(items, function(item) { %>',
'
',
'<%= item.displayValue %>
',
- '',
+ '',
'',
'<% }); %>'
].join(''));
diff --git a/apps/common/main/lib/view/ReviewChanges.js b/apps/common/main/lib/view/ReviewChanges.js
index 9aab98af7c..664eb1212a 100644
--- a/apps/common/main/lib/view/ReviewChanges.js
+++ b/apps/common/main/lib/view/ReviewChanges.js
@@ -90,10 +90,10 @@ define([
'
' +
'' +
'
' +
- '
' +
+ '
' +
'' +
'
' +
- '
' +
+ '
' +
'
' +
'
' +
'
' +
diff --git a/apps/common/main/lib/view/SignDialog.js b/apps/common/main/lib/view/SignDialog.js
index 7ea37f36f2..7289e3d13b 100644
--- a/apps/common/main/lib/view/SignDialog.js
+++ b/apps/common/main/lib/view/SignDialog.js
@@ -104,7 +104,7 @@ define([
'
',
'',
' | ' +
- ' | ',
+ ' | ',
'
',
' |
',
'
',
diff --git a/apps/common/main/lib/view/SymbolTableDialog.js b/apps/common/main/lib/view/SymbolTableDialog.js
index 43d154fef3..cc68c3fcfa 100644
--- a/apps/common/main/lib/view/SymbolTableDialog.js
+++ b/apps/common/main/lib/view/SymbolTableDialog.js
@@ -416,11 +416,11 @@ define([
'
',
'
',
'',
- '| ',
+ ' | ',
'',
'',
' | ',
- '',
+ ' | ',
'',
'',
' | ',
@@ -449,17 +449,17 @@ define([
'
',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
' | ',
'
',
'',
- '| ',
+ ' | ',
'',
' | ',
- '',
+ ' | ',
'',
' | ',
'
',
@@ -754,8 +754,8 @@ define([
cls: 'dbl-clickable',
itemTemplate: _.template([
'',
- '
<%= symbol %>
',
- '
<%= description %>
',
+ '
<%= symbol %>
',
+ '
<%= description %>
',
'<% if (' + this.showShortcutKey + ') { %>',
'
<%= shortcutKey %>
',
'<% } %>',
diff --git a/apps/common/main/resources/help/en/images/autocorrect.png b/apps/common/main/resources/help/en/images/autocorrect.png
index 9d9827fee3..6197e8f7c6 100644
Binary files a/apps/common/main/resources/help/en/images/autocorrect.png and b/apps/common/main/resources/help/en/images/autocorrect.png differ
diff --git a/apps/common/main/resources/help/en/images/chartdata.png b/apps/common/main/resources/help/en/images/chartdata.png
index 367d507a13..d424fbb187 100644
Binary files a/apps/common/main/resources/help/en/images/chartdata.png and b/apps/common/main/resources/help/en/images/chartdata.png differ
diff --git a/apps/common/main/resources/help/en/images/charteditor.png b/apps/common/main/resources/help/en/images/charteditor.png
index cfc10c4d05..f1ba34caa1 100644
Binary files a/apps/common/main/resources/help/en/images/charteditor.png and b/apps/common/main/resources/help/en/images/charteditor.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_alternativetext.png b/apps/common/main/resources/help/en/images/chartsettings_alternativetext.png
index 364932b3c0..b6bddb1b21 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_alternativetext.png and b/apps/common/main/resources/help/en/images/chartsettings_alternativetext.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_cellsnapping.png b/apps/common/main/resources/help/en/images/chartsettings_cellsnapping.png
index 19488eb154..88c1dc1adf 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_cellsnapping.png and b/apps/common/main/resources/help/en/images/chartsettings_cellsnapping.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_horizontalaxis.png b/apps/common/main/resources/help/en/images/chartsettings_horizontalaxis.png
index 5b83d10522..d62a7f27c5 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_horizontalaxis.png and b/apps/common/main/resources/help/en/images/chartsettings_horizontalaxis.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_layout.png b/apps/common/main/resources/help/en/images/chartsettings_layout.png
index b0ae064073..2352bc444f 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_layout.png and b/apps/common/main/resources/help/en/images/chartsettings_layout.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis1.png b/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis1.png
index ad3341afd1..0ac7a857cc 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis1.png and b/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis1.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis2.png b/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis2.png
index ab17e63c6d..f7a8fa0344 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis2.png and b/apps/common/main/resources/help/en/images/chartsettings_secondaryaxis2.png differ
diff --git a/apps/common/main/resources/help/en/images/chartsettings_verticalaxis.png b/apps/common/main/resources/help/en/images/chartsettings_verticalaxis.png
index c6b403df35..e01d172bb1 100644
Binary files a/apps/common/main/resources/help/en/images/chartsettings_verticalaxis.png and b/apps/common/main/resources/help/en/images/chartsettings_verticalaxis.png differ
diff --git a/apps/common/main/resources/help/en/images/charttype.png b/apps/common/main/resources/help/en/images/charttype.png
index 7d3118128d..e9e9e9464f 100644
Binary files a/apps/common/main/resources/help/en/images/charttype.png and b/apps/common/main/resources/help/en/images/charttype.png differ
diff --git a/apps/common/main/resources/help/en/images/charttype_combo.png b/apps/common/main/resources/help/en/images/charttype_combo.png
index 7711422829..7aab85f35c 100644
Binary files a/apps/common/main/resources/help/en/images/charttype_combo.png and b/apps/common/main/resources/help/en/images/charttype_combo.png differ
diff --git a/apps/common/main/resources/help/en/images/chatgpt_left.png b/apps/common/main/resources/help/en/images/chatgpt_left.png
new file mode 100644
index 0000000000..747f9e3f6a
Binary files /dev/null and b/apps/common/main/resources/help/en/images/chatgpt_left.png differ
diff --git a/apps/common/main/resources/help/en/images/draw_tools.png b/apps/common/main/resources/help/en/images/draw_tools.png
new file mode 100644
index 0000000000..19239a60d7
Binary files /dev/null and b/apps/common/main/resources/help/en/images/draw_tools.png differ
diff --git a/apps/common/main/resources/help/en/images/editseries.png b/apps/common/main/resources/help/en/images/editseries.png
index 3bbb308b2f..c8d8138052 100644
Binary files a/apps/common/main/resources/help/en/images/editseries.png and b/apps/common/main/resources/help/en/images/editseries.png differ
diff --git a/apps/common/main/resources/help/en/images/find_small.png b/apps/common/main/resources/help/en/images/find_small.png
index 28ee507de4..7fa3c267bb 100644
Binary files a/apps/common/main/resources/help/en/images/find_small.png and b/apps/common/main/resources/help/en/images/find_small.png differ
diff --git a/apps/common/main/resources/help/en/images/pentool.png b/apps/common/main/resources/help/en/images/pentool.png
new file mode 100644
index 0000000000..09b4af932e
Binary files /dev/null and b/apps/common/main/resources/help/en/images/pentool.png differ
diff --git a/apps/common/main/resources/help/en/images/selectdata.png b/apps/common/main/resources/help/en/images/selectdata.png
index d3f2465e76..67c8be4df4 100644
Binary files a/apps/common/main/resources/help/en/images/selectdata.png and b/apps/common/main/resources/help/en/images/selectdata.png differ
diff --git a/apps/common/main/resources/help/en/images/zoom_left.png b/apps/common/main/resources/help/en/images/zoom_left.png
new file mode 100644
index 0000000000..8fcda246c1
Binary files /dev/null and b/apps/common/main/resources/help/en/images/zoom_left.png differ
diff --git a/apps/common/main/resources/help/ru/images/autocorrect.png b/apps/common/main/resources/help/ru/images/autocorrect.png
index d84bb22dee..931c8dad79 100644
Binary files a/apps/common/main/resources/help/ru/images/autocorrect.png and b/apps/common/main/resources/help/ru/images/autocorrect.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_alternativetext.png b/apps/common/main/resources/help/ru/images/chartsettings_alternativetext.png
index 05e50b7aed..afca0d9ff8 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_alternativetext.png and b/apps/common/main/resources/help/ru/images/chartsettings_alternativetext.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_cellsnapping.png b/apps/common/main/resources/help/ru/images/chartsettings_cellsnapping.png
index 4cb837c3ba..6b1bca0547 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_cellsnapping.png and b/apps/common/main/resources/help/ru/images/chartsettings_cellsnapping.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_horizontalaxis.png b/apps/common/main/resources/help/ru/images/chartsettings_horizontalaxis.png
index 6c484b651a..ae78960673 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_horizontalaxis.png and b/apps/common/main/resources/help/ru/images/chartsettings_horizontalaxis.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_layout.png b/apps/common/main/resources/help/ru/images/chartsettings_layout.png
index 5d4fe3c283..222b92d555 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_layout.png and b/apps/common/main/resources/help/ru/images/chartsettings_layout.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_secondaryaxis1.png b/apps/common/main/resources/help/ru/images/chartsettings_secondaryaxis1.png
index 6b8a723898..3ba10070a1 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_secondaryaxis1.png and b/apps/common/main/resources/help/ru/images/chartsettings_secondaryaxis1.png differ
diff --git a/apps/common/main/resources/help/ru/images/chartsettings_verticalaxis.png b/apps/common/main/resources/help/ru/images/chartsettings_verticalaxis.png
index bcd8660771..588e40e9a3 100644
Binary files a/apps/common/main/resources/help/ru/images/chartsettings_verticalaxis.png and b/apps/common/main/resources/help/ru/images/chartsettings_verticalaxis.png differ
diff --git a/apps/common/main/resources/help/ru/images/charttype.png b/apps/common/main/resources/help/ru/images/charttype.png
index 96f4c67366..2ba117016c 100644
Binary files a/apps/common/main/resources/help/ru/images/charttype.png and b/apps/common/main/resources/help/ru/images/charttype.png differ
diff --git a/apps/common/main/resources/help/ru/images/draw_tools.png b/apps/common/main/resources/help/ru/images/draw_tools.png
new file mode 100644
index 0000000000..e6c054eb90
Binary files /dev/null and b/apps/common/main/resources/help/ru/images/draw_tools.png differ
diff --git a/apps/common/main/resources/help/ru/images/palette_custom.png b/apps/common/main/resources/help/ru/images/palette_custom.png
index e13ee0df18..1510ea7a99 100644
Binary files a/apps/common/main/resources/help/ru/images/palette_custom.png and b/apps/common/main/resources/help/ru/images/palette_custom.png differ
diff --git a/apps/common/main/resources/help/ru/images/pentool.png b/apps/common/main/resources/help/ru/images/pentool.png
new file mode 100644
index 0000000000..0cf37f43d3
Binary files /dev/null and b/apps/common/main/resources/help/ru/images/pentool.png differ
diff --git a/apps/common/main/resources/help/ru/images/right_chart_3d.png b/apps/common/main/resources/help/ru/images/right_chart_3d.png
index abba31ce73..1657eac363 100644
Binary files a/apps/common/main/resources/help/ru/images/right_chart_3d.png and b/apps/common/main/resources/help/ru/images/right_chart_3d.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-clearstyle.png b/apps/common/main/resources/img/toolbar/1.25x/btn-clearstyle.png
index e24c12c6b2..4be79f8c59 100644
Binary files a/apps/common/main/resources/img/toolbar/1.25x/btn-clearstyle.png and b/apps/common/main/resources/img/toolbar/1.25x/btn-clearstyle.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-close.png b/apps/common/main/resources/img/toolbar/1.25x/btn-close.png
index d300830594..61143b315e 100644
Binary files a/apps/common/main/resources/img/toolbar/1.25x/btn-close.png and b/apps/common/main/resources/img/toolbar/1.25x/btn-close.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-equation.png b/apps/common/main/resources/img/toolbar/1.25x/btn-equation.png
index 2cc55d8c1a..9f3f23f6c6 100644
Binary files a/apps/common/main/resources/img/toolbar/1.25x/btn-equation.png and b/apps/common/main/resources/img/toolbar/1.25x/btn-equation.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-highlight.png b/apps/common/main/resources/img/toolbar/1.25x/btn-highlight.png
index 3bf4f0c6a9..4d44a8eebc 100644
Binary files a/apps/common/main/resources/img/toolbar/1.25x/btn-highlight.png and b/apps/common/main/resources/img/toolbar/1.25x/btn-highlight.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-paracolor.png b/apps/common/main/resources/img/toolbar/1.25x/btn-paracolor.png
index d177e34335..152abec941 100644
Binary files a/apps/common/main/resources/img/toolbar/1.25x/btn-paracolor.png and b/apps/common/main/resources/img/toolbar/1.25x/btn-paracolor.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.25x/btn-tree-caret.png b/apps/common/main/resources/img/toolbar/1.25x/btn-tree-caret.png
new file mode 100644
index 0000000000..d709c30fc4
Binary files /dev/null and b/apps/common/main/resources/img/toolbar/1.25x/btn-tree-caret.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.5x/btn-clearstyle.png b/apps/common/main/resources/img/toolbar/1.5x/btn-clearstyle.png
index c35da4054c..96873d2fd6 100644
Binary files a/apps/common/main/resources/img/toolbar/1.5x/btn-clearstyle.png and b/apps/common/main/resources/img/toolbar/1.5x/btn-clearstyle.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.5x/btn-close.png b/apps/common/main/resources/img/toolbar/1.5x/btn-close.png
index a1878128a1..249980aab7 100644
Binary files a/apps/common/main/resources/img/toolbar/1.5x/btn-close.png and b/apps/common/main/resources/img/toolbar/1.5x/btn-close.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.5x/btn-highlight.png b/apps/common/main/resources/img/toolbar/1.5x/btn-highlight.png
index a7b346eaaf..6cfb5de60d 100644
Binary files a/apps/common/main/resources/img/toolbar/1.5x/btn-highlight.png and b/apps/common/main/resources/img/toolbar/1.5x/btn-highlight.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.5x/btn-paracolor.png b/apps/common/main/resources/img/toolbar/1.5x/btn-paracolor.png
index c41c5dafd2..9e34fc73f0 100644
Binary files a/apps/common/main/resources/img/toolbar/1.5x/btn-paracolor.png and b/apps/common/main/resources/img/toolbar/1.5x/btn-paracolor.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.5x/btn-tree-caret.png b/apps/common/main/resources/img/toolbar/1.5x/btn-tree-caret.png
new file mode 100644
index 0000000000..dbe0c41399
Binary files /dev/null and b/apps/common/main/resources/img/toolbar/1.5x/btn-tree-caret.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.75x/btn-clearstyle.png b/apps/common/main/resources/img/toolbar/1.75x/btn-clearstyle.png
index da1c8ed94f..9683a42268 100644
Binary files a/apps/common/main/resources/img/toolbar/1.75x/btn-clearstyle.png and b/apps/common/main/resources/img/toolbar/1.75x/btn-clearstyle.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.75x/btn-close.png b/apps/common/main/resources/img/toolbar/1.75x/btn-close.png
index 64744780e1..26dcad718c 100644
Binary files a/apps/common/main/resources/img/toolbar/1.75x/btn-close.png and b/apps/common/main/resources/img/toolbar/1.75x/btn-close.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.75x/btn-highlight.png b/apps/common/main/resources/img/toolbar/1.75x/btn-highlight.png
index 4205e35314..b0dbdce3f1 100644
Binary files a/apps/common/main/resources/img/toolbar/1.75x/btn-highlight.png and b/apps/common/main/resources/img/toolbar/1.75x/btn-highlight.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.75x/btn-paracolor.png b/apps/common/main/resources/img/toolbar/1.75x/btn-paracolor.png
index 9542b916c2..eac4f44e67 100644
Binary files a/apps/common/main/resources/img/toolbar/1.75x/btn-paracolor.png and b/apps/common/main/resources/img/toolbar/1.75x/btn-paracolor.png differ
diff --git a/apps/common/main/resources/img/toolbar/1.75x/btn-tree-caret.png b/apps/common/main/resources/img/toolbar/1.75x/btn-tree-caret.png
new file mode 100644
index 0000000000..6906ecd48f
Binary files /dev/null and b/apps/common/main/resources/img/toolbar/1.75x/btn-tree-caret.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-clearstyle.png b/apps/common/main/resources/img/toolbar/1x/btn-clearstyle.png
index ebd441f600..766cb9c1f1 100644
Binary files a/apps/common/main/resources/img/toolbar/1x/btn-clearstyle.png and b/apps/common/main/resources/img/toolbar/1x/btn-clearstyle.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-close.png b/apps/common/main/resources/img/toolbar/1x/btn-close.png
index 0edd5986c7..191b8c05d0 100644
Binary files a/apps/common/main/resources/img/toolbar/1x/btn-close.png and b/apps/common/main/resources/img/toolbar/1x/btn-close.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-equation.png b/apps/common/main/resources/img/toolbar/1x/btn-equation.png
index 3f8344f82f..8fbb5e1940 100644
Binary files a/apps/common/main/resources/img/toolbar/1x/btn-equation.png and b/apps/common/main/resources/img/toolbar/1x/btn-equation.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-highlight.png b/apps/common/main/resources/img/toolbar/1x/btn-highlight.png
index aac8a7958f..9492c8f40f 100644
Binary files a/apps/common/main/resources/img/toolbar/1x/btn-highlight.png and b/apps/common/main/resources/img/toolbar/1x/btn-highlight.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-paracolor.png b/apps/common/main/resources/img/toolbar/1x/btn-paracolor.png
index cefb4a079f..63c1504e78 100644
Binary files a/apps/common/main/resources/img/toolbar/1x/btn-paracolor.png and b/apps/common/main/resources/img/toolbar/1x/btn-paracolor.png differ
diff --git a/apps/common/main/resources/img/toolbar/1x/btn-tree-caret.png b/apps/common/main/resources/img/toolbar/1x/btn-tree-caret.png
new file mode 100644
index 0000000000..44f427be9a
Binary files /dev/null and b/apps/common/main/resources/img/toolbar/1x/btn-tree-caret.png differ
diff --git a/apps/common/main/resources/img/toolbar/2.5x/btn-clearstyle.svg b/apps/common/main/resources/img/toolbar/2.5x/btn-clearstyle.svg
index 5c232a4478..e4409006d7 100644
--- a/apps/common/main/resources/img/toolbar/2.5x/btn-clearstyle.svg
+++ b/apps/common/main/resources/img/toolbar/2.5x/btn-clearstyle.svg
@@ -1,3 +1,3 @@
-