From d6a3131297d6d99ff1582c86c1d61bc2646ab9b8 Mon Sep 17 00:00:00 2001 From: F7 Office Deploy Date: Mon, 16 Feb 2026 16:53:12 +0000 Subject: [PATCH] =?UTF-8?q?F7=20Office:=20=D0=BA=D0=B0=D1=81=D1=82=D0=BE?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20=D0=B1=D1=80=D0=B5?= =?UTF-8?q?=D0=BD=D0=B4=D0=B8=D0=BD=D0=B3=D0=B0,=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=84=D0=B8=D0=B3=D0=B8=20coolwsd=20=D0=B8=20Apache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Cursor --- .gitignore | 2 + DEPLOY.md | 144 + README-GIT.md | 117 + .../sites-available/collabora-le-ssl.conf | 91 + etc/coolwsd/coolwsd.xml | 342 +++ install-f7office.sh | 63 + .../coolwsd/browser/dist/branding-mobile.css | 343 +++ .../coolwsd/browser/dist/branding-tablet.css | 342 +++ usr/share/coolwsd/browser/dist/branding.css | 1628 ++++++++++++ usr/share/coolwsd/browser/dist/branding.js | 52 + usr/share/coolwsd/browser/dist/cool.html | 238 ++ .../browser/dist/f7cloud/branding-desktop.css | 6 + .../browser/dist/f7cloud/branding-mobile.css | 1310 ++++++++++ .../browser/dist/f7cloud/branding-tablet.css | 1303 ++++++++++ .../coolwsd/browser/dist/f7cloud/branding.css | 2305 +++++++++++++++++ .../coolwsd/browser/dist/f7cloud/branding.js | 127 + .../f7cloud/images/checkbox-off-disabled.svg | 3 + .../dist/f7cloud/images/checkbox-off.svg | 3 + .../f7cloud/images/checkbox-on-disabled.svg | 3 + .../dist/f7cloud/images/checkbox-on.svg | 9 + .../f7cloud/images/close-widget-hover.svg | 37 + .../dist/f7cloud/images/close-widget.svg | 1 + .../f7cloud/images/closedoc-dark_branding.svg | 1 + .../browser/dist/f7cloud/images/closedoc.svg | 3 + .../dist/f7cloud/images/edit_branding.svg | 3 + .../dist/f7cloud/images/es/lc_bold.svg | 5 + .../dist/f7cloud/images/es/lc_italic.svg | 5 + .../dist/f7cloud/images/es/lc_strikeout.svg | 3 + .../dist/f7cloud/images/es/lc_underline.svg | 6 + .../dist/f7cloud/images/es/sc_bold.svg | 5 + .../dist/f7cloud/images/es/sc_italic.svg | 5 + .../dist/f7cloud/images/es/sc_underline.svg | 8 + .../dist/f7cloud/images/fit-cell_branding.svg | 3 + .../indentation_marker_down_branding.svg | 1 + .../images/indentation_marker_up_branding.svg | 1 + .../dist/f7cloud/images/ios_handle_end.svg | 47 + .../dist/f7cloud/images/ios_handle_start.svg | 67 + .../f7cloud/images/lc_alignblock_branding.svg | 3 + .../lc_alignhorizontalcenter_branding.svg | 3 + .../f7cloud/images/lc_alignleft_branding.svg | 3 + .../f7cloud/images/lc_alignright_branding.svg | 3 + .../f7cloud/images/lc_autosum_branding.svg | 38 + .../images/lc_backgroundcolor_branding.svg | 6 + .../dist/f7cloud/images/lc_bold_es.svg | 5 + .../f7cloud/images/lc_cancel_branding.svg | 1 + .../images/lc_closedocmobile_branding.svg | 39 + .../dist/f7cloud/images/lc_color_branding.svg | 5 + .../images/lc_decrementindent_branding.svg | 86 + .../images/lc_decrementlevel_branding.svg | 86 + .../images/lc_defaultbullet_branding.svg | 102 + .../images/lc_defaultnumbering_branding.svg | 98 + .../lc_defaultnumbering_hover_branding.svg | 98 + .../f7cloud/images/lc_deletepage_branding.svg | 3 + .../f7cloud/images/lc_downpage_branding.svg | 1 + .../f7cloud/images/lc_drawchart_branding.svg | 9 + .../images/lc_duplicatepage_branding.svg | 3 + .../f7cloud/images/lc_ellipse_branding.svg | 31 + .../images/lc_firstrecord_branding.svg | 1 + .../dist/f7cloud/images/lc_fontcolor.svg | 5 + .../images/lc_formatpaintbrush_branding.svg | 3 + .../images/lc_formattedfield_branding.svg | 5 + .../f7cloud/images/lc_fullscreen_branding.svg | 3 + .../images/lc_functiondialog_branding.svg | 1 + .../images/lc_incrementindent_branding.svg | 109 + .../images/lc_inserthyperlink_branding.svg | 3 + .../f7cloud/images/lc_insertpage_branding.svg | 38 + .../images/lc_inserttable_branding.svg | 10 + .../images/lc_inserttable_clarodrive.svg | 3 + .../dist/f7cloud/images/lc_italic_es.svg | 5 + .../lc_menu_downloadas_pdf_branding.svg | 40 + .../lc_menu_formattingmarks_branding.svg | 38 + .../images/lc_menu_fullscreen_branding.svg | 49 + .../images/lc_menu_zoomreset_branding.svg | 73 + .../f7cloud/images/lc_nextrecord_branding.svg | 1 + .../lc_numberformatcurrency_branding.svg | 1 + .../lc_numberformatdecdecimals_branding.svg | 1 + .../lc_numberformatdecimal_branding.svg | 46 + .../lc_numberformatincdecimals_branding.svg | 1 + .../lc_numberformatpercent_branding.svg | 37 + .../f7cloud/images/lc_prevrecord_branding.svg | 1 + .../dist/f7cloud/images/lc_print_branding.svg | 3 + .../images/lc_resetattributes_branding.svg | 52 + .../dist/f7cloud/images/lc_save_branding.svg | 5 + .../dist/f7cloud/images/lc_saved_branding.svg | 1 + .../images/lc_savemodified_branding.svg | 50 + .../f7cloud/images/lc_saving_branding.svg | 1 + .../f7cloud/images/lc_searchnext_branding.svg | 2 + .../f7cloud/images/lc_searchprev_branding.svg | 2 + .../images/lc_setborderstyle_branding.svg | 1 + .../images/lc_showannotations_branding.svg | 3 + .../f7cloud/images/lc_sidebar-animation.svg | 1 + .../f7cloud/images/lc_sidebar-transition.svg | 1 + .../dist/f7cloud/images/lc_sidebar_calc.svg | 1 + .../dist/f7cloud/images/lc_sidebar_draw.svg | 1 + .../f7cloud/images/lc_sidebar_impress.svg | 1 + .../f7cloud/images/lc_sidebar_masterslide.svg | 43 + .../images/lc_sidebar_navigator_calc.svg | 1 + .../images/lc_sidebar_navigator_draw.svg | 1 + .../images/lc_sidebar_navigator_impress.svg | 1 + .../images/lc_sidebar_navigator_writer.svg | 1 + .../dist/f7cloud/images/lc_sidebar_writer.svg | 1 + .../f7cloud/images/lc_slidechangewindow.svg | 1 + .../dist/f7cloud/images/lc_strikeout_es.svg | 3 + .../lc_stylepreviews-scrolldown_branding.svg | 2 + .../lc_stylepreviews-scrollup_branding.svg | 2 + .../dist/f7cloud/images/lc_text_branding.svg | 3 + .../images/lc_togglemergecells_branding.svg | 63 + .../dist/f7cloud/images/lc_underline_es.svg | 6 + .../f7cloud/images/lc_uppage_branding.svg | 1 + .../f7cloud/images/lc_wraptext_branding.svg | 3 + .../f7cloud/images/menu-share-divider.svg | 39 + .../dist/f7cloud/images/menu-share.svg | 1 + .../dist/f7cloud/images/minus_branding.svg | 2 + .../dist/f7cloud/images/open-local-editor.svg | 4 + .../dist/f7cloud/images/plus_branding.svg | 13 + .../f7cloud/images/plus_white_branding.svg | 1 + .../dist/f7cloud/images/radio-off-dark.svg | 3 + .../images/radio-off-disabled-dark.svg | 3 + .../f7cloud/images/radio-off-disabled.svg | 3 + .../browser/dist/f7cloud/images/radio-off.svg | 3 + .../dist/f7cloud/images/radio-on-dark.svg | 3 + .../f7cloud/images/radio-on-disabled-dark.svg | 3 + .../dist/f7cloud/images/radio-on-disabled.svg | 3 + .../browser/dist/f7cloud/images/radio-on.svg | 3 + .../dist/f7cloud/images/rotation-handler.svg | 80 + .../f7cloud/images/scroll-double-dark.svg | 33 + .../f7cloud/images/scroll-double-white.svg | 35 + ...debar-animation-large-checked_branding.svg | 50 + .../sidebar-animation-large_branding.svg | 3 + .../sidebar-property-large_branding.svg | 3 + ...idebar-template-large-checked_branding.svg | 16 + .../sidebar-template-large_branding.svg | 3 + ...ebar-transition-large-checked_branding.svg | 15 + .../sidebar-transition-large_branding.svg | 3 + ...le-column-resize-marker-hover_branding.svg | 41 + .../table-column-resize-marker_branding.svg | 65 + ...table-row-resize-marker-hover_branding.svg | 65 + .../table-row-resize-marker_branding.svg | 65 + .../f7cloud/images/text-path_branding.svg | 3 + .../dist/f7cloud/images/toolbar-bg-font.svg | 97 + .../f7cloud/images/toolbar-bg-logo-dark.svg | 43 + .../images/toolbar-bg-logo-notebookbar.svg | 2 + .../dist/f7cloud/images/toolbar-bg-logo.svg | 1 + .../images/toolbar-bg-path-minified.svg | 37 + .../dist/f7cloud/images/toolbar-bg-path.svg | 147 ++ .../images/toolbar-bg-unsupported-font.svg | 102 + .../toolbar-bg-unsupported-path-minified.svg | 50 + .../images/toolbar-bg-unsupported-path.svg | 232 ++ .../dist/f7cloud/images/user-default.png | Bin 0 -> 1182 bytes .../dist/f7cloud/images/user-default.svg | 9 + .../dist/f7cloud/images/x-office-document.svg | 5 + .../dist/f7cloud/images/x-office-drawing.svg | 4 + .../f7cloud/images/x-office-presentation.svg | 4 + .../f7cloud/images/x-office-spreadsheet.svg | 4 + .../f7cloud/images/zoomreset_branding.svg | 46 + .../browser/dist/f7cloud/loading-preview.html | 124 + .../dist/src/layer/tile/CanvasTileUtils.js | 210 ++ .../browser/dist/src/layer/tile/TileWorker.js | 118 + usr/share/coolwsd/browser/dist/wasm.html | 50 + .../coolwsd/browser/dist/welcome/welcome.html | 63 + 160 files changed, 11898 insertions(+) create mode 100644 .gitignore create mode 100644 DEPLOY.md create mode 100644 README-GIT.md create mode 100644 etc/apache2/sites-available/collabora-le-ssl.conf create mode 100644 etc/coolwsd/coolwsd.xml create mode 100644 install-f7office.sh create mode 100644 usr/share/coolwsd/browser/dist/branding-mobile.css create mode 100644 usr/share/coolwsd/browser/dist/branding-tablet.css create mode 100644 usr/share/coolwsd/browser/dist/branding.css create mode 100644 usr/share/coolwsd/browser/dist/branding.js create mode 100644 usr/share/coolwsd/browser/dist/cool.html create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/branding.css create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/branding.js create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off-disabled.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on-disabled.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/close-widget-hover.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/close-widget.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/closedoc-dark_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/closedoc.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/edit_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_bold.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_italic.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_strikeout.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_underline.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_bold.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_italic.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_underline.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/fit-cell_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_down_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_up_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_end.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_start.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignblock_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignhorizontalcenter_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignleft_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignright_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_autosum_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_backgroundcolor_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_bold_es.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_cancel_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_closedocmobile_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_color_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementindent_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementlevel_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultbullet_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_hover_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_deletepage_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_downpage_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_drawchart_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_duplicatepage_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_ellipse_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_firstrecord_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_fontcolor.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_formatpaintbrush_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_formattedfield_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_fullscreen_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_functiondialog_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_incrementindent_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserthyperlink_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_insertpage_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_clarodrive.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_italic_es.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_downloadas_pdf_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_formattingmarks_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_fullscreen_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_zoomreset_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_nextrecord_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatcurrency_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecdecimals_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecimal_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatincdecimals_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatpercent_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_prevrecord_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_print_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_resetattributes_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_save_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_saved_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_savemodified_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_saving_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchnext_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchprev_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_setborderstyle_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_showannotations_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-animation.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-transition.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_calc.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_draw.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_impress.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_masterslide.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_calc.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_draw.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_impress.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_writer.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_writer.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_slidechangewindow.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_strikeout_es.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrolldown_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrollup_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_text_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_togglemergecells_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_underline_es.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_uppage_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/lc_wraptext_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/menu-share-divider.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/menu-share.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/minus_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/open-local-editor.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/plus_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/plus_white_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-off.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/radio-on.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/rotation-handler.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-white.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large-checked_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-property-large_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large-checked_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large-checked_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker-hover_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker-hover_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/text-path_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-font.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-dark.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-notebookbar.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path-minified.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-font.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path-minified.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/user-default.png create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/user-default.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/x-office-document.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/x-office-drawing.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/x-office-presentation.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/x-office-spreadsheet.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/images/zoomreset_branding.svg create mode 100644 usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html create mode 100644 usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js create mode 100644 usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js create mode 100644 usr/share/coolwsd/browser/dist/wasm.html create mode 100644 usr/share/coolwsd/browser/dist/welcome/welcome.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cfb6da4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.pem +*.log diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..88edbb1 --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,144 @@ +# Развёртывание F7 Office (на базе Collabora Online / coolwsd) + +Инструкция для переноса на Git и установки на новую машину через `git clone`. + +--- + +## 1. Пути к файлам (из службы coolwsd и конфигов) + +### Служба coolwsd +- **Конфиг:** `/etc/coolwsd/coolwsd.xml` +- **SSL (не класть в Git):** `/etc/coolwsd/cert.pem`, `key.pem`, `ca-chain.cert.pem` +- **Доп. конфиг:** `/etc/coolwsd/coolkitconfig.xcu` +- **Корень файлов (из coolwsd.xml):** `file_server_root_path` = `browser/../` → каталог с `browser` = **`/usr/share/coolwsd`** +- **Клиент (статика):** `/usr/share/coolwsd/browser/` — отдаётся по URL `/browser/` + +### Apache (reverse proxy) +- **VHost (SSL):** `/etc/apache2/sites-available/collabora-le-ssl.conf` +- **Общий фрагмент:** `/etc/apache2/conf-available/coolwsd.conf` +- **Nginx (если используется):** `/etc/nginx/snippets/coolwsd.conf` + +### APT (репозиторий Collabora) +- **Файл репозитория:** `/etc/apt/sources.list.d/` — файл с `collaboraonline.com` / `CODE-ubuntu2204` +- **Хук после установки:** `/etc/apt/apt.conf.d/25coolwsd` + +### Изменённые файлы F7 Office (брендинг, текст, ссылки) + +| Путь на сервере | Описание | +|-----------------|----------| +| `/usr/share/coolwsd/browser/dist/f7cloud/branding.js` | F7 Office, URL f7cloud.com | +| `/usr/share/coolwsd/browser/dist/f7cloud/branding.css` | FORBION, стили | +| `/usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html` | Страница просмотра экрана загрузки | +| `/usr/share/coolwsd/browser/dist/branding.js` | FORBION, без ссылки col.la | +| `/usr/share/coolwsd/browser/dist/branding.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/branding-mobile.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/branding-tablet.css` | FORBION | +| `/usr/share/coolwsd/browser/dist/cool.html` | F7 Office в «О программе» | +| `/usr/share/coolwsd/browser/dist/welcome/welcome.html` | F7 Office, без ссылок Collabora | +| `/usr/share/coolwsd/browser/dist/wasm.html` | title F7 Office | +| `/usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js` | FORBION | +| `/usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js` | FORBION | +| `/etc/apache2/sites-available/collabora-le-ssl.conf` | Alias на `dist/f7cloud` | +| `/etc/coolwsd/coolwsd.xml` | WOPI host, SSL, общие настройки | + +--- + +## 2. Структура репозитория для Git + +Рекомендуемая структура в репозитории (чтобы после `git clone` можно было всё расставить скриптом): + +``` +f7office-deploy/ +├── README.md +├── DEPLOY.md # эта инструкция +├── install.sh # копирование файлов на целевую машину +├── etc/ +│ ├── coolwsd/ +│ │ └── coolwsd.xml +│ └── apache2/ +│ └── sites-available/ +│ └── collabora-le-ssl.conf +└── usr/share/coolwsd/browser/dist/ + ├── branding.js + ├── branding.css + ├── branding-mobile.css + ├── branding-tablet.css + ├── cool.html + ├── wasm.html + ├── welcome/ + │ └── welcome.html + ├── src/layer/tile/ + │ ├── CanvasTileUtils.js + │ └── TileWorker.js + └── f7cloud/ + ├── branding.js + ├── branding.css + ├── branding-desktop.css + ├── branding-mobile.css + ├── branding-tablet.css + └── loading-preview.html +``` + +В Git класть только эти изменённые файлы (и при необходимости `f7cloud/images/` если меняли картинки). Остальное (bundle.js, l10n, admin и т.д.) ставится пакетами `coolwsd` и `code-brand`. + +--- + +## 3. Установка на новую машину (после git clone) + +### 3.1. Установка пакетов + +```bash +# Репозиторий Collabora CODE (Ubuntu 22.04) +sudo apt-get install -y apt-transport-https ca-certificates +# Добавить репозиторий из https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204 +sudo apt-get update +sudo apt-get install -y coolwsd code-brand +``` + +### 3.2. Клонирование и установка кастомизации F7 Office + +```bash +git clone https://git.f7cloud.ru/.../f7office-deploy.git +cd f7office-deploy +sudo ./install.sh +``` + +### 3.3. Скрипт install.sh (пример) + +Скрипт должен: +1. Копировать `usr/share/coolwsd/browser/dist/*` в `/usr/share/coolwsd/browser/dist/` +2. Копировать `etc/coolwsd/coolwsd.xml` в `/etc/coolwsd/` (если нужна ваша конфигурация) +3. Копировать конфиг Apache в `/etc/apache2/sites-available/` и включить сайт +4. Выставить владельца/права при необходимости (coolwsd обычно от пользователя `cool`) +5. Перезапустить: `systemctl restart coolwsd`, `systemctl reload apache2` + +### 3.4. Важно: тема «nextcloud» → «f7cloud» + +Папка с брендингом переименована в **f7cloud**. Если ваш WOPI-хост (Nextcloud/F7 и т.п.) в запросе к coolwsd передаёт тему `nextcloud`, то coolwsd будет искать каталог `dist/nextcloud/`. Варианты: + +- **Вариант A:** В репозитории и на сервере оставить каталог **f7cloud**. Настроить WOPI-хост так, чтобы он передавал тему `f7cloud` (если ваш хост это поддерживает). +- **Вариант B:** В `install.sh` после копирования создать симлинк: + `ln -sf /usr/share/coolwsd/browser/dist/f7cloud /usr/share/coolwsd/browser/dist/nextcloud` + Тогда запросы к теме `nextcloud` будут брать файлы из `f7cloud`. + +--- + +## 4. После apt upgrade + +Пакеты `coolwsd` и `code-brand` могут перезаписать файлы в `/usr/share/coolwsd/browser/dist/`. После `apt upgrade` при необходимости снова выполнить: + +```bash +cd /path/to/f7office-deploy +sudo ./install.sh +``` + +Либо настроить `dpkg-divert` на нужные файлы, чтобы пакеты их не перезаписывали. + +--- + +## 5. Итоговые пути для копирования в репозиторий + +Все перечисленные в таблице выше файлы должны лежать в репозитории в структуре `usr/share/...` и `etc/...` как в разделе 2, чтобы `install.sh` мог разложить их в `/usr/share/coolwsd/` и `/etc/`. diff --git a/README-GIT.md b/README-GIT.md new file mode 100644 index 0000000..9b7875f --- /dev/null +++ b/README-GIT.md @@ -0,0 +1,117 @@ +# F7 Office — файлы для Git и развёртывания + +Краткая сводка путей и шагов, чтобы выложить кастомизацию в Git и ставить на новую машину через `git clone`. + +--- + +## Пути из службы coolwsd (куда смотрит сервис) + +- **Конфиг:** `/etc/coolwsd/coolwsd.xml` +- **Корень статики:** `/usr/share/coolwsd` (в конфиге: `file_server_root_path = browser/../`) +- **Клиент по URL:** `/browser/` → каталог `/usr/share/coolwsd/browser/` +- **Apache (пример):** `/etc/apache2/sites-available/collabora-le-ssl.conf` — прокси на `http://127.0.0.1:9980/browser` и Alias на `dist/f7cloud` + +--- + +## Список изменённых файлов для репозитория + +В репозиторий имеет смысл положить только эти файлы (в структуре каталогов как на сервере): + +``` +etc/ + coolwsd/ + coolwsd.xml + apache2/ + sites-available/ + collabora-le-ssl.conf + +usr/share/coolwsd/browser/dist/ + branding.js + branding.css + branding-mobile.css + branding-tablet.css + cool.html + wasm.html + welcome/ + welcome.html + src/ + layer/ + tile/ + CanvasTileUtils.js + TileWorker.js + f7cloud/ + branding.js + branding.css + branding-desktop.css + branding-mobile.css + branding-tablet.css + loading-preview.html + images/ # при необходимости — только если меняли картинки +``` + +Остальное (bundle.js, l10n, admin, тысячи ресурсов) ставится пакетами **coolwsd** и **code-brand** и в Git не нужно. + +--- + +## Как выложить в Git (на текущей машине) + +1. Создать репозиторий на https://git.f7cloud.ru/ (например, `f7office-deploy`). +2. Создать каталог проекта и структуру: + +```bash +mkdir -p f7office-deploy/{etc/coolwsd,etc/apache2/sites-available,usr/share/coolwsd/browser/dist/{welcome,src/layer/tile,f7cloud}} +``` + +3. Скопировать файлы с сервера в эту структуру: + +```bash +cd f7office-deploy +cp /usr/share/coolwsd/browser/dist/branding.js usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/branding.css usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/branding-mobile.css usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/branding-tablet.css usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/cool.html usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/wasm.html usr/share/coolwsd/browser/dist/ +cp /usr/share/coolwsd/browser/dist/welcome/welcome.html usr/share/coolwsd/browser/dist/welcome/ +cp /usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js usr/share/coolwsd/browser/dist/src/layer/tile/ +cp /usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js usr/share/coolwsd/browser/dist/src/layer/tile/ +cp -r /usr/share/coolwsd/browser/dist/f7cloud usr/share/coolwsd/browser/dist/ +cp /etc/coolwsd/coolwsd.xml etc/coolwsd/ +cp /etc/apache2/sites-available/collabora-le-ssl.conf etc/apache2/sites-available/ +``` + +4. Положить в корень репозитория: `DEPLOY.md`, `install-f7office.sh`, этот `README-GIT.md`. +5. Инициализировать Git и отправить: + +```bash +git init +git add . +git commit -m "F7 Office customizations and configs" +git remote add origin https://git.f7cloud.ru/.../f7office-deploy.git +git push -u origin main +``` + +--- + +## Установка на новую машину (git clone) + +1. Установить Collabora/coolwsd и брендинг: + +```bash +# репозиторий CODE-ubuntu2204 и пакеты coolwsd, code-brand +sudo apt-get update && sudo apt-get install -y coolwsd code-brand +``` + +2. Клонировать репозиторий и установить файлы: + +```bash +git clone https://git.f7cloud.ru/.../f7office-deploy.git +cd f7office-deploy +# Адаптировать install-f7office.sh под структуру репо (usr/ и etc/ в корне) +chmod +x install-f7office.sh +sudo ./install-f7office.sh +``` + +3. При необходимости разложить конфиги Apache и coolwsd вручную и перезапустить сервисы. + +Подробные шаги и предупреждения — в **DEPLOY.md**. diff --git a/etc/apache2/sites-available/collabora-le-ssl.conf b/etc/apache2/sites-available/collabora-le-ssl.conf new file mode 100644 index 0000000..db58fe1 --- /dev/null +++ b/etc/apache2/sites-available/collabora-le-ssl.conf @@ -0,0 +1,91 @@ + + + ServerName coll.f7cloud.ru + AllowEncodedSlashes NoDecode + ProxyPreserveHost On + + + # static html, js, images, etc. served from coolwsd + # browser is the client part of Collabora Online + ProxyPass /browser http://127.0.0.1:9980/browser retry=0 + ProxyPassReverse /browser http://127.0.0.1:9980/browser + + + Header unset Cache-Control + Header unset Expires + Header unset ETag + Header always set Cache-Control "no-store, no-cache, must-revalidate, max-age=0" + Header always set Pragma "no-cache" + Header always set Expires "0" + ExpiresActive On + ExpiresDefault "now" + FileETag None + + # Критично: не сжимать повторно + SetEnv no-gzip 1 + SetEnv no-brotli 1 + # На время отладки можно вообще попросить backend не присылать gzip/br: + # RequestHeader unset Accept-Encoding + + +Alias "/f7cloud-loading-preview" "/usr/share/coolwsd/browser/dist/f7cloud" + + Options -Indexes +FollowSymLinks + AllowOverride None + Require all granted + DirectoryIndex loading-preview.html + + + + Header unset Cache-Control + Header unset Expires + Header unset ETag + Header always set Cache-Control "no-store, no-cache, must-revalidate, max-age=0" + Header always set Pragma "no-cache" + Header always set Expires "0" + ExpiresActive On + ExpiresDefault "now" + FileETag None + + SetEnv no-gzip 1 + SetEnv no-brotli 1 + # RequestHeader unset Accept-Encoding # (включи, если снова увидишь Content-Length: 0) + + + + # WOPI discovery URL + ProxyPass /hosting/discovery http://127.0.0.1:9980/hosting/discovery retry=0 + ProxyPassReverse /hosting/discovery http://127.0.0.1:9980/hosting/discovery + + + # Capabilities + ProxyPass /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities retry=0 + ProxyPassReverse /hosting/capabilities http://127.0.0.1:9980/hosting/capabilities + + + # Main websocket + ProxyPassMatch "/cool/(.*)/ws$" ws://127.0.0.1:9980/cool/$1/ws nocanon + + + # Admin Console websocket + ProxyPass /cool/adminws ws://127.0.0.1:9980/cool/adminws + + + # Download as, Fullscreen presentation and Image upload operations + ProxyPass /cool http://127.0.0.1:9980/cool + ProxyPassReverse /cool http://127.0.0.1:9980/cool + # Compatibility with integrations that use the /lool/convert-to endpoint + ProxyPass /lool http://127.0.0.1:9980/cool + ProxyPassReverse /lool http://127.0.0.1:9980/cool +RewriteEngine on +# Some rewrite rules in this file were disabled on your HTTPS site, +# because they have the potential to create redirection loops. + +# RewriteCond %{SERVER_NAME} =coll.f7cloud.ru +# RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] + +SSLCertificateFile /etc/letsencrypt/live/coll.f7cloud.ru/fullchain.pem +SSLCertificateKeyFile /etc/letsencrypt/live/coll.f7cloud.ru/privkey.pem +Include /etc/letsencrypt/options-ssl-apache.conf + + diff --git a/etc/coolwsd/coolwsd.xml b/etc/coolwsd/coolwsd.xml new file mode 100644 index 0000000..2665251 --- /dev/null +++ b/etc/coolwsd/coolwsd.xml @@ -0,0 +1,342 @@ + + + + + + + false + + ru + + + false + + + + true + + + + false + + + + + + true + + + false + true + + 4 + 10 + true + + 4 + 5 + 5 + 120 + false + 96 + 3600 + 30 + 300 + true + true + false + 0 + 8000 + 0 + 0 + 100 + 5 + 100 + 500 + 5000 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + 300 + 900 + + 6 + + + + true + + warning + trace + Socket,WebSocket,Admin,Pixel + notice + fatal + false + + -INFO-WARN + + + /var/log/coolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + false + false + false + + true + + true + true + + + /var/log/coolwsd-ui-cmd.log + 10 + true + false + + + + + /var/log/coolwsd.trace.json + + false + + + + + + + false + + + + + all + any + + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + 10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + 10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + localhost + + + + 30 + + false + + + + false + + true + /etc/coolwsd/cert.pem + /etc/coolwsd/key.pem + /etc/coolwsd/ca-chain.cert.pem + false + + + 1000 + + + + + + + false + 31536000 + + + + true + + true + 1800 + false + 1 + false + false + false + + + + + + 0.2 + + + + default + true + true + + + + + 0 + + 900 + + + + + + + false + forbion.f7cloud.ru + + + true + + + + + + + + + true + false + admin + + + true + true + true + true + + pbkdf2.sha512.10000.e5b0783e9d8235df727f48051740aa045efccd3d4b38666a5f4ed740bdbc60247dfd54610cb6ce346417693d1fa1dafa3accb79fca174e560163342374c8d961264ebfab1db2a1784e7f2ac336e5cfad5a124992e6ba0dd2a6017ccdabc23307a432e9391ebacd36e95e8059db7af463f6a3534a7deca1f0ec2ff12357f6f668.bc9aefb5640087b04aff603cd81ade59078264d8e92b35195d97f72ae6cffe390ea1a031df50d05fe30618d4d4fc0911799e42e27653f9be7a6757ed5e353d2b958950b1940d7fe1a397a3ef02505117dc8ce882f4a20e73575c8dcbdd3f11b303959992bb78c5e0412c5bc44505ca2b597c0ed573a6dda02450b769a78c72a4 + + + + + + 250 + 5 + + 3000 + + + + 1000 + + + false + false + false + false + false + false + + + 3600 + + + + + false + + + + + log + + + + 180 + + false + + + + + + + + + true + + + true + + https://help.collaboraoffice.com/help.html? + + false + + + false + false + + + true + + diff --git a/install-f7office.sh b/install-f7office.sh new file mode 100644 index 0000000..c7c3f3b --- /dev/null +++ b/install-f7office.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# Установка/восстановление кастомизации F7 Office поверх coolwsd/code-brand. +# Запуск: sudo ./install-f7office.sh [--dry-run] +# Ожидается запуск из корня репозитория, где есть каталоги etc/ и usr/. + +set -e +DRY_RUN="" +[ "$1" = "--dry-run" ] && DRY_RUN="echo" && shift + +ROOT="" +if [ -d "usr/share/coolwsd/browser/dist" ] && [ -d "etc" ]; then + ROOT="." +elif [ -d "f7office-deploy/usr" ]; then + ROOT="f7office-deploy" +else + echo "Запустите скрипт из корня репозитория (где есть usr/ и etc/)." + exit 1 +fi + +COPY() { + $DRY_RUN cp -a "$1" "$2" +} + +# Копирование browser/dist (только изменённые файлы) +DIST_SRC="${ROOT}/usr/share/coolwsd/browser/dist" +DIST_DST="/usr/share/coolwsd/browser/dist" + +if [ ! -d "$DIST_DST" ]; then + echo "Каталог $DIST_DST не найден. Сначала установите coolwsd и code-brand." + exit 1 +fi + +[ -f "$DIST_SRC/branding.js" ] && COPY "$DIST_SRC/branding.js" "$DIST_DST/" +[ -f "$DIST_SRC/branding.css" ] && COPY "$DIST_SRC/branding.css" "$DIST_DST/" +[ -f "$DIST_SRC/branding-mobile.css" ] && COPY "$DIST_SRC/branding-mobile.css" "$DIST_DST/" +[ -f "$DIST_SRC/branding-tablet.css" ] && COPY "$DIST_SRC/branding-tablet.css" "$DIST_DST/" +[ -f "$DIST_SRC/cool.html" ] && COPY "$DIST_SRC/cool.html" "$DIST_DST/" +[ -f "$DIST_SRC/wasm.html" ] && COPY "$DIST_SRC/wasm.html" "$DIST_DST/" +[ -f "$DIST_SRC/welcome/welcome.html" ] && COPY "$DIST_SRC/welcome/welcome.html" "$DIST_DST/welcome/" +[ -f "$DIST_SRC/src/layer/tile/CanvasTileUtils.js" ] && COPY "$DIST_SRC/src/layer/tile/CanvasTileUtils.js" "$DIST_DST/src/layer/tile/" +[ -f "$DIST_SRC/src/layer/tile/TileWorker.js" ] && COPY "$DIST_SRC/src/layer/tile/TileWorker.js" "$DIST_DST/src/layer/tile/" + +# f7cloud (или nextcloud) — целый каталог брендинга +if [ -d "$DIST_SRC/f7cloud" ]; then + $DRY_RUN rm -rf "$DIST_DST/f7cloud" + $DRY_RUN cp -a "$DIST_SRC/f7cloud" "$DIST_DST/" + # Опционально: симлинк nextcloud -> f7cloud для совместимости с WOPI-темой "nextcloud" + if [ -z "$DRY_RUN" ] && [ ! -e "$DIST_DST/nextcloud" ]; then + ln -sf f7cloud "$DIST_DST/nextcloud" + fi +fi + +# Конфиги (раскомментируйте при необходимости) +# [ -f "${ROOT}/etc/coolwsd/coolwsd.xml" ] && COPY "${ROOT}/etc/coolwsd/coolwsd.xml" /etc/coolwsd/ +# [ -f "${ROOT}/etc/apache2/sites-available/collabora-le-ssl.conf" ] && COPY "${ROOT}/etc/apache2/sites-available/collabora-le-ssl.conf" /etc/apache2/sites-available/ + +if [ -z "$DRY_RUN" ]; then + echo "Файлы установлены. Перезапуск coolwsd..." + systemctl restart coolwsd 2>/dev/null || true + echo "Готово." +else + echo "Dry-run: команды выше не выполнялись." +fi diff --git a/usr/share/coolwsd/browser/dist/branding-mobile.css b/usr/share/coolwsd/browser/dist/branding-mobile.css new file mode 100644 index 0000000..2e1fc49 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/branding-mobile.css @@ -0,0 +1,343 @@ +FORBION + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --color-calc-header-selected: #D2D2D2 !important; + --color-calc-header-hover: #9FD5B7 !important; + --color-text-calc-header-selected: #106802 !important; + --color-doc-name-input-bg-hover: rgba(0, 0, 0, 0.2) !important; +} + +[data-theme=dark] { + --color-calc-header-selected: #646464 !important; + --color-calc-header-hover: #217346 !important; + --color-text-calc-header-selected: #fff !important; + --color-doc-name-input-bg-hover: black !important; +} + +:root { + --column-row-highlight: #9FD5B7 !important; +} + +[data-theme=dark] { + --column-row-highlight: #9FD5B7 !important; +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +.ui-toolbar .unotoolbutton img { + margin: 1px; +} + +.logo { + background-size: 100px; + max-width: 24px; + max-height: 31px; + top: 0; +} + +#toolbar-logo { + width: 0px !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +#toolbar-hamburger.menuwizard-opened { + background-color: var(--co-color-background-dark) !important; +} + +.ui-scroll-left, .ui-scroll-right { + box-shadow: 4px 0 13px 2px var(--co-primary-element), -6px 0 6px 6px var(--co-primary-element) !important; +} + +/*avoid scroll indicators to be above other items*/ +#PermissionMode.status-readonly-mode { + background-color: transparent; + color: var(--co-color-text-lighter); +} + +#mobile-edit-button { + background-color: var(--co-primary-element) !important; +} + +#toolbar-down .unotoolbutton.selected { + border: 1px solid var(--co-primary-text) !important; + background: linear-gradient(to right, #fff 20%, #fff0 20%) no-repeat, linear-gradient(to left, #fff 20%, #fff0 20%) no-repeat, linear-gradient(transparent 94%, var(--co-primary-element) 94%); + background-color: transparent !important; +} + +.spreadsheet-tab { + padding-bottom: 4px !important; + padding-top: 5px !important; +} + +#mobile-wizard button, +#mobile-wizard #FontworkSameLetterHeights { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element); +} + +#mobile-wizard-titlebar { + color: var(--co-color-text-lighter); +} + +.ui-tab.selected.mobile-wizard { + color: var(--co-primary-element); + border-bottom: 1px solid var(--co-primary-element); +} + +.ui-tab.mobile-wizard { + color: var(--co-color-text-lighter); +} + +div#mobile-wizard-content .spinfieldcontainer { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.spinfieldcontrols { + background-color: var(--co-color-background-dark); + border-left: 1px solid var(--co-color-border-dark); +} + +.plus { + border-left: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.minus { + border-right: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.spinfieldunit { + color: var(--co-color-text-lighter) !important; +} + +.colors-container-selected-basic-color { + box-shadow: 0 2px 3px -2px var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.color-sample-small { + border-color: var(--co-body-bg); +} + +.color-sample-big { + box-shadow: 0px 0px 0px 1px var(--co-color-background-dark), 1px 1px 0 3px var(--co-body-bg); +} + +.menu-entry-icon { + background: var(--co-color-main-background-translucent); +} + +#mobile-wizard-content #commands.selected { + border-color: var(--co-primary-element); +} + +#mobile-wizard .cool-annotation-reply-count { + margin-inline-end: 32px !important; +} + +#mobile-wizard .ui-content.unobutton.selected { + box-shadow: 0 0 0px 6px var(--color-background-darker) !important; + background-color: var(--color-background-darker) !important; +} + +#lokit-version ~ p { + margin: 0; +} + +#about-dialog-header { + flex-flow: column; + align-items: center; +} + +#about-dialog-logos { + flex-basis: 62px; + max-width: 168px; +} + +#about-dialog-logos * { + background-position: left top; +} + +#product-logo { + flex-grow: 0.8; + background-position: center top !important; +} + +#product-name { + justify-content: center !important; +} + +#lokit-logo { + flex-grow: 1; + background-position: center 6px !important; +} diff --git a/usr/share/coolwsd/browser/dist/branding-tablet.css b/usr/share/coolwsd/browser/dist/branding-tablet.css new file mode 100644 index 0000000..70fafef --- /dev/null +++ b/usr/share/coolwsd/browser/dist/branding-tablet.css @@ -0,0 +1,342 @@ +FORBION + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --color-calc-header-selected: #D2D2D2 !important; + --color-calc-header-hover: #9FD5B7 !important; + --color-text-calc-header-selected: #106802 !important; + --color-doc-name-input-bg-hover: rgba(0, 0, 0, 0.2) !important; +} + +[data-theme=dark] { + --color-calc-header-selected: #646464 !important; + --color-calc-header-hover: #217346 !important; + --color-text-calc-header-selected: #fff !important; + --color-doc-name-input-bg-hover: black !important; +} + +:root { + --column-row-highlight: #9FD5B7 !important; +} + +[data-theme=dark] { + --column-row-highlight: #9FD5B7 !important; +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +/*avoid scroll indicators to be above other items*/ +.ui-tab.notebookbar { + line-height: normal; + padding: 2px 12px 2px 12px; +} + +.ui-tabs.notebookbar { + height: auto !important; + border-radius: 8px; + box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); +} + +.notebookbar-tabs-container { + align-self: auto !important; +} + +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar { + text-shadow: none; + background-color: white; +} + +.ui-tab.selected.notebookbar { + box-shadow: none; + border-radius: 8px !important; + box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; + -moz-box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; + -webkit-box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; +} + +.ui-tabs.notebookbar .ui-tab { + height: auto !important; + background-color: transparent; + color: var(--co-color-text-lighter); +} + +.main-nav:not(.hasnotebookbar) { + margin-right: 0px; + box-shadow: 0px 4px 2px -2px #adadad; +} + +.ui-toolbar { + padding-top: 2px; +} + +.ui-scroll-left, .ui-scroll-right { + box-shadow: 4px 0 13px 2px var(--co-primary-element), -6px 0 6px 6px var(--co-primary-element) !important; +} + +#mobile-edit-button { + background-color: var(--co-primary-element) !important; +} + +.leaflet-selection-marker-end { + margin-left: -4px; + background-size: 12px; + background-repeat: no-repeat; + background-image: url("images/ios_handle_end.svg"); + margin-top: -24px; +} + +.leaflet-selection-marker-start { + margin-left: -8px; + background-size: 12px; + background-repeat: no-repeat; + background-image: url("images/ios_handle_start.svg"); + margin-top: -34px; +} + +.leaflet-cursor-handler { + display: none; +} + +/*porting some changes from iOSapp made by @tml and adjusting*/ +.cool-context-toolbar { + top: -32px; +} + +#mobile-wizard button, +#mobile-wizard #FontworkSameLetterHeights { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element); +} + +#mobile-wizard-titlebar { + color: var(--co-color-text-lighter); +} + +.ui-tab.selected.mobile-wizard { + color: var(--co-primary-element); + border-bottom: 1px solid var(--co-primary-element); +} + +.ui-tab.mobile-wizard { + color: var(--co-color-text-lighter); +} + +div#mobile-wizard-content .spinfieldcontainer { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.spinfieldcontrols { + background-color: var(--co-color-background-dark); + border-left: 1px solid var(--co-color-border-dark); +} + +.plus { + border-left: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.minus { + border-right: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.spinfieldunit { + color: var(--co-color-text-lighter) !important; +} + +.colors-container-selected-basic-color { + box-shadow: 0 2px 3px -2px var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.color-sample-small { + border-color: var(--co-body-bg); +} + +.color-sample-big { + box-shadow: 0px 0px 0px 1px var(--co-color-background-dark), 1px 1px 0 3px var(--co-body-bg); +} + +.menu-entry-icon { + background: var(--co-color-main-background-translucent); +} + +#mobile-wizard-content #commands.selected { + border-color: var(--co-primary-element); +} + +#mobile-wizard .cool-annotation-reply-count { + margin-inline-end: 32px !important; +} + +#mobile-wizard .ui-content.unobutton.selected { + box-shadow: 0 0 0px 6px var(--color-background-darker) !important; + background-color: var(--color-background-darker) !important; +} diff --git a/usr/share/coolwsd/browser/dist/branding.css b/usr/share/coolwsd/browser/dist/branding.css new file mode 100644 index 0000000..7e32dff --- /dev/null +++ b/usr/share/coolwsd/browser/dist/branding.css @@ -0,0 +1,1628 @@ +FORBION + +@keyframes MoveUpDown { + 0%, 100% { + bottom: -38px; + } + 50% { + bottom: -48px; + } +} +.leaflet-progress-spinner::before { + content: ""; + position: relative; + animation: MoveUpDown 1s linear infinite; + z-index: 1; + display: block; + width: 100%; + height: 78px; + margin: 0 0 4px; +} + +html:not([data-theme=dark]) .leaflet-progress-spinner::before { + background: url("images/toolbar-bg-logo.svg") no-repeat 44px center/78px; +} + +html[data-theme=dark] .leaflet-progress-spinner::before { + background: url("images/toolbar-bg-logo-dark.svg") no-repeat 44px center/78px; +} + +.leaflet-progress-spinner-canvas { + opacity: 0; +} + +html:not([data-theme=dark]) .document-logo { + background: url("images/toolbar-bg-logo-notebookbar.svg") no-repeat center !important; + background-size: 30px !important; +} + +html[data-theme=dark] .document-logo { + background: url("images/toolbar-bg-logo-notebookbar.svg") no-repeat center !important; + background-size: 30px !important; +} + +.unobutton { + overflow: hidden; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_downloadas_pdf_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_fullscreen_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_zoomreset_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) .w2ui-icon.closemobile { + background: url("images/lc_closedocmobile_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.edit { + background: url("images/edit_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.fitcell { + background: url("images/fit-cell_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.textpath { + background: url("images/text-path_branding.svg") no-repeat center !important; +} + +.table-column-resize-marker { + background-image: url("images/table-column-resize-marker_branding.svg"); + width: 32px; + height: 32px; +} + +html:not([data-theme=dark]) .unoSave:not(.unospan-file-save) .unobutton img, html:not([data-theme=dark]) #save.notebookbar img { + background: url("images/lc_save_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoSave.saved:not(.unospan-file-save) .unobutton img, html:not([data-theme=dark]) #save.notebookbar.saved img { + background: url("images/lc_saved_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoSave.savemodified:not(.unospan-file-save) .unobutton img, html:not([data-theme=dark]) #save.notebookbar.savemodified img { + background: url("images/lc_savemodified_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #save.notebookbar.saving img { + background: url("images/lc_saving_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +#closebuttonwrapper { + width: var(--btn-size); + height: var(--btn-size) !important; + align-items: center; + justify-content: center; +} + +#closebuttonwrapper #closebutton { + background: url("images/closedoc-dark_branding.svg") no-repeat center/var(--btn-img-size) !important; + width: 24px !important; + height: 24px !important; + opacity: 1; + filter: none !important; +} + +#Open_Local_Editor img { + background: url("images/open-local-editor.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +[data-theme=dark] #Open_Local_Editor img { + filter: none !important; +} + +#closebuttonwrapperseparator { + visibility: hidden !important; + width: 0 !important; +} + +html:not([data-theme=dark]) .unoSetBorderStyle .unobutton img, html:not([data-theme=dark]) #setborderstyle img { + background: url("images/lc_setborderstyle_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoText .unobutton img, html:not([data-theme=dark]) .unoDrawText .unobutton img, html:not([data-theme=dark]) #inserttextbox img { + background: url("images/lc_text_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertTable .unobutton img, html:not([data-theme=dark]) #inserttable img { + background: url("images/lc_inserttable_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertAnnotation .unobutton img, html:not([data-theme=dark]) #insertannotation img { + background: url("images/lc_showannotations_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertObjectChart .unobutton img, html:not([data-theme=dark]) #insertobjectchart img { + background: url("images/lc_drawchart_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoHyperlinkDialog .unobutton img, html:not([data-theme=dark]) #inserthyperlink img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .swresnc20007img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center/16px; + box-sizing: border-box; + padding-left: 16px !important; + width: 16px; + height: 16px; +} + +html:not([data-theme=dark]) .unoremotelink .unobutton img, html:not([data-theme=dark]) #link img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoremoteaicontent .unobutton img, html:not([data-theme=dark]) #link img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertPage .unobutton img, html:not([data-theme=dark]) #insertpage img { + background: url("images/lc_insertpage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoDeletePage .unobutton img, html:not([data-theme=dark]) #deletepage img { + background: url("images/lc_deletepage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoBasicShapes .unobutton img, html:not([data-theme=dark]) #basicshapes_ellipse img { + background: url("images/lc_ellipse_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoTableDialog .unobutton img { + background: url("images/lc_inserttable_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatCurrency .unobutton img, html:not([data-theme=dark]) #numberformatcurrency img { + background: url("images/lc_numberformatcurrency_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatDate .unobutton img, html:not([data-theme=dark]) .unoNumberFormatDecimal .unobutton img { + background: url("images/lc_numberformatdecimal_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatPercent .unobutton img, html:not([data-theme=dark]) #numberformatpercent img { + background: url("images/lc_numberformatpercent_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatDecDecimals .unobutton img, html:not([data-theme=dark]) #numberformatdecdecimals img { + background: url("images/lc_numberformatdecdecimals_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatIncDecimals .unobutton img, html:not([data-theme=dark]) #numberformatincdecimals img { + background: url("images/lc_numberformatincdecimals_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoAutoSumMenu .unobutton img, html:not([data-theme=dark]) #autosum img { + background: url("images/lc_autosum_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoFunctionDialog .unobutton img, html:not([data-theme=dark]) #autosum img { + background: url("images/lc_functiondialog_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #next img { + background: url("images/lc_downpage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #prev img { + background: url("images/lc_uppage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #nextrecord img { + background: url("images/lc_nextrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #prevrecord img { + background: url("images/lc_prevrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #lastrecord img { + background: url("images/lc_firstrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; + transform: scaleX(-1) !important; +} + +html:not([data-theme=dark]) #firstrecord img { + background: url("images/lc_firstrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #insertsheet img { + background: url("images/plus_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #searchnext img { + background: url("images/lc_searchnext_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #searchprev img { + background: url("images/lc_searchprev_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) [data-doctype=text] .unoSidebar .unobutton img, html:not([data-theme=dark]) [data-doctype=text] .notebookbar.unoSidebarDeck\.PropertyDeck:not(.unospan-view-sidebar-property-deck) .unobutton img, html:not([data-theme=dark]) [data-doctype=text] .unoModifyPage .unobutton img, html:not([data-theme=dark]) #sidebar_modify_page img { + background: url("images/lc_sidebar_writer.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) [data-doctype=presentation] .unoSidebar .unobutton img, html:not([data-theme=dark]) [data-doctype=presentation] .notebookbar.unoSidebarDeck\.PropertyDeck:not(.unospan-view-side-bar) .unobutton img, html:not([data-theme=dark]) [data-doctype=presentation] .notebookbar.unoModifyPage.unospan-options-modify-page .unobutton img, html:not([data-theme=dark]) #sidebar_modify_page img { + background: url("images/lc_sidebar_impress.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) [data-doctype=spreadsheet] .unoSidebar .unobutton img, html:not([data-theme=dark]) [data-doctype=spreadsheet] .notebookbar.unoSidebarDeck\.PropertyDeck:not(.unospan-view-sidebardeck) .unobutton img, html:not([data-theme=dark]) [data-doctype=spreadsheet] .unoModifyPage .unobutton img, html:not([data-theme=dark]) #sidebar_modify_page img { + background: url("images/lc_sidebar_calc.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) [data-doctype=drawing] .unoSidebar .unobutton img, html:not([data-theme=dark]) [data-doctype=drawing] .notebookbar.unoSidebarDeck\.PropertyDeck.unospan-optionstoolboxdown .unobutton img, html:not([data-theme=dark]) [data-doctype=drawing] .unoModifyPage .unobutton img, html:not([data-theme=dark]) #sidebar_modify_page img { + background: url("images/lc_sidebar_draw.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .notebookbar.unoMasterSlidesPanel.unospan-options-master-slides-panel .unobutton img, html:not([data-theme=dark]) #sidebar_master_slides img { + background: url("images/lc_sidebar_masterslide.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .notebookbar.unoSlideChangeWindow.unospan-options-slide-change-window .unobutton img, html:not([data-theme=dark]) #sidebar_slide_change img { + background: url("images/lc_sidebar-transition.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .notebookbar.unoCustomAnimation.unospan-options-custom-animation .unobutton img { + background: url("images/lc_sidebar-animation.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertPage .unobutton img { + background: url("images/lc_insertpage_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoDuplicatePage .unobutton img, html:not([data-theme=dark]) .unoduplicatepage .unobutton img, html:not([data-theme=dark]) #duplicatepage img { + background: url("images/lc_duplicatepage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:checked { + background-image: url("images/checkbox-on.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:checked:disabled { + background-image: url("images/checkbox-on-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox] { + background: url("images/checkbox-off.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:disabled { + background-image: url("images/checkbox-off-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:checked:not(.ui-color-picker-entry) { + background-image: url("images/radio-on.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:not(.ui-color-picker-entry) { + background: url("images/radio-off.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:checked:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-off-disabled.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:checked:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-dark.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:not(.ui-color-picker-entry) { + background: url("images/radio-off-dark.svg") no-repeat center !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:checked:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-disabled-dark.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-off-disabled-dark.svg") !important; +} + +html:not([data-theme=dark]) .cool-ruler-indentation-marker-up { + background: url("images/indentation_marker_up_branding.svg") center 0 no-repeat !important; +} + +html:not([data-theme=dark]) .cool-ruler-indentation-marker-down { + height: 10px; + background: url("images/indentation_marker_down_branding.svg") center 0 no-repeat !important; +} + +.table-column-resize-marker:hover { + background-image: url("images/table-column-resize-marker-hover_branding.svg"); + width: 32px; + height: 32px; +} + +.table-row-resize-marker { + background-image: url("images/table-row-resize-marker_branding.svg"); + width: 32px; + height: 32px; +} + +.table-row-resize-marker:hover { + background-image: url("images/table-row-resize-marker-hover_branding.svg"); + width: 32px; + height: 32px; +} + +.lokdialog_container .ui-dialog-titlebar-close .ui-icon { + background-image: url("images/close-widget.svg"); + border: none; + background-position: center; + filter: saturate(0); +} + +.lokdialog_container .ui-dialog-titlebar-close { + background: none; + border: none; +} + +.lokdialog_container.ui-dialog .ui-dialog-titlebar-close:hover > .ui-icon-closethick { + background-image: url("images/close-widget-hover.svg"); +} + +html:not([data-theme=dark]) #scroll-up img { + background: url("images/lc_stylepreviews-scrollup_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #scroll-down img { + background: url("images/lc_stylepreviews-scrolldown_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .close-navigation-button { + background: url("images/close-widget.svg") no-repeat center !important; + border: none; + background-position: center; +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --color-calc-header-selected: #D2D2D2 !important; + --color-calc-header-hover: #9FD5B7 !important; + --color-text-calc-header-selected: #106802 !important; + --color-doc-name-input-bg-hover: rgba(0, 0, 0, 0.2) !important; +} + +[data-theme=dark] { + --color-calc-header-selected: #646464 !important; + --color-calc-header-hover: #217346 !important; + --color-text-calc-header-selected: #fff !important; + --color-doc-name-input-bg-hover: black !important; +} + +:root { + --column-row-highlight: #9FD5B7 !important; +} + +[data-theme=dark] { + --column-row-highlight: #9FD5B7 !important; +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +.cool-annotation-img > .avatar-img { + background: none; +} + +.cool-annotation-redline-content-wrapper { + outline: 1px dashed #e7c1e0; + outline-offset: -1px; +} + +.cool-annotation-redline-content-wrapper, .cool-annotation-content-wrapper { + box-shadow: 0px 1px 3px var(--color-box-shadow); +} + +.cool-annotation-redline-content-wrapper:hover, .cool-annotation-content-wrapper:hover { + box-shadow: 0px 3px 6px var(--color-box-shadow); +} + +.annotation-active .cool-annotation-redline-content-wrapper, .annotation-active .cool-annotation-content-wrapper { + box-shadow: 0px 3px 6px var(--color-box-shadow); +} + +.cool-annotation-collapsed.modalpopup .annotation-active, +.cool-annotation-collapsed.modalpopup .cool-annotation-content-wrapper { + border: none !important; +} + +.cool-annotation-menu:hover, .cool-annotation-menu-redline:hover, .cool-redline-accept-button:hover, .cool-redline-reject-button:hover { + border: 1px solid var(--co-primary-element-light); + background-color: var(--co-color-background-hover) !important; + border-radius: 16px; +} + +.context-menu-list.cool-font.context-menu-root { + min-width: auto !important; +} + +.cool-annotation-textarea { + margin-bottom: 10px; +} + +.cool-annotation-textarea:focus { + outline-color: var(--co-primary-element); +} + +.cool-annotation-edit .annotation-button.button-primary, #table-buttonbox #ok { + background: none; + background-color: var(--co-primary-element); + color: var(--co-primary-text); +} + +.cool-annotation-edit .annotation-button.button-primary:hover, #table-buttonbox #ok:hover { + background-color: var(--co-primary-light); + border: 1px solid var(--co-primary-element); + color: var(--co-primary-element); +} + +.cool-annotation-edit .annotation-button.button-secodnary, #table-buttonbox #cancel { + background: none; + background-color: var(--co-color-background-dark); + height: 32px; + line-height: 0em; + color: black; + min-width: 62px; +} + +.cool-annotation-edit .annotation-button.button-secodnary:hover, #table-buttonbox #cancel:hover { + background-color: var(--co-body-bg); + border: 1px solid var(--co-color-background-hover); +} + +/* commented so markers also appear on desktop +@media (pointer: fine) { + CSS for precise devices AKA cursor driven devices + .leaflet-selection-marker-start,.leaflet-selection-marker-end{ + display: none; + } +}*/ +.transform-handler--rotate { + stroke: #4b5569; + fill: #4b5569; +} + +.transform-handler--rotate:hover { + stroke: #46bddd !important; + fill: white !important; + stroke-width: 8; + cursor: grab !important; +} + +.leaflet-drag-transform-marker { + stroke: #4c566a; +} + +.leaflet-drag-transform-marker:hover { + fill: #46bddd; +} + +/*loading spinner colors*/ +.leaflet-progress > span { + background: #504999 !important; + border: none !important; + border-radius: 1px !important; +} + +.leaflet-progress { + background: #e9e7f0 !important; + border-radius: 1px !important; + height: 4px !important; + margin: 10px 0 0 !important; +} + +.leaflet-progress > span > span { + padding: 0 8px !important; + font-size: 11px !important; + font-weight: bold !important; + color: #504999 !important; + text-shadow: none !important; +} + +/*icons*/ +#menu-forum, #Help.notebookbar #forum { + display: none; +} + +#menu-report-an-issue, #Help.notebookbar #report-an-issue, #help-reportissue-break { + display: none; +} + +#main-menu { + margin-left: 0px; +} + +#document-header { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + width: 38px; + height: 32px; +} + +.lo-menu > li > a, .lo-menu > li > a.has-submenu { + border-radius: var(--co-border-radius); + font-size: var(--default-font-size); + color: var(--color-main-text); +} + +html:not([data-theme=dark]) .lo-menu > li > a, html:not([data-theme=dark]) .lo-menu > li > a.has-submenu { + color: var(--color-background-lighter); +} +html:not([data-theme=dark]) .lo-menu > li > a:hover, +html:not([data-theme=dark]) .lo-menu > li > a:focus, +html:not([data-theme=dark]) .lo-menu > li > a:active, +html:not([data-theme=dark]) .lo-menu > li > a.highlighted { + background-color: var(--co-color-bg-nb-tab); + border-color: var(--color-doc-name-input-bg-hover); +} +html:not([data-theme=dark]) #menu-last-mod a { + color: var(--co-color-background-light); +} + +/* Disable parent menu styles for notebookbar */ +.lo-menu.notebookbar > li > a { + background-color: transparent; + border: none; + line-height: normal; +} + +#document-name-input, #document-name-input.editable { + box-shadow: none; + border-radius: var(--border-radius); + background-color: transparent; + height: var(--btn-size) !important; + color: var(--color-main-text); +} + +#document-name-input.editable:hover:not(:focus) { + background-color: var(--color-doc-name-input-bg-hover) !important; + box-shadow: none !important; +} + +html[data-theme=dark] #document-name-input.editable:hover:not(:focus) { + background-color: var(--color-doc-name-input-bg-hover) !important; +} + +#document-name-input.editable:focus { + flex: 0 1 auto; +} + +#menu-last-mod > a { + background-color: var(--co-bg-body); + font-size: 12px; + z-index: 0 !important; +} + +#menu-last-mod span { + padding-left: 3px; + padding-right: 3px; +} + +#menu-last-mod a:hover span { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.cool-ruler { + height: var(--ruler-height); +} + +.cool-ruler-left:hover { + border-right: 3px solid rgb(var(--doc-type)); +} + +.cool-ruler-right:hover { + border-left: 3px solid rgb(var(--doc-type)); +} + +.cool-ruler-left.leaflet-drag-moving { + border-right: 2px dotted rgb(var(--doc-type)); +} + +.cool-ruler-right.leaflet-drag-moving { + border-left: 2px dotted rgb(var(--doc-type)); +} + +.leaflet-bar { + border-bottom: solid 1px #e6e6e6 !important; +} + +.cool-ruler-margin { + background-color: var(--color-background-dark) !important; +} + +.cool-ruler { + background-color: var(--co-color-background-light) !important; +} + +.cool-ruler.vruler { + border-top: solid 1px #e6e6e6 !important; + border-bottom: none !important; +} + +.ui-scroll-left, .ui-scroll-right { + background: rgb(var(--doc-type), 0.9) url("images/scroll-double-white.svg") center center/18px no-repeat; + box-shadow: 0px 0px 2px var(--color-box-shadow); + -moz-box-shadow: 0px 0px 2px var(--color-box-shadow); + -webkit-box-shadow: 0px 0px 2px var(--color-box-shadow); + width: 22px; + border-radius: 0px 10px 10px 0px; +} +[data-theme=dark] .ui-scroll-left, [data-theme=dark] .ui-scroll-right { + background: rgb(var(--doc-type), 0.6) url("images/scroll-double-white.svg") center center/18px no-repeat; +} + +.ui-scroll-left::before, +.ui-scroll-right::after { + display: none; +} + +#toolbar-wrapper:not(.hasnotebookbar) .ui-scroll-left, #toolbar-wrapper:not(.hasnotebookbar) .ui-scroll-right { + height: 90%; + top: 5%; +} + +.ui-scroll-right { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +.ui-scroll-left:hover, .ui-scroll-right:hover { + background: rgb(var(--doc-type), 1) url("images/scroll-double-white.svg") center center/18px no-repeat; +} + +/*sidebar*/ +#sidebar-dock-wrapper { + padding-top: 0; +} + +/*sidebar----END---*/ +#table-shortcutstoolbox > tr > td { + height: 25px; + margin: 0px; + padding: 0px; +} + +#save.savemodified::after, #File .unoSave.savemodified:after { + display: none; +} + +/*Notebookbar and Sidebar icons*/ +.unospan-optionstoolboxdown { + background-color: transparent !important; + border-color: transparent !important; +} + +.hasnotebookbar .unoSidebarDeck\.PropertyDeck img, .hasnotebookbar .unoModifyPage img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoSlideChangeWindow .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoCustomAnimation .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoMasterSlidesPanel .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.notebookbar.unoDefaultBullet img.selected { + background-color: #e6e6e640; +} + +.hasnotebookbar .unotoolbutton.notebookbar.has-label .unobutton.selected, +.hasnotebookbar .unotoolbutton.notebookbar.inline .unobutton.selected { + filter: none; + background-color: transparent; +} + +html:not([data-theme=dark]) .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline):not([class*=unospan-options-]), +html:not([data-theme=dark]) .sidebar.unotoolbutton.selected, +html:not([data-theme=dark]) .notebookbar.unotoolbutton.selected { + border-radius: var(--co-border-radius) !important; +} + +html[data-theme=dark] .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline):not([class*=unospan-options-]), +html[data-theme=dark] .sidebar.unotoolbutton.selected { + border-radius: var(--co-border-radius) !important; + outline-color: transparent; +} + +.hasnotebookbar .unotoolbutton.notebookbar:not(.has-label):not(.inline) .unobutton.selected + .ui-content.unolabel { + color: var(--co-primary-text) !important; +} + +[id^=NumberFormatCurrency] > img.selected { + filter: none !important; +} + +.ui-content.unotoolbutton.selected:hover, +.unotoolbutton:hover, +.ui-content.unotoolbutton.selected:not(.has-label):not(.inline):hover, +#clearFormatting:hover, +#FormatPaintbrush:hover { + border-radius: var(--co-border-radius) !important; + background-color: var(--color-background-dark) !important; + border-color: transparent !important; +} + +#toolbar-down .unotoolbutton.jsdialog:hover { + border-radius: 0 !important; + border-block-color: transparent !important; +} + +.ui-tab.notebookbar { + line-height: normal; +} + +.ui-tab.selected.jsdialog { + box-shadow: 0 0 0 0 var(--color-box-shadow); + background-color: #ffffff50 !important; +} + +[data-theme=dark] .ui-tab.selected.jsdialog { + border-color: #555 !important; + color: var(--co-color-text-lighter) !important; + box-shadow: none !important; +} + +[data-theme=dark] .ui-tab.jsdialog { + background-color: transparent !important; + border-color: var(--color-main-background) !important; +} + +.ui-tab.jsdialog:not(.selected):hover { + cursor: pointer !important; + background-color: var(--color-background-darker) !important; + color: var(--color-text-darker) !important; +} + +.main-nav.hasnotebookbar .unotoolbutton.notebookbar:hover, +.main-nav.hasnotebookbar .unotoolbutton.notebookbar:hover .unobutton { + background-color: transparent !important; + border-color: var(--co-color-background-light) !important; +} +.main-nav.hasnotebookbar #document-name-input, .main-nav.hasnotebookbar #document-name-input.editable { + font-size: clamp(var(--tb-min-fs), var(--tb-fs-s), var(--tb-max-fs)) !important; + font-weight: normal; +} +.main-nav.hasnotebookbar #document-name-input.editable:focus { + box-shadow: none !important; +} +.main-nav.hasnotebookbar #document-header .document-logo { + border-radius: var(--border-radius); +} +.main-nav.hasnotebookbar .notebookbar-tabs-container { + align-self: end; +} +.main-nav.hasnotebookbar button.ui-tab.notebookbar { + height: 36px; +} +.main-nav.hasnotebookbar button.ui-tab.notebookbar:hover { + box-shadow: none; + color: var(--co-color-text-nb-tab) !important; + background-color: var(--co-color-bg-nb-tab) !important; +} +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar { + height: 34px; + margin-top: 2px; +} +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar, +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar:hover { + box-shadow: none !important; + background-color: var(--co-color-background-light) !important; +} +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar:hover { + box-shadow: inset 0 -3px 0 0px rgb(var(--doc-type)) !important; +} + +#toolbar-wrapper.hasnotebookbar, #navigation-sidebar { + background-color: var(--co-color-background-light) !important; +} + +.navigator-btn-wrapper:hover { + background-color: var(--color-background-darker); +} + +html:not([data-theme=dark]) #optionstoolboxdown .notebookbar.unotoolbutton:not(.shareas):hover { + border-color: transparent !important; +} +html:not([data-theme=dark]) #optionstoolboxdown .notebookbar.unotoolbutton.selected { + background-color: transparent !important; + border-color: transparent !important; +} +html:not([data-theme=dark]) #optionstoolboxdown .notebookbar.unotoolbutton.selected button img { + box-shadow: inset 0 -1px 0 0 var(--co-color-bg-nb-tab) !important; +} +html:not([data-theme=dark]) .main-nav { + background-color: rgb(var(--doc-type, var(--co-primary-elment-rgb))) !important; +} +html:not([data-theme=dark]) .main-nav #document-name-input:not(:focus), +html:not([data-theme=dark]) .main-nav #document-name-input.editable:not(:focus) { + color: var(--color-background-lighter); +} +html:not([data-theme=dark]) .main-nav #save.saving::after, +html:not([data-theme=dark]) .main-nav #save.saved::after { + color: var(--color-background-lighter) !important; + font-size: 10px; +} +html:not([data-theme=dark]) button.ui-tab.notebookbar { + color: var(--color-background-lighter); +} +html:not([data-theme=dark]) .ui-tab.selected.notebookbar, +html:not([data-theme=dark]) .ui-tab.selected.notebookbar:hover { + color: rgb(var(--doc-type)) !important; +} + +#sidebar-dock-wrapper, +#navigator-dock-wrapper, +#presentation-toolbar, +#slide-sorter { + background: var(--co-color-background-light) !important; +} + +#slide-sorter { + scrollbar-color: var(--color-background-darker) var(--co-color-background-light); +} + +.main-nav.hasnotebookbar .shareas { + background-color: rgba(0, 0, 0, 0.1) !important; + border-color: #fff !important; +} +.main-nav.hasnotebookbar .shareas .unobutton { + display: none; +} +.main-nav.hasnotebookbar .shareas .unolabel { + font-size: 0.88rem; + line-height: 1.125rem; + color: #fff !important; +} + +html:not([data-theme=dark]) .main-nav.hasnotebookbar .shareas .unolabel { + border-color: #fff !important; +} + +#toolbar-top #sidebar { + border: none !important; +} + +#toolbar-top #sidebar .checked { + border-color: transparent !important; +} + +#toolbar-up > div > table > tbody > tr > td > div > .checked img.sidebar_modify_page { + background-size: 24px !important; +} + +/*icons---END*/ +#toolbar-up .over { + border: 1px solid var(--co-primary-element); + background-color: var(--co-body-bg); + border-radius: var(--co-border-radius); +} + +.checked > tbody > tr > td > table > tbody > tr > td > img { + -webkit-filter: brightness(300%); + filter: brightness(300%); +} + +.checked > tbody > tr > td > table > tbody > tr > td > .togglemergecells, .checked > tbody > tr > td > table > tbody > tr > td > .setborderstyle { + -webkit-filter: none; + filter: none; +} + +/*drop-down menu*/ +.select2-container--default .select2-selection--single, +#toolbar-up .ui-combobox, +.ui-combobox.notebookbar, +#toolbar-down #LanguageStatus .unotoolbutton, +#toolbar-down #StateTableCellMenu .unotoolbutton, +#toolbar-down #zoom .unotoolbutton, +.sidebar.jsdialog.ui-listbox { + border-radius: var(--co-border-radius); +} + +.ui-combobox-button { + border-left: none; +} + +.ui-toolbar .unotoolbutton .arrowbackground { + border-top-color: #696969; +} + +.select2-container--default .select2-selection--single:hover, +.sidebar.jsdialog.ui-listbox:hover { + border: 1px solid #4c566a; +} + +/* select (arrow and radius)*/ +.select2-container--default .select2-selection--single .select2-selection__arrow b, +#toolbar-down #LanguageStatus .arrowbackground { + border-color: #696969 transparent transparent transparent; +} + +#toolbar-down #languagestatus label, +#zoom label { + color: var(--color-text-dark); +} + +.ui-toolbar .unotoolbutton { + border-radius: var(--co-border-radius); +} + +/*select----END---*/ +/*drop-down menu----END----*/ +#toolbar-top #sidebar > div > table, #toolbar-top #modifypage > div > table, #toolbar-top #slidechangewindow > div > table, #toolbar-top #customanimation > div > table, #toolbar-top #masterslidespanel > div > table { + background: none !important; +} + +#toolbar-top #sidebar .checked img, #toolbar-top #modifypage .checked img, #toolbar-top #slidechangewindow .checked img, #toolbar-top #customanimation .checked img, #toolbar-top #masterslidespanel .checked img { + -webkit-filter: none; + filter: none; +} + +#toolbar-top #sidebar > div > .unotoolbutton, +#toolbar-top #modifypage > div > .unotoolbutton, +#toolbar-top #slidechangewindow > div > .unotoolbutton, +#toolbar-top #customanimation > div > .unotoolbutton, +#toolbar-top #masterslidespanel > div > .unotoolbutton { + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; +} + +#toolbar-top #sidebar > div > .checked:not(.over), +#toolbar-top #modifypage > div > .checked:not(.over), +#toolbar-top #slidechangewindow > div > .checked:not(.over), +#toolbar-top #customanimation > div > .checked:not(.over), +#toolbar-top #masterslidespanel > div > .checked:not(.over) { + border-color: #fff; +} + +#icon-integrator-sidebar.icon-integrator-sidebar { + order: 90; + min-width: auto; + border: none; + border-radius: var(--co-border-radius); + flex-shrink: 0; + padding: 0; + margin-inline-end: 5px; +} +#icon-integrator-sidebar.icon-integrator-sidebar:hover { + cursor: pointer; + background-color: var(--color-background-darker) !important; + opacity: 1; +} +#icon-integrator-sidebar.icon-integrator-sidebar:focus, #icon-integrator-sidebar.icon-integrator-sidebar:focus-visible { + outline: 2px solid var(--color-primary); + outline-offset: -8px; +} + +#toolbar-wrapper:not(.hasnotebookbar) { + border-top: none; +} + +#toolbar-up .checked { + background-color: var(--co-primary-element); + border-color: transparent; + box-shadow: inset 0 0 1px 0 #696969; +} + +#toolbar-up .checked.over { + border-color: transparent; + box-shadow: inset 0 0 1px 0 #696969, inset 0 0 24px 1px var(--co-primary-element), inset 0 0 24px 24px #ffffff50; +} + +.w2ui-icon.fold, .w2ui-icon.unfold { + background-size: 16px !important; +} + +.cool-annotation-edit #annotation-save, +.leaflet-popup-content input[type=button] { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element-light); +} + +.cool-annotation-edit #annotation-save:hover, +.leaflet-popup-content input[type=button]:hover { + background-color: var(--co-primary-element-light); + border: 1px solid var(--co-primary-element-light); +} + +.cool-annotation-edit #annotation-cancel { + color: var(--co-color-main-text); + background-color: var(--co-color-background-dark); + border: 1px solid var(--co-color-background-dark); +} + +.cool-annotation-edit #annotation-cancel:hover { + background-color: var(--co-color-background-hover); +} + +.insertshape-grid .col:hover { + border: 1px solid var(--co-color-border-dark); +} + +.insertshape-grid .row-header { + background-color: var(--co-color-background-dark); +} + +#toolbar-wrapper:not(.mobile) ~ #toolbar-down { + min-height: 26px; + background-color: var(--co-color-background-light); +} + +.leaflet-zoom-animated:hover > path:nth-child(2) { + stroke: var(--co-primary-element) !important; + stroke-dasharray: 1; +} + +/**/ +#InsertMode.insert-mode-false { + background-color: var(--co-primary-element); + color: var(--co-primary-text); + border-radius: var(--co-border-radius); +} + +#PermissionMode.status-readonly-mode { + background-color: var(--co-color-warning); + border-radius: var(--co-border-radius); + color: var(--co-main-text); +} + +/**/ +#search-input.search-not-found { + border-color: #ba2323 !important; + background-color: #fac9c9 !important; +} + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: var(--co-primary-element); + color: var(--co-primary-text); +} + +#toolbar-down #zoom-button img { + display: none; +} + +/* Calc Spreadsheet styling*/ +.spreadsheet-tab { + background-color: transparent !important; + border-radius: var(--co-border-radius); + border-color: transparent !important; +} + +.spreadsheet-tab > div:not(.lock) { + border-bottom: 2px solid transparent; +} + +.spreadsheet-tab:hover > div:not(.lock) { + border-color: var(--color-border); +} + +.spreadsheet-tab:hover, .spreadsheet-tab:focus { + font-weight: border; + outline: none; +} + +.spreadsheet-tab.spreadsheet-tab-selected { + color: var(--color-main-text) !important; + font-weight: bold; + background-color: transparent !important; +} + +.spreadsheet-tab.spreadsheet-tab-selected > div:not(.lock) { + border-bottom-color: rgb(var(--doc-type)); +} + +#spreadsheet-tab-scroll button.spreadsheet-tab-selected:hover, +#spreadsheet-tab-scroll button.spreadsheet-tab-selected:focus { + outline: none; + font-weight: bold; + background-color: rgb(var(--doc-type)) !important; +} + +#tb_spreadsheet-toolbar_item_insertsheet { + padding-top: 2px; +} + +#InsertMode.insert-inactive { + /*will affect this proposal: https://bugs.collabora.com/show_bug.cgi?id=4291*/ + opacity: 0.6; +} + +input[type=checkbox].autofilter, .jsdialog input[type=checkbox] { + border-radius: 3px; + box-shadow: none !important; +} + +input[type=checkbox].autofilter:hover, .jsdialog input[type=checkbox]:hover { + box-shadow: inset 0px 0px 2px 2px var(--color-box-shadow), inset 0px 0px 0px 2px gray; +} + +input[type=checkbox]:checked.autofilter:hover, .jsdialog input[type=checkbox]:checked:hover { + box-shadow: 0px 0px 1px 2px var(--color-box-shadow); +} + +.jsdialog input[type=radio]:not(.ui-color-picker-entry) { + /*to be removed upon upstream merge */ + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + width: 25px; + height: 20px; + margin: 1px 8px; + /*-*/ +} + +#product-name.product-collabora-online { + color: #504999; +} + +#product-logo { + background-image: url("images/toolbar-bg-logo.svg"); + background-position: center 8px !important; +} + +#lokit-logo { + background: url("remote/static/lokit-extra-img.svg") center top/82px no-repeat; + display: flex; + flex-grow: 1; +} + +#about-dialog hr { + color: #A8D3E059; +} + +#about-dialog h3 { + color: var(--co-primary-element); +} + +#about-dialog { + overflow: visible; + overflow-wrap: initial; +} + +/*icons*/ +.lokdialog_container .ui-dialog-titlebar.ui-widget-header { + background: var(--color-main-background); + color: var(--color-main-text); + border: none; + font-family: sans-serif; + font-weight: normal; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.lokdialog_container.ui-dialog .ui-dialog-title { + margin-bottom: 0; +} + +.lokdialog_container.ui-dialog .ui-state-default { + background: none; + border: none; +} + +.lokdialog_container.ui-dialog .ui-dialog-titlebar-close:hover { + /*border: 1px solid #888888; + border-radius: base.get-cssvar(border-radius);*/ + border-radius: 12px; + background-image: radial-gradient(var(--co-primary-element) 60%, white 94%); + background-color: #4c566a; + /* fallback for ie11 */ + background-color: var(--co-primary-element); +} + +.leaflet-popup-content-wrapper { + box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + border-radius: var(--co-border-radius); +} + +.leaflet-control-layers { + box-shadow: shadow; + -moz-box-shadow: shadow; + -webkit-box-shadow: shadow; +} + +.leaflet-popup-content > table > tbody > tr > th:nth-child(2) { + padding-left: 0px !important; +} + +.leaflet-popup-selected > td:nth-child(4) { + color: white; + background-color: #8C86BC; +} + +.leaflet-popup-selected > td:nth-child(2) { + padding-left: 1px; + border-left: 1px solid #8C86BC; +} + +.leaflet-popup-selected > td:last-child { + padding-right: 1px; + border-right: 1px solid #8C86BC; +} + +.leaflet-popup-selected > td { + border-bottom: 1px solid #8C86BC; + border-top: 1px solid #8C86BC; +} + +.leaflet-popup-content > span { + padding-left: 4px; + color: var(--co-primary-element); + text-transform: uppercase; + font-family: sans-serif; +} + +.leaflet-popup-content tr:first-of-type:hover { + background: none !important; + cursor: auto; +} + +.leaflet-popup-selected { + background-color: white !important; + color: #504999; + border-color: #4c566a !important; +} + +.leaflet-popup-content > table > tbody > tr > th:nth-child(6) { + padding-right: 0px !important; +} + +.leaflet-popup-content input[type=button] { + border-radius: var(--co-border-radius); + height: 32px; + line-height: 0em; +} + +*:not(.modalpopup) > .lokdialog_container.ui-dialog.ui-widget-content, .autofilter-container { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.iframe-dialog-modal { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.ui-widget-header, .lokdialog.ui-dialog-content.ui-widget-content { + border-radius: var(--co-border-radius) !important; +} + +form:not(.snackbar) > .lokdialog.ui-dialog-content.ui-widget-content { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.main-nav { + box-sizing: border-box; +} + +html:not([data-theme=dark]) body { + color: var(--co-color-main-text); + background: var(--co-body-bg); +} + +html:not([data-theme=dark]) body #settingIframe { + color: var(--co-settings-text) !important; + background: var(--co-settings-background) !important; +} + +.leaflet-container { + background: #f8f9fa; +} + +#document-container { + border-color: #e6e6e6 !important; +} + +.jsdialog:focus-visible { + outline: 1px solid var(--co-primary-element); +} + +.jsdialog input[type=checkbox]:focus-visible { + outline: 1px solid #005ebd; + outline-offset: -1px; +} diff --git a/usr/share/coolwsd/browser/dist/branding.js b/usr/share/coolwsd/browser/dist/branding.js new file mode 100644 index 0000000..9453ca3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/branding.js @@ -0,0 +1,52 @@ +FORBION + +var brandProductName = 'Collabora Online Development Edition (CODE)'; +var brandProductURL = 'https://www.collaboraonline.com/code/'; +var brandProductFAQURL = 'https://www.collaboraonline.com/code/#code-scalability'; +var menuItems; +window.onload = function() { + // wait until the menu (and particularly the document-header) actually exists + function setLogo() { + var logoHeader = document.getElementById('document-header'); + if (!logoHeader) { + // the logo does not exist in the menu yet, re-try in 250ms + setTimeout(setLogo, 250); + } else { + var logo = $('#document-header > div'); + logo.get(0).setAttribute('data-cooltip', brandProductName); + logo.off('click').on('click', function() { window.open(brandProductURL, '_blank'); }); + + menuItems = document.querySelectorAll('#main-menu > li > a'); + } + } + function setAboutImg() { + var lk = document.getElementById('lokit-version'); + var aboutDialog = document.getElementById('about-dialog-info'); + if (!lk || !aboutDialog) { + setTimeout(setAboutImg, 250); + } + } + + function addIntegratorSidebar() { + var logoHeader = document.getElementById('document-header'); + if (!logoHeader) { + // the logo does not exist in the menu yet, re-try in 250ms + setTimeout(addIntegratorSidebar, 250); + } + } + + + setLogo(); + setAboutImg(); + addIntegratorSidebar(); +} + +/*a::first-letter"*/ +document.onkeyup = function(e) { + if (e.altKey && e.shiftKey) { + console.log('alt + shift + f'); + menuItems.forEach(function(menuItem) { + menuItem.style.setProperty('text-decoration', 'underline', 'important'); + }); + } +}; diff --git a/usr/share/coolwsd/browser/dist/cool.html b/usr/share/coolwsd/browser/dist/cool.html new file mode 100644 index 0000000..2acb798 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/cool.html @@ -0,0 +1,238 @@ + + +Online Editor + + + %BROWSER_VIEWPORT% + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+ + + + + +
+
+
+ + + +
+
+ +

F7 Office

+
+
+
+
+ + +
+
+
+
+
+
+
+
+
  
+
+ +
+
+
%WOPI_HOST_ID%
+

Copyright © 2025, F7 Office.

+
+
+
+
+
+ + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css b/usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css new file mode 100644 index 0000000..5733cfd --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/branding-desktop.css @@ -0,0 +1,6 @@ +FORBION + +.text-selection-handle-start, +.text-selection-handle-end { + display: none; +} diff --git a/usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css b/usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css new file mode 100644 index 0000000..cae69b2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/branding-mobile.css @@ -0,0 +1,1310 @@ +FORBION + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --nc-color-primary-element: var(--nc-light-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-light-color-primary-element-light, var(--co-primary-light)); + --nc-color-primary-element-hover: var(--nc-light-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-light-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-light-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-light-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-light-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-light-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --native-font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen-Sans, Ubuntu, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; + --background-notebookbar: #fff; + --opacity-icon: 1; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --opacity-icon-disabled: 0.5; + --blue1-txt-primary-color: 3, 105, 163; + --green0-txt-primary-color: 16, 104, 2; + /*green1 lacks contrast against white*/ + --orange1-txt-primary-color: 163, 62, 3; + --yellow0-txt-primary-color: 135, 105, 0; + /*yellow1 lacks contrast against white*/ + --gray-light-txt--color: #696969; + --gray-light-bg-color: #EFEFEF; + --gray-color: #b6b6b6; + --color-main-text: #333333; + --color-text-dark: #333333; + /* select */ + --color-text-darker: #000; + /* hover */ + --color-text-lighter: #696969; + --color-background-dark: #F7F7F7; + /* select */ + --color-background-darker: #e4e4e4; + /* hover */ + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #b6b6b6; + --color-border-dark: #555; + /* select */ + --color-border-lighter: #b6b6b6; + --color-error: #e9322d; + --color-warning: #eca700; + --color-success: #46ba61; + --cool-font: var(--native-font-stack); + --mobile-font: var(--native-font-stack); + --jquery-ui-font: var(--native-font-stack); + --docs-font: var(--native-font-stack); + --docs--pre-font: "Consolas","Menlo","Lucida Console","Courier New",monospace; + --default-font-size: 15px; + --header-font-size: 15px; + --border-radius: 3px; + --border-radius-large: 10px; + --header-height: 49px; + --co-color-background-light: var(--color-main-background) !important; + --co-image-logo: url("images/toolbar-bg-logo.svg"); + --co-color-background-hover: #e4e4e4 !important; + --co-primary-element-light: var(--nc-color-primary-element) !important; + --co-primary-text: var(--nc-color-primary-element-text) !important; + --ruler-height: 14px; + --co-primary-invert-if-dark: invert(1); +} + +:root [data-doctype=text] { + --doc-type: 24, 90, 189; + --doc-type-darker: 15, 58, 121; +} + +:root [data-doctype=spreadsheet] { + --doc-type: 16, 124, 65; + --doc-type-darker: 7, 56, 29; +} + +:root [data-doctype=presentation] { + --doc-type: 196, 62, 28; + --doc-type-darker: 129, 41, 18; +} + +:root [data-doctype=drawing] { + --doc-type: 142, 115, 16; + --doc-type-darker: 73, 59, 8; +} + +:root .writer-icon-img { + background-image: url("images/x-office-document.svg"); +} + +:root .calc-icon-img { + background-image: url("images/x-office-spreadsheet.svg"); +} + +:root .impress-icon-img { + background-image: url("images/x-office-presentation.svg"); +} + +:root .draw-icon-img { + background-image: url("images/x-office-drawing.svg"); +} + +[data-theme=dark] { + --nc-color-primary-element: var(--nc-dark-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-dark-color-primary-element-light, var(--co-primary-element-light)); + --nc-color-primary-element-hover: var(--nc-dark-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-dark-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-dark-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-dark-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-dark-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-dark-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --background-notebookbar: #101010; + --opacity-icon: 0.8; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --color-main-text: #fff; + --color-text-dark: #ddd; + /* select */ + --color-text-darker: #ccc; + /* hover */ + --color-text-lighter: #ddd; + --color-canvas: #171717; + --color-main-background: #171717; + --color-background-dark: #444; + /* select */ + --color-background-darker: #555; + /* hover */ + --color-background-lighter: #333; + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #696969; + --color-border-dark: #959595; + /* select */ + --color-border-lighter: #f1f1f1; + --co-body-bg: var(--color-canvas) !important; + --co-color-background-light: var(--color-main-background) !important; + --co-color-main-text: #fff !important; + --co-color-background-hover: #444 !important; + --co-color-background-dark: #111 !important; +} + +input[type=checkbox].autofilter, .jsdialog input[type=checkbox] { + border: none !important; +} + +.jsdialog-window.modalpopup[role=dialog] { + border-color: transparent !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] { + border: none !important; + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-box-shadow) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button { + border-radius: 100px !important; + cursor: pointer; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.ui-pushbutton:not(.button-primary, [id^=modal-dialog-][id$=yesbutton]) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton] { + border: none !important; + color: var(--color-primary-text) !important; + background-color: var(--nc-color-primary-element) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary:hover, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton]:hover { + background-color: var(--nc-color-primary-element-hover) !important; + color: var(--nc-color-primary-element-text) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container { + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-border) !important; + border: none !important; + overflow: hidden !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar { + padding: 0; + min-height: 44px; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +[data-theme=dark] .jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab { + border-radius: var(--border-radius-large); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-toggle.checked button, +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab.selected.jsdialog { + box-shadow: none !important; + background-color: var(--nc-color-primary-element) !important; + color: var(--nc-color-primary-element-text) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button) { + border-radius: 100px !important; + cursor: pointer; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary { + color: var(--color-primary-text); + background-color: var(--nc-color-primary-element); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary:hover { + background-color: var(--nc-color-primary-element-hover); + color: var(--nc-color-primary-element-text); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).ui-pushbutton:not(.button-primary) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button)[id^=remove].ui-pushbutton.has-img { + background-color: transparent !important; +} + +.ui-toggle button { + border-radius: 100px !important; +} + +.sidebar.has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +.sidebar.has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} + +.sidebar.ui-expander-label { + font-size: var(--default-font-size); + font-weight: normal; +} + +.sidebar.ui-expander-container { + margin-bottom: 20px; +} + +.jsdialog.ui-expander { + border: none !important; + box-shadow: none !important; +} + +#closebuttonwrapper { + top: 3px; + width: 34px; + height: 34px !important; +} + +[data-theme=dark] #closebuttonwrapper #closebutton { + filter: invert(1) !important; +} + +#closebuttonwrapper #closebutton:hover { + background-color: transparent !important; +} + +#closebuttonwrapper:hover { + border-radius: 8px; + background-color: var(--color-background-darker); + cursor: pointer; + opacity: var(--opacity-icon-hover); +} + +html body { + background-color: var(--color-canvas) !important; +} + +body #document-header { + margin: 0; + border: none; + display: inline-flex; + width: 46px; + padding-inline-start: 12px; + border: none !important; + background: none !important; + border-radius: 0; +} + +body #document-header .document-logo { + background-repeat: no-repeat !important; + background-size: contain !important; + background-position: center !important; + width: 40px !important; + height: 20px !important; +} + +body #document-header { + padding-inline: 7px 0px; +} + +#document-name-input, +#document-name-input.editable, +#document-name-input.editable:not(:focus) #document-name-input.editable:focus { + text-align: center !important; + font-weight: bold; + font-size: var(--default-font-size) !important; + color: var(--co-color-main-text); + animation: none !important; + box-shadow: none !important; + background: transparent !important; + height: 100% !important; + border-radius: 10px !important; + /* For older NC */ + border-radius: var(--vs-border-radius, var(--border-radius-large)) !important; + border: 1px solid transparent !important; +} + +#document-name-input.editable:not(:focus) { + color: var(--color-text-lighter); + text-align: left; + font-size: var(--default-font-size) !important; +} + +#document-name-input.editable:hover { + color: var(--color-text-lighter); + border-color: var(--color-border) !important; + flex: none; +} + +#document-name-input.editable:focus { + color: var(--co-color-main-text); + flex: none; + border: 1px solid var(--color-border-darker); +} + +nav:not(.hasnotebookbar) { + /** Menu */ +} + +nav:not(.hasnotebookbar).main-nav { + background-color: var(--color-main-background); + height: 44px; + padding: 0; + align-items: center; + /** Document name input */ +} + +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + position: absolute; + width: auto; + left: 50%; + z-index: 1200; + } +} +@media screen and (max-width: 1045px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + display: none; + } +} +nav:not(.hasnotebookbar) .lo-menu > li > a, nav:not(.hasnotebookbar) .lo-menu > li > a.has-submenu { + border-radius: 0; + border-bottom: 0; + border: none; +} + +nav:not(.hasnotebookbar) .lo-menu li:last-child .separator { + display: none; +} + +nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator), nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator):hover { + padding: 12px 22px; +} + +nav:not(.hasnotebookbar) #main-menu { + width: 100%; + height: auto; + display: flex; +} + +nav:not(.hasnotebookbar) #main-menu .sm-nowrap { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +nav:not(.hasnotebookbar) #main-menu > li > a { + padding: 8px !important; +} + +nav:not(.hasnotebookbar) #main-menu-state:not(:checked) ~ #main-menu { + display: flex !important; +} + +nav:not(.hasnotebookbar) #menu-last-mod { + opacity: 0.7; +} + +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar) #menu-last-mod { + text-align: right; + display: flex; + justify-content: end; + flex-grow: 1; + } +} +nav:not(.hasnotebookbar) #menu-last-mod > a, nav:not(.hasnotebookbar) #menu-last-mod > a span { + text-decoration: none; + color: var(--color-text-lighter); +} + +nav:not(.hasnotebookbar) #menu-last-mod > a:hover, nav:not(.hasnotebookbar) #menu-last-mod > a:hover span { + text-decoration: none; + background-color: transparent; + color: var(--co-color-text); +} + +/** Icon toolbar */ +#toolbar-wrapper:not(.hasnotebookbar) { + background-color: var(--color-main-background); +} + +#toolbar-up { + top: 0px; +} + +#toolbar-up .checked.over { + border: 0 !important; + box-shadow: none !important; +} + +html:not([data-theme=dark]) #toolbar-down .unobutton.over * { + color: #444 !important; +} + +#toolbar-down .ui-separator { + opacity: 0.2; +} + +.ui-content .unobutton.selected ~ .arrowbackground .unoarrow { + border-top-color: var(--color-main-text) !important; +} + +.arrowbackground:hover .unoarrow, +.arrowbackground .unoarrow:hover { + border-top-color: --color-text-darker !important; +} + +#toolbar-wrapper .ui-scroll-left, +#toolbar-wrapper .ui-scroll-right { + background-origin: padding-box; + background-clip: border-box; + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, white 30%, white 100%); + background-position: 3px center, center center; + width: 44px; + background-size: 24px, cover; + top: 0px; + right: 0px; + margin: 0px; + padding: 0px; + border-radius: 5px; + overflow: hidden; + box-shadow: none; + background-color: transparent; +} + +[data-theme=dark] #toolbar-wrapper .ui-scroll-left, +[data-theme=dark] #toolbar-wrapper .ui-scroll-right { + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(0, 0, 0, 0) 0%, black 30%, black 100%); +} + +#document-titlebar > .document-title { + gap: 0; +} + +.unotoolbutton:hover * { + cursor: pointer; +} + +#document-container:not(.mobile) + #sidebar-dock-wrapper { + width: auto; + max-width: 380px; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper, +#navigation-sidebar { + box-shadow: none; + outline: none; + padding: 13px; +} + +#navigation-sidebar { + padding: 5px; +} + +#navigator-dock-wrapper { + border: none; +} + +#navigator-floating-icon { + background: transparent !important; +} + +[data-theme=dark] #navigator-dock-wrapper img { + filter: invert(1) hue-rotate(180deg) !important; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper .deck:not([id=NavigatorDeck]) { + padding-top: 13px; +} + +.jsdialog.ui-listbox { + border: 1px solid var(--co-border); + background-color: var(--color-main-background); +} + +#sidebar-panel td.jsdialog .jsdialog.cell.sidebar { + padding: 4px 1px; + width: auto; +} + +.arrowbackground, +.arrowbackground:hover { + border: 0; +} + +/** Required since regular branding overwrites those with high specifity */ +#tb_editbar_item_linespacing > div > table, #tb_editbar_item_insertshapes > div > table, #tb_editbar_item_fontcolor > div > table, #tb_editbar_item_backcolor > div > table, #tb_editbar_item_inserttable > div > table, +#tb_editbar_item_linespacing > div > .checked, #tb_editbar_item_insertshapes > div > .checked, #tb_editbar_item_fontcolor > div > .checked, #tb_editbar_item_backcolor > div > .checked, #tb_editbar_item_inserttable > div > .checked { + border: 0 !important; +} + +/** Hide the menu bar folding icon */ +#tb_editbar_item_fold { + display: none; +} + +#clearFormatting:hover { + border-color: var(--co-border) !important; +} + +/** Fromulabar */ +#formulabar > div > div { + grid-gap: 4px; +} + +/** Notebook bar */ +#toolbar-wrapper.hasnotebookbar { + border-collapse: initial; + border-radius: 5px; + margin: 0 10px; + width: calc(100vw - 20px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + background-color: var(--background-notebookbar); + border-color: transparent; +} + +[data-theme=dark] #toolbar-wrapper.hasnotebookbar { + box-shadow: 0 2px 1px black; +} + +#toolbar-wrapper.hasnotebookbar.spreadsheet { + margin-bottom: 10px; +} + +#toolbar-wrapper.hasnotebookbar.spreadsheet #formulabar { + padding: 2px; + border-radius: 5px; + border-color: transparent; +} + +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus, #toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus-visible { + outline: 2px solid var(--color-primary) !important; +} + +#toolbar-wrapper.hasnotebookbar .has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +#toolbar-wrapper.hasnotebookbar .has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} + +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.disabled):hover .unolabel { + color: var(--color-main-text); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar { + margin-inline-end: 0 !important; +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar .unolabel { + font-size: var(--default-font-size); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button { + cursor: not-allowed; +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled img, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button img { + opacity: var(--opacity-icon-disabled); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.selected:hover { + border-color: rgb(var(--doc-type)) !important; +} + +#toolbar-wrapper.hasnotebookbar #stylesview { + padding: 2px; +} + +#toolbar-wrapper.hasnotebookbar #stylesview-btn div { + padding: 0px 2px !important; +} + +[data-theme=dark] .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline) { + border-color: rgb(var(--doc-type)); +} + +.navigator-btn-wrapper:hover { + background-color: var(--co-color-background-hover) !important; +} + +.notebookbar .ui-content.unobutton:hover, .jsdialog .ui-content.unobutton:hover { + background-color: transparent; +} + +.ui-treeview-entry.selected, +.ui-listview-entry.selected { + background-color: var(--nc-color-primary-element-light); +} + +nav.main-nav { + border-top: 8px solid rgb(var(--doc-type)); + background-color: var(--color-canvas) !important; +} + +nav.main-nav #save::after { + font-size: 12px !important; +} + +nav.main-nav #main-menu.readonly { + flex-grow: 1; +} + +nav.main-nav #main-menu.readonly.lo-menu > li > a, nav.main-nav #main-menu.readonly .lo-menu > li > a.has-submenu { + border-color: transparent !important; +} + +nav.main-nav .notebookbar-tabs-container { + margin-left: 5px; + flex-grow: 1; + flex-shrink: 1; + background-image: none; +} + +nav.main-nav .notebookbar-tabs-container::before, nav.main-nav .notebookbar-tabs-container::after { + display: none; +} + +nav.main-nav .ui-tabs.notebookbar { + background-color: transparent; + border-radius: 0; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav .ui-tab.selected { + display: grid !important; +} + +nav.main-nav { + height: 47px; +} + +nav.main-nav .ui-tab.notebookbar { + height: 47px; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav.main-nav.hasnotebookbar #document-header { + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav .notebookbar-options-section { + right: 44px !important; + height: auto !important; +} + +nav.main-nav #table-shortcutstoolbox { + display: none; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar { + color: var(--color-text-lighter); + background-color: transparent !important; + text-shadow: none; + padding-top: 3px; + padding-bottom: 2px; + display: grid; + grid-auto-flow: column; + grid-template-columns: 1fr auto auto; + align-content: center; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar::after { + content: ""; + height: 2px; + background-color: transparent; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected { + grid-auto-flow: row; + border: 0 !important; + box-shadow: none !important; + outline: none !important; + color: var(--co-color-main-text); + background-color: transparent; + font-weight: bold; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected::after { + content: ""; + height: 2px; + background-color: rgb(var(--doc-type)); + grid-column: 1/4; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar:hover { + color: var(--co-color-main-text); + background-color: transparent; +} + +@media screen and (max-width: 1072px) { + nav.main-nav #document-titlebar { + display: none !important; + } +} +.spreadsheet-tabs-container .spreadsheet-tab { + font: var(--default-font-size) var(--cool-font) !important; +} + +.spreadsheet-header-row, +.spreadsheet-header-column { + border-color: transparent; +} + +/** UI Widget */ +.lokdialog_container.ui-dialog.ui-widget-content { + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.ui-dialog .ui-dialog-titlebar { + padding: 0; +} + +.ui-dialog .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +[data-theme=dark] .ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} + +/** Global menu styling */ +.sm-nowrap { + border-radius: 5px; + border: 0; + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.lo-menu a:hover:not(.disabled), .lo-menu a:focus, .lo-menu a:active, .lo-menu a.highlighted { + background-color: var(--co-color-background-hover); + color: var(--color-main-text); +} + +.lo-menu:not(#main-menu) a:not(.separator):hover { + background-color: var(--co-border); + color: var(--color-main-text); + border-radius: 4px; +} + +.main-nav:not(.spreadsheet-color-indicator) ~ .context-menu-list { + margin: 0; +} + +.context-menu-list { + border-radius: 3px; + padding: 0; +} + +.context-menu-list .context-menu-item:not(.context-menu-separator) { + padding: 8px 14px; + font-size: var(--default-font-size); +} + +.context-menu-list .context-menu-icon::before { + visibility: hidden; +} + +.context-menu-list .context-menu-item.context-menu-icon-radio { + background-color: var(--co-primary-element-light); +} + +.context-menu-list .context-menu-item.context-menu-icon-radio a { + color: var(--co-primary-light); +} + +.context-menu-list .context-menu-item.context-menu-icon-radio.context-menu-hover { + background-color: var(--co-primary-element-light) !important; + box-shadow: inset 0 0 0 25px rgba(0, 0, 0, 0.1); + /* Adjust the alpha value to control the darkness */ +} + +/** Cursor style */ +.leaflet-cursor-container .leaflet-cursor-header { + font-family: var(--cool-font); + font-size: 13px; + border-radius: 3px; + margin-left: -3px; + margin-top: -18px; + padding: 3px 5px; + height: 15px; +} + +/** Inactive document modal style */ +#inactive_user_message::before { + background-image: url("images/lc_watch_later_branding.svg"); + display: block; + content: ""; + width: 3rem; + height: 3rem; + background-size: cover; + margin: 0 auto 20px; + opacity: var(--opacity-icon); +} + +#inactive_user_message { + color: var(--co-color-main-text) !important; + padding: 1em; + box-sizing: border-box; +} + +/** About Dialog **/ +#integrator-logo { + flex-grow: 1 !important; + background: url("images/toolbar-bg-logo.svg") no-repeat center/128px; + width: 128px; +} + +#product-name { + justify-content: left !important; + color: var(--color-primary) !important; +} + +#product-logo, #lokit-logo { + background-position: center !important; + flex-grow: 1; +} + +#product-logo { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMzkiCiAgIGhlaWdodD0iMzkiCiAgIHZpZXdCb3g9IjAgMCA4LjAgMTAuMzE4NzUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzY0MTciCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMiAoNWMzZTgwZCwgMjAxNy0wOC0wNikiCiAgIHNvZGlwb2RpOmRvY25hbWU9InRvb2xiYXItYmctZm9udC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM2NDExIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxMS4yIgogICAgIGlua3NjYXBlOmN4PSIzNy4xMTYwNzIiCiAgICAgaW5rc2NhcGU6Y3k9IjM3LjExNjA3MiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTk4MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxOTgyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE2NDE0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yODYuNjgxMjMpIj4KICAgIDxwb2x5Z29uCiAgICAgICBpZD0icG9seWdvbjE0IgogICAgICAgcG9pbnRzPSIxNy45MTQsNDQuODkzIDE3LjM1OCw0NC4zODYgMTcuMjU4LDIwLjcxOCAxNy43NzIsMjAuMTcyIDMwLjk1OCwzMi41OTkgIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiM1YzI5ODM7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjE2IgogICAgICAgcG9pbnRzPSIzMC45NTgsMzIuNTk5IDMwLjM3OSwzMy4xNDUgMTcuOTE0LDQ0Ljg5MyAyOC42NTQsNTUuNjM4IDUxLjc0MiwzMi41NSAyOC41NjEsOS4zNjIgMTcuNzYzLDIwLjE2MiAxNy43NzIsMjAuMTcyIDMwLjM3OSwzMi4wNTMgIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yMjE3ODM0OCwwLDAsMC4yMjE3ODM0OCwtMy44MDE4MjI5LDI4NC42MjU4MSkiIC8+CiAgICA8cG9seWdvbgogICAgICAgaWQ9InBvbHlnb24xOCIKICAgICAgIHBvaW50cz0iMjkuODY0LDMyLjU5OSAxNy4zNTgsNDQuMzg2IDE3LjI1OCwyMC43MTggIgogICAgICAgc3R5bGU9ImZpbGw6I2M4YzhjOCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiMyZDBiNDc7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjIwIgogICAgICAgcG9pbnRzPSIzMS44NDcsNDEuNDgzIDI3Ljc0MywzNS42MjggMTguODA3LDQ0LjA1MiAiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjIyMTc4MzQ4LDAsMCwwLjIyMTc4MzQ4LC0zLjgwMTgyMjksMjg0LjYyNTgxKSIgLz4KICA8L2c+Cgo8IS0tIChDKSBDb2xsYWJvcmEgUHJvZHVjdGl2aXR5IDIwMjAsIEFsbCBSaWdodHMgUmVzZXJ2ZWQgLS0+Cjwvc3ZnPg==") !important; +} + +#integrator-logo, #about-dialog-logos { + flex-basis: 256px; + max-width: 256px; +} + +.leaflet-progress-spinner::before { + background-position: center !important; + height: 94px !important; +} + +#mobile-wizard.menuwizard { + z-index: 1003; +} + +#toolbar-wrapper.mobile > tbody > tr { + height: 100%; +} + +#toolbar-down #search-input { + border-color: var(--color-border) !important; +} + +#toolbar-down #search-input:hover { + border-color: var(--color-border-dark) !important; +} + +#shareas .unolabel { + color: var(--color-text-lighter); +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +.ui-toolbar .unotoolbutton img { + margin: 1px; +} + +.logo { + background-size: 100px; + max-width: 24px; + max-height: 31px; + top: 0; +} + +#toolbar-logo { + width: 0px !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +#toolbar-hamburger.menuwizard-opened { + background-color: var(--co-color-background-dark) !important; +} + +.ui-scroll-left, .ui-scroll-right { + box-shadow: 4px 0 13px 2px var(--co-primary-element), -6px 0 6px 6px var(--co-primary-element) !important; +} + +/*avoid scroll indicators to be above other items*/ +#PermissionMode.status-readonly-mode { + background-color: transparent; + color: var(--co-color-text-lighter); +} + +#mobile-edit-button { + background-color: var(--co-primary-element) !important; +} + +#toolbar-down .unotoolbutton.selected { + border: 1px solid var(--co-primary-text) !important; + background: linear-gradient(to right, #fff 20%, #fff0 20%) no-repeat, linear-gradient(to left, #fff 20%, #fff0 20%) no-repeat, linear-gradient(transparent 94%, var(--co-primary-element) 94%); + background-color: transparent !important; +} + +.spreadsheet-tab { + padding-bottom: 4px !important; + padding-top: 5px !important; +} + +#mobile-wizard button, +#mobile-wizard #FontworkSameLetterHeights { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element); +} + +#mobile-wizard-titlebar { + color: var(--co-color-text-lighter); +} + +.ui-tab.selected.mobile-wizard { + color: var(--co-primary-element); + border-bottom: 1px solid var(--co-primary-element); +} + +.ui-tab.mobile-wizard { + color: var(--co-color-text-lighter); +} + +div#mobile-wizard-content .spinfieldcontainer { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.spinfieldcontrols { + background-color: var(--co-color-background-dark); + border-left: 1px solid var(--co-color-border-dark); +} + +.plus { + border-left: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.minus { + border-right: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.spinfieldunit { + color: var(--co-color-text-lighter) !important; +} + +.colors-container-selected-basic-color { + box-shadow: 0 2px 3px -2px var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.color-sample-small { + border-color: var(--co-body-bg); +} + +.color-sample-big { + box-shadow: 0px 0px 0px 1px var(--co-color-background-dark), 1px 1px 0 3px var(--co-body-bg); +} + +.menu-entry-icon { + background: var(--co-color-main-background-translucent); +} + +#mobile-wizard-content #commands.selected { + border-color: var(--co-primary-element); +} + +#mobile-wizard .cool-annotation-reply-count { + margin-inline-end: 32px !important; +} + +#mobile-wizard .ui-content.unobutton.selected { + box-shadow: 0 0 0px 6px var(--color-background-darker) !important; + background-color: var(--color-background-darker) !important; +} + +#lokit-version ~ p { + margin: 0; +} + +#about-dialog-header { + flex-flow: column; + align-items: center; +} + +#about-dialog-logos { + flex-basis: 62px; + max-width: 168px; +} + +#about-dialog-logos * { + background-position: left top; +} + +#product-logo { + flex-grow: 0.8; + background-position: center top !important; +} + +#product-name { + justify-content: center !important; +} + +#lokit-logo { + flex-grow: 1; + background-position: center 6px !important; +} + +#integrator-logo { + width: 128px; + max-height: 128px; + flex-basis: 64px; +} diff --git a/usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css b/usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css new file mode 100644 index 0000000..e77a5bf --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/branding-tablet.css @@ -0,0 +1,1303 @@ +FORBION + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --nc-color-primary-element: var(--nc-light-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-light-color-primary-element-light, var(--co-primary-light)); + --nc-color-primary-element-hover: var(--nc-light-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-light-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-light-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-light-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-light-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-light-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --native-font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen-Sans, Ubuntu, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; + --background-notebookbar: #fff; + --opacity-icon: 1; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --opacity-icon-disabled: 0.5; + --blue1-txt-primary-color: 3, 105, 163; + --green0-txt-primary-color: 16, 104, 2; + /*green1 lacks contrast against white*/ + --orange1-txt-primary-color: 163, 62, 3; + --yellow0-txt-primary-color: 135, 105, 0; + /*yellow1 lacks contrast against white*/ + --gray-light-txt--color: #696969; + --gray-light-bg-color: #EFEFEF; + --gray-color: #b6b6b6; + --color-main-text: #333333; + --color-text-dark: #333333; + /* select */ + --color-text-darker: #000; + /* hover */ + --color-text-lighter: #696969; + --color-background-dark: #F7F7F7; + /* select */ + --color-background-darker: #e4e4e4; + /* hover */ + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #b6b6b6; + --color-border-dark: #555; + /* select */ + --color-border-lighter: #b6b6b6; + --color-error: #e9322d; + --color-warning: #eca700; + --color-success: #46ba61; + --cool-font: var(--native-font-stack); + --mobile-font: var(--native-font-stack); + --jquery-ui-font: var(--native-font-stack); + --docs-font: var(--native-font-stack); + --docs--pre-font: "Consolas","Menlo","Lucida Console","Courier New",monospace; + --default-font-size: 15px; + --header-font-size: 15px; + --border-radius: 3px; + --border-radius-large: 10px; + --header-height: 49px; + --co-color-background-light: var(--color-main-background) !important; + --co-image-logo: url("images/toolbar-bg-logo.svg"); + --co-color-background-hover: #e4e4e4 !important; + --co-primary-element-light: var(--nc-color-primary-element) !important; + --co-primary-text: var(--nc-color-primary-element-text) !important; + --ruler-height: 14px; + --co-primary-invert-if-dark: invert(1); +} + +:root [data-doctype=text] { + --doc-type: 24, 90, 189; + --doc-type-darker: 15, 58, 121; +} + +:root [data-doctype=spreadsheet] { + --doc-type: 16, 124, 65; + --doc-type-darker: 7, 56, 29; +} + +:root [data-doctype=presentation] { + --doc-type: 196, 62, 28; + --doc-type-darker: 129, 41, 18; +} + +:root [data-doctype=drawing] { + --doc-type: 142, 115, 16; + --doc-type-darker: 73, 59, 8; +} + +:root .writer-icon-img { + background-image: url("images/x-office-document.svg"); +} + +:root .calc-icon-img { + background-image: url("images/x-office-spreadsheet.svg"); +} + +:root .impress-icon-img { + background-image: url("images/x-office-presentation.svg"); +} + +:root .draw-icon-img { + background-image: url("images/x-office-drawing.svg"); +} + +[data-theme=dark] { + --nc-color-primary-element: var(--nc-dark-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-dark-color-primary-element-light, var(--co-primary-element-light)); + --nc-color-primary-element-hover: var(--nc-dark-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-dark-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-dark-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-dark-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-dark-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-dark-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --background-notebookbar: #101010; + --opacity-icon: 0.8; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --color-main-text: #fff; + --color-text-dark: #ddd; + /* select */ + --color-text-darker: #ccc; + /* hover */ + --color-text-lighter: #ddd; + --color-canvas: #171717; + --color-main-background: #171717; + --color-background-dark: #444; + /* select */ + --color-background-darker: #555; + /* hover */ + --color-background-lighter: #333; + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #696969; + --color-border-dark: #959595; + /* select */ + --color-border-lighter: #f1f1f1; + --co-body-bg: var(--color-canvas) !important; + --co-color-background-light: var(--color-main-background) !important; + --co-color-main-text: #fff !important; + --co-color-background-hover: #444 !important; + --co-color-background-dark: #111 !important; +} + +input[type=checkbox].autofilter, .jsdialog input[type=checkbox] { + border: none !important; +} + +.jsdialog-window.modalpopup[role=dialog] { + border-color: transparent !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] { + border: none !important; + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-box-shadow) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button { + border-radius: 100px !important; + cursor: pointer; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.ui-pushbutton:not(.button-primary, [id^=modal-dialog-][id$=yesbutton]) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton] { + border: none !important; + color: var(--color-primary-text) !important; + background-color: var(--nc-color-primary-element) !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary:hover, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton]:hover { + background-color: var(--nc-color-primary-element-hover) !important; + color: var(--nc-color-primary-element-text) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container { + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-border) !important; + border: none !important; + overflow: hidden !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar { + padding: 0; + min-height: 44px; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +[data-theme=dark] .jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab { + border-radius: var(--border-radius-large); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-toggle.checked button, +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab.selected.jsdialog { + box-shadow: none !important; + background-color: var(--nc-color-primary-element) !important; + color: var(--nc-color-primary-element-text) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button) { + border-radius: 100px !important; + cursor: pointer; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary { + color: var(--color-primary-text); + background-color: var(--nc-color-primary-element); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary:hover { + background-color: var(--nc-color-primary-element-hover); + color: var(--nc-color-primary-element-text); +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).ui-pushbutton:not(.button-primary) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button)[id^=remove].ui-pushbutton.has-img { + background-color: transparent !important; +} + +.ui-toggle button { + border-radius: 100px !important; +} + +.sidebar.has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +.sidebar.has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} + +.sidebar.ui-expander-label { + font-size: var(--default-font-size); + font-weight: normal; +} + +.sidebar.ui-expander-container { + margin-bottom: 20px; +} + +.jsdialog.ui-expander { + border: none !important; + box-shadow: none !important; +} + +#closebuttonwrapper { + top: 3px; + width: 34px; + height: 34px !important; +} + +[data-theme=dark] #closebuttonwrapper #closebutton { + filter: invert(1) !important; +} + +#closebuttonwrapper #closebutton:hover { + background-color: transparent !important; +} + +#closebuttonwrapper:hover { + border-radius: 8px; + background-color: var(--color-background-darker); + cursor: pointer; + opacity: var(--opacity-icon-hover); +} + +html body { + background-color: var(--color-canvas) !important; +} + +body #document-header { + margin: 0; + border: none; + display: inline-flex; + width: 46px; + padding-inline-start: 12px; + border: none !important; + background: none !important; + border-radius: 0; +} + +body #document-header .document-logo { + background-repeat: no-repeat !important; + background-size: contain !important; + background-position: center !important; + width: 40px !important; + height: 20px !important; +} + +body #document-header { + padding-inline: 7px 0px; +} + +#document-name-input, +#document-name-input.editable, +#document-name-input.editable:not(:focus) #document-name-input.editable:focus { + text-align: center !important; + font-weight: bold; + font-size: var(--default-font-size) !important; + color: var(--co-color-main-text); + animation: none !important; + box-shadow: none !important; + background: transparent !important; + height: 100% !important; + border-radius: 10px !important; + /* For older NC */ + border-radius: var(--vs-border-radius, var(--border-radius-large)) !important; + border: 1px solid transparent !important; +} + +#document-name-input.editable:not(:focus) { + color: var(--color-text-lighter); + text-align: left; + font-size: var(--default-font-size) !important; +} + +#document-name-input.editable:hover { + color: var(--color-text-lighter); + border-color: var(--color-border) !important; + flex: none; +} + +#document-name-input.editable:focus { + color: var(--co-color-main-text); + flex: none; + border: 1px solid var(--color-border-darker); +} + +nav:not(.hasnotebookbar) { + /** Menu */ +} + +nav:not(.hasnotebookbar).main-nav { + background-color: var(--color-main-background); + height: 44px; + padding: 0; + align-items: center; + /** Document name input */ +} + +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + position: absolute; + width: auto; + left: 50%; + z-index: 1200; + } +} +@media screen and (max-width: 1045px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + display: none; + } +} +nav:not(.hasnotebookbar) .lo-menu > li > a, nav:not(.hasnotebookbar) .lo-menu > li > a.has-submenu { + border-radius: 0; + border-bottom: 0; + border: none; +} + +nav:not(.hasnotebookbar) .lo-menu li:last-child .separator { + display: none; +} + +nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator), nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator):hover { + padding: 12px 22px; +} + +nav:not(.hasnotebookbar) #main-menu { + width: 100%; + height: auto; + display: flex; +} + +nav:not(.hasnotebookbar) #main-menu .sm-nowrap { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +nav:not(.hasnotebookbar) #main-menu > li > a { + padding: 8px !important; +} + +nav:not(.hasnotebookbar) #main-menu-state:not(:checked) ~ #main-menu { + display: flex !important; +} + +nav:not(.hasnotebookbar) #menu-last-mod { + opacity: 0.7; +} + +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar) #menu-last-mod { + text-align: right; + display: flex; + justify-content: end; + flex-grow: 1; + } +} +nav:not(.hasnotebookbar) #menu-last-mod > a, nav:not(.hasnotebookbar) #menu-last-mod > a span { + text-decoration: none; + color: var(--color-text-lighter); +} + +nav:not(.hasnotebookbar) #menu-last-mod > a:hover, nav:not(.hasnotebookbar) #menu-last-mod > a:hover span { + text-decoration: none; + background-color: transparent; + color: var(--co-color-text); +} + +/** Icon toolbar */ +#toolbar-wrapper:not(.hasnotebookbar) { + background-color: var(--color-main-background); +} + +#toolbar-up { + top: 0px; +} + +#toolbar-up .checked.over { + border: 0 !important; + box-shadow: none !important; +} + +html:not([data-theme=dark]) #toolbar-down .unobutton.over * { + color: #444 !important; +} + +#toolbar-down .ui-separator { + opacity: 0.2; +} + +.ui-content .unobutton.selected ~ .arrowbackground .unoarrow { + border-top-color: var(--color-main-text) !important; +} + +.arrowbackground:hover .unoarrow, +.arrowbackground .unoarrow:hover { + border-top-color: --color-text-darker !important; +} + +#toolbar-wrapper .ui-scroll-left, +#toolbar-wrapper .ui-scroll-right { + background-origin: padding-box; + background-clip: border-box; + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, white 30%, white 100%); + background-position: 3px center, center center; + width: 44px; + background-size: 24px, cover; + top: 0px; + right: 0px; + margin: 0px; + padding: 0px; + border-radius: 5px; + overflow: hidden; + box-shadow: none; + background-color: transparent; +} + +[data-theme=dark] #toolbar-wrapper .ui-scroll-left, +[data-theme=dark] #toolbar-wrapper .ui-scroll-right { + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(0, 0, 0, 0) 0%, black 30%, black 100%); +} + +#document-titlebar > .document-title { + gap: 0; +} + +.unotoolbutton:hover * { + cursor: pointer; +} + +#document-container:not(.mobile) + #sidebar-dock-wrapper { + width: auto; + max-width: 380px; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper, +#navigation-sidebar { + box-shadow: none; + outline: none; + padding: 13px; +} + +#navigation-sidebar { + padding: 5px; +} + +#navigator-dock-wrapper { + border: none; +} + +#navigator-floating-icon { + background: transparent !important; +} + +[data-theme=dark] #navigator-dock-wrapper img { + filter: invert(1) hue-rotate(180deg) !important; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper .deck:not([id=NavigatorDeck]) { + padding-top: 13px; +} + +.jsdialog.ui-listbox { + border: 1px solid var(--co-border); + background-color: var(--color-main-background); +} + +#sidebar-panel td.jsdialog .jsdialog.cell.sidebar { + padding: 4px 1px; + width: auto; +} + +.arrowbackground, +.arrowbackground:hover { + border: 0; +} + +/** Required since regular branding overwrites those with high specifity */ +#tb_editbar_item_linespacing > div > table, #tb_editbar_item_insertshapes > div > table, #tb_editbar_item_fontcolor > div > table, #tb_editbar_item_backcolor > div > table, #tb_editbar_item_inserttable > div > table, +#tb_editbar_item_linespacing > div > .checked, #tb_editbar_item_insertshapes > div > .checked, #tb_editbar_item_fontcolor > div > .checked, #tb_editbar_item_backcolor > div > .checked, #tb_editbar_item_inserttable > div > .checked { + border: 0 !important; +} + +/** Hide the menu bar folding icon */ +#tb_editbar_item_fold { + display: none; +} + +#clearFormatting:hover { + border-color: var(--co-border) !important; +} + +/** Fromulabar */ +#formulabar > div > div { + grid-gap: 4px; +} + +/** Notebook bar */ +#toolbar-wrapper.hasnotebookbar { + border-collapse: initial; + border-radius: 5px; + margin: 0 10px; + width: calc(100vw - 20px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + background-color: var(--background-notebookbar); + border-color: transparent; +} + +[data-theme=dark] #toolbar-wrapper.hasnotebookbar { + box-shadow: 0 2px 1px black; +} + +#toolbar-wrapper.hasnotebookbar.spreadsheet { + margin-bottom: 10px; +} + +#toolbar-wrapper.hasnotebookbar.spreadsheet #formulabar { + padding: 2px; + border-radius: 5px; + border-color: transparent; +} + +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus, #toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus-visible { + outline: 2px solid var(--color-primary) !important; +} + +#toolbar-wrapper.hasnotebookbar .has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +#toolbar-wrapper.hasnotebookbar .has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} + +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.disabled):hover .unolabel { + color: var(--color-main-text); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar { + margin-inline-end: 0 !important; +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar .unolabel { + font-size: var(--default-font-size); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button { + cursor: not-allowed; +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled img, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button img { + opacity: var(--opacity-icon-disabled); +} + +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.selected:hover { + border-color: rgb(var(--doc-type)) !important; +} + +#toolbar-wrapper.hasnotebookbar #stylesview { + padding: 2px; +} + +#toolbar-wrapper.hasnotebookbar #stylesview-btn div { + padding: 0px 2px !important; +} + +[data-theme=dark] .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline) { + border-color: rgb(var(--doc-type)); +} + +.navigator-btn-wrapper:hover { + background-color: var(--co-color-background-hover) !important; +} + +.notebookbar .ui-content.unobutton:hover, .jsdialog .ui-content.unobutton:hover { + background-color: transparent; +} + +.ui-treeview-entry.selected, +.ui-listview-entry.selected { + background-color: var(--nc-color-primary-element-light); +} + +nav.main-nav { + border-top: 8px solid rgb(var(--doc-type)); + background-color: var(--color-canvas) !important; +} + +nav.main-nav #save::after { + font-size: 12px !important; +} + +nav.main-nav #main-menu.readonly { + flex-grow: 1; +} + +nav.main-nav #main-menu.readonly.lo-menu > li > a, nav.main-nav #main-menu.readonly .lo-menu > li > a.has-submenu { + border-color: transparent !important; +} + +nav.main-nav .notebookbar-tabs-container { + margin-left: 5px; + flex-grow: 1; + flex-shrink: 1; + background-image: none; +} + +nav.main-nav .notebookbar-tabs-container::before, nav.main-nav .notebookbar-tabs-container::after { + display: none; +} + +nav.main-nav .ui-tabs.notebookbar { + background-color: transparent; + border-radius: 0; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav .ui-tab.selected { + display: grid !important; +} + +nav.main-nav { + height: 47px; +} + +nav.main-nav .ui-tab.notebookbar { + height: 47px; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav.main-nav.hasnotebookbar #document-header { + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} + +nav.main-nav .notebookbar-options-section { + right: 44px !important; + height: auto !important; +} + +nav.main-nav #table-shortcutstoolbox { + display: none; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar { + color: var(--color-text-lighter); + background-color: transparent !important; + text-shadow: none; + padding-top: 3px; + padding-bottom: 2px; + display: grid; + grid-auto-flow: column; + grid-template-columns: 1fr auto auto; + align-content: center; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar::after { + content: ""; + height: 2px; + background-color: transparent; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected { + grid-auto-flow: row; + border: 0 !important; + box-shadow: none !important; + outline: none !important; + color: var(--co-color-main-text); + background-color: transparent; + font-weight: bold; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected::after { + content: ""; + height: 2px; + background-color: rgb(var(--doc-type)); + grid-column: 1/4; +} + +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar:hover { + color: var(--co-color-main-text); + background-color: transparent; +} + +@media screen and (max-width: 1072px) { + nav.main-nav #document-titlebar { + display: none !important; + } +} +.spreadsheet-tabs-container .spreadsheet-tab { + font: var(--default-font-size) var(--cool-font) !important; +} + +.spreadsheet-header-row, +.spreadsheet-header-column { + border-color: transparent; +} + +/** UI Widget */ +.lokdialog_container.ui-dialog.ui-widget-content { + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.ui-dialog .ui-dialog-titlebar { + padding: 0; +} + +.ui-dialog .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} + +[data-theme=dark] .ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} + +/** Global menu styling */ +.sm-nowrap { + border-radius: 5px; + border: 0; + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.lo-menu a:hover:not(.disabled), .lo-menu a:focus, .lo-menu a:active, .lo-menu a.highlighted { + background-color: var(--co-color-background-hover); + color: var(--color-main-text); +} + +.lo-menu:not(#main-menu) a:not(.separator):hover { + background-color: var(--co-border); + color: var(--color-main-text); + border-radius: 4px; +} + +.main-nav:not(.spreadsheet-color-indicator) ~ .context-menu-list { + margin: 0; +} + +.context-menu-list { + border-radius: 3px; + padding: 0; +} + +.context-menu-list .context-menu-item:not(.context-menu-separator) { + padding: 8px 14px; + font-size: var(--default-font-size); +} + +.context-menu-list .context-menu-icon::before { + visibility: hidden; +} + +.context-menu-list .context-menu-item.context-menu-icon-radio { + background-color: var(--co-primary-element-light); +} + +.context-menu-list .context-menu-item.context-menu-icon-radio a { + color: var(--co-primary-light); +} + +.context-menu-list .context-menu-item.context-menu-icon-radio.context-menu-hover { + background-color: var(--co-primary-element-light) !important; + box-shadow: inset 0 0 0 25px rgba(0, 0, 0, 0.1); + /* Adjust the alpha value to control the darkness */ +} + +/** Cursor style */ +.leaflet-cursor-container .leaflet-cursor-header { + font-family: var(--cool-font); + font-size: 13px; + border-radius: 3px; + margin-left: -3px; + margin-top: -18px; + padding: 3px 5px; + height: 15px; +} + +/** Inactive document modal style */ +#inactive_user_message::before { + background-image: url("images/lc_watch_later_branding.svg"); + display: block; + content: ""; + width: 3rem; + height: 3rem; + background-size: cover; + margin: 0 auto 20px; + opacity: var(--opacity-icon); +} + +#inactive_user_message { + color: var(--co-color-main-text) !important; + padding: 1em; + box-sizing: border-box; +} + +/** About Dialog **/ +#integrator-logo { + flex-grow: 1 !important; + background: url("images/toolbar-bg-logo.svg") no-repeat center/128px; + width: 128px; +} + +#product-name { + justify-content: left !important; + color: var(--color-primary) !important; +} + +#product-logo, #lokit-logo { + background-position: center !important; + flex-grow: 1; +} + +#product-logo { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMzkiCiAgIGhlaWdodD0iMzkiCiAgIHZpZXdCb3g9IjAgMCA4LjAgMTAuMzE4NzUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzY0MTciCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMiAoNWMzZTgwZCwgMjAxNy0wOC0wNikiCiAgIHNvZGlwb2RpOmRvY25hbWU9InRvb2xiYXItYmctZm9udC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM2NDExIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxMS4yIgogICAgIGlua3NjYXBlOmN4PSIzNy4xMTYwNzIiCiAgICAgaW5rc2NhcGU6Y3k9IjM3LjExNjA3MiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTk4MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxOTgyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE2NDE0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yODYuNjgxMjMpIj4KICAgIDxwb2x5Z29uCiAgICAgICBpZD0icG9seWdvbjE0IgogICAgICAgcG9pbnRzPSIxNy45MTQsNDQuODkzIDE3LjM1OCw0NC4zODYgMTcuMjU4LDIwLjcxOCAxNy43NzIsMjAuMTcyIDMwLjk1OCwzMi41OTkgIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiM1YzI5ODM7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjE2IgogICAgICAgcG9pbnRzPSIzMC45NTgsMzIuNTk5IDMwLjM3OSwzMy4xNDUgMTcuOTE0LDQ0Ljg5MyAyOC42NTQsNTUuNjM4IDUxLjc0MiwzMi41NSAyOC41NjEsOS4zNjIgMTcuNzYzLDIwLjE2MiAxNy43NzIsMjAuMTcyIDMwLjM3OSwzMi4wNTMgIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yMjE3ODM0OCwwLDAsMC4yMjE3ODM0OCwtMy44MDE4MjI5LDI4NC42MjU4MSkiIC8+CiAgICA8cG9seWdvbgogICAgICAgaWQ9InBvbHlnb24xOCIKICAgICAgIHBvaW50cz0iMjkuODY0LDMyLjU5OSAxNy4zNTgsNDQuMzg2IDE3LjI1OCwyMC43MTggIgogICAgICAgc3R5bGU9ImZpbGw6I2M4YzhjOCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiMyZDBiNDc7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjIwIgogICAgICAgcG9pbnRzPSIzMS44NDcsNDEuNDgzIDI3Ljc0MywzNS42MjggMTguODA3LDQ0LjA1MiAiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjIyMTc4MzQ4LDAsMCwwLjIyMTc4MzQ4LC0zLjgwMTgyMjksMjg0LjYyNTgxKSIgLz4KICA8L2c+Cgo8IS0tIChDKSBDb2xsYWJvcmEgUHJvZHVjdGl2aXR5IDIwMjAsIEFsbCBSaWdodHMgUmVzZXJ2ZWQgLS0+Cjwvc3ZnPg==") !important; +} + +#integrator-logo, #about-dialog-logos { + flex-basis: 256px; + max-width: 256px; +} + +.leaflet-progress-spinner::before { + background-position: center !important; + height: 94px !important; +} + +#mobile-wizard.menuwizard { + z-index: 1003; +} + +#toolbar-wrapper.mobile > tbody > tr { + height: 100%; +} + +#toolbar-down #search-input { + border-color: var(--color-border) !important; +} + +#toolbar-down #search-input:hover { + border-color: var(--color-border-dark) !important; +} + +#shareas .unolabel { + color: var(--color-text-lighter); +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +#toolbar-up .ui-toolbar { + padding-top: 5px !important; +} + +/*avoid scroll indicators to be above other items*/ +.ui-tab.notebookbar { + line-height: normal; + padding: 2px 12px 2px 12px; +} + +.ui-tabs.notebookbar { + height: auto !important; + border-radius: 8px; + box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-shadow: inset 0 0 1px 0 rgba(0, 0, 0, 0.15); +} + +.notebookbar-tabs-container { + align-self: auto !important; +} + +.main-nav.hasnotebookbar .ui-tab.selected.notebookbar { + text-shadow: none; + background-color: white; +} + +.ui-tab.selected.notebookbar { + box-shadow: none; + border-radius: 8px !important; + box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; + -moz-box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; + -webkit-box-shadow: inset 0 0 0px 1px #dbdbdb, 0 0 3px 0px #00000012; +} + +.ui-tabs.notebookbar .ui-tab { + height: auto !important; + background-color: transparent; + color: var(--co-color-text-lighter); +} + +.main-nav:not(.hasnotebookbar) { + margin-right: 0px; + box-shadow: 0px 4px 2px -2px #adadad; +} + +.ui-toolbar { + padding-top: 2px; +} + +.ui-scroll-left, .ui-scroll-right { + box-shadow: 4px 0 13px 2px var(--co-primary-element), -6px 0 6px 6px var(--co-primary-element) !important; +} + +#mobile-edit-button { + background-color: var(--co-primary-element) !important; +} + +.leaflet-selection-marker-end { + margin-left: -4px; + background-size: 12px; + background-repeat: no-repeat; + background-image: url("images/ios_handle_end.svg"); + margin-top: -24px; +} + +.leaflet-selection-marker-start { + margin-left: -8px; + background-size: 12px; + background-repeat: no-repeat; + background-image: url("images/ios_handle_start.svg"); + margin-top: -34px; +} + +.leaflet-cursor-handler { + display: none; +} + +/*porting some changes from iOSapp made by @tml and adjusting*/ +.cool-context-toolbar { + top: -32px; +} + +#mobile-wizard button, +#mobile-wizard #FontworkSameLetterHeights { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element); +} + +#mobile-wizard-titlebar { + color: var(--co-color-text-lighter); +} + +.ui-tab.selected.mobile-wizard { + color: var(--co-primary-element); + border-bottom: 1px solid var(--co-primary-element); +} + +.ui-tab.mobile-wizard { + color: var(--co-color-text-lighter); +} + +div#mobile-wizard-content .spinfieldcontainer { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.spinfieldcontrols { + background-color: var(--co-color-background-dark); + border-left: 1px solid var(--co-color-border-dark); +} + +.plus { + border-left: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.minus { + border-right: 1px solid var(--co-color-border-dark); + color: var(--co-color-text-lighter) !important; +} + +.spinfieldunit { + color: var(--co-color-text-lighter) !important; +} + +.colors-container-selected-basic-color { + box-shadow: 0 2px 3px -2px var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.color-sample-small { + border-color: var(--co-body-bg); +} + +.color-sample-big { + box-shadow: 0px 0px 0px 1px var(--co-color-background-dark), 1px 1px 0 3px var(--co-body-bg); +} + +.menu-entry-icon { + background: var(--co-color-main-background-translucent); +} + +#mobile-wizard-content #commands.selected { + border-color: var(--co-primary-element); +} + +#mobile-wizard .cool-annotation-reply-count { + margin-inline-end: 32px !important; +} + +#mobile-wizard .ui-content.unobutton.selected { + box-shadow: 0 0 0px 6px var(--color-background-darker) !important; + background-color: var(--color-background-darker) !important; +} diff --git a/usr/share/coolwsd/browser/dist/f7cloud/branding.css b/usr/share/coolwsd/browser/dist/f7cloud/branding.css new file mode 100644 index 0000000..8ee2c94 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/branding.css @@ -0,0 +1,2305 @@ +FORBION + +.unobutton { + overflow: hidden; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_downloadas_pdf_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_fullscreen_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) #menu-downloadas-pdf a { + background: url("images/lc_menu_zoomreset_branding.svg") no-repeat center right/24px; +} + +html:not([data-theme=dark]) .w2ui-icon.closemobile { + background: url("images/lc_closedocmobile_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.edit { + background: url("images/edit_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.fitcell { + background: url("images/fit-cell_branding.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .w2ui-icon.textpath { + background: url("images/text-path_branding.svg") no-repeat center !important; +} + +.table-column-resize-marker { + background-image: url("images/table-column-resize-marker_branding.svg"); + width: 32px; + height: 32px; +} + +html:not([data-theme=dark]) #save.notebookbar.saving img { + background: url("images/lc_saving_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +#closebuttonwrapper { + width: 44px; + height: 44px !important; + align-items: center; + justify-content: center; +} + +#closebuttonwrapper #closebutton { + background: url("images/closedoc.svg") no-repeat center/24px !important; + width: 24px !important; + height: 24px !important; + opacity: var(--opacity-icon); + filter: none !important; +} + +#closebuttonwrapperseparator { + visibility: hidden !important; + width: 0 !important; +} + +html:not([data-theme=dark]) .unoSetBorderStyle .unobutton img, html:not([data-theme=dark]) #setborderstyle img { + background: url("images/lc_setborderstyle_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoText .unobutton img, html:not([data-theme=dark]) .unoDrawText .unobutton img, html:not([data-theme=dark]) #inserttextbox img { + background: url("images/lc_text_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertTable .unobutton img, html:not([data-theme=dark]) #inserttable img { + background: url("images/lc_inserttable_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertAnnotation .unobutton img, html:not([data-theme=dark]) #insertannotation img { + background: url("images/lc_showannotations_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertObjectChart .unobutton img, html:not([data-theme=dark]) #insertobjectchart img { + background: url("images/lc_drawchart_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoHyperlinkDialog .unobutton img, html:not([data-theme=dark]) #inserthyperlink img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .swresnc20007img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center/16px; + box-sizing: border-box; + padding-left: 16px !important; + width: 16px; + height: 16px; +} + +html:not([data-theme=dark]) .unoremotelink .unobutton img, html:not([data-theme=dark]) #link img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoremoteaicontent .unobutton img, html:not([data-theme=dark]) #link img { + background: url("images/lc_inserthyperlink_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertPage .unobutton img, html:not([data-theme=dark]) #insertpage img { + background: url("images/lc_insertpage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoDeletePage .unobutton img, html:not([data-theme=dark]) #deletepage img { + background: url("images/lc_deletepage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoBasicShapes .unobutton img, html:not([data-theme=dark]) #basicshapes_ellipse img { + background: url("images/lc_ellipse_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoTableDialog .unobutton img { + background: url("images/lc_inserttable_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatCurrency .unobutton img, html:not([data-theme=dark]) #numberformatcurrency img { + background: url("images/lc_numberformatcurrency_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatDate .unobutton img, html:not([data-theme=dark]) .unoNumberFormatDecimal .unobutton img { + background: url("images/lc_numberformatdecimal_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatPercent .unobutton img, html:not([data-theme=dark]) #numberformatpercent img { + background: url("images/lc_numberformatpercent_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatDecDecimals .unobutton img, html:not([data-theme=dark]) #numberformatdecdecimals img { + background: url("images/lc_numberformatdecdecimals_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoNumberFormatIncDecimals .unobutton img, html:not([data-theme=dark]) #numberformatincdecimals img { + background: url("images/lc_numberformatincdecimals_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoAutoSumMenu .unobutton img, html:not([data-theme=dark]) #autosum img { + background: url("images/lc_autosum_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoFunctionDialog .unobutton img, html:not([data-theme=dark]) #autosum img { + background: url("images/lc_functiondialog_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #next img { + background: url("images/lc_downpage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #prev img { + background: url("images/lc_uppage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #nextrecord img { + background: url("images/lc_nextrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #prevrecord img { + background: url("images/lc_prevrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #lastrecord img { + background: url("images/lc_firstrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; + transform: scaleX(-1) !important; +} + +html:not([data-theme=dark]) #firstrecord img { + background: url("images/lc_firstrecord_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #insertsheet img { + background: url("images/plus_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #searchnext img { + background: url("images/lc_searchnext_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #searchprev img { + background: url("images/lc_searchprev_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .notebookbar.unoSlideChangeWindow.unospan-options-slide-change-window .unobutton img, html:not([data-theme=dark]) #sidebar_slide_change img { + background: url("images/lc_sidebar-transition.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoInsertPage .unobutton img { + background: url("images/lc_insertpage_branding.svg") no-repeat center; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .unoDuplicatePage .unobutton img, html:not([data-theme=dark]) .unoduplicatepage .unobutton img, html:not([data-theme=dark]) #duplicatepage img { + background: url("images/lc_duplicatepage_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:checked { + background-image: url("images/checkbox-on.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:checked:disabled { + background-image: url("images/checkbox-on-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox] { + background: url("images/checkbox-off.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=checkbox]:disabled { + background-image: url("images/checkbox-off-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:checked:not(.ui-color-picker-entry) { + background-image: url("images/radio-on.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:not(.ui-color-picker-entry) { + background: url("images/radio-off.svg") no-repeat center !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:checked:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-disabled.svg") !important; +} + +html:not([data-theme=dark]) .jsdialog input[type=radio]:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-off-disabled.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:checked:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-dark.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:not(.ui-color-picker-entry) { + background: url("images/radio-off-dark.svg") no-repeat center !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:checked:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-on-disabled-dark.svg") !important; +} + +html[data-theme=dark] .jsdialog input[type=radio]:disabled:not(.ui-color-picker-entry) { + background-image: url("images/radio-off-disabled-dark.svg") !important; +} + +html:not([data-theme=dark]) .cool-ruler-indentation-marker-up { + background: url("images/indentation_marker_up_branding.svg") center 0 no-repeat !important; +} + +html:not([data-theme=dark]) .cool-ruler-indentation-marker-down { + height: 10px; + background: url("images/indentation_marker_down_branding.svg") center 0 no-repeat !important; +} + +.table-column-resize-marker:hover { + background-image: url("images/table-column-resize-marker-hover_branding.svg"); + width: 32px; + height: 32px; +} + +.table-row-resize-marker { + background-image: url("images/table-row-resize-marker_branding.svg"); + width: 32px; + height: 32px; +} + +.table-row-resize-marker:hover { + background-image: url("images/table-row-resize-marker-hover_branding.svg"); + width: 32px; + height: 32px; +} + +.lokdialog_container .ui-dialog-titlebar-close .ui-icon { + background-image: url("images/close-widget.svg"); + border: none; + background-position: center; + filter: saturate(0); +} + +.lokdialog_container .ui-dialog-titlebar-close { + background: none; + border: none; +} + +.lokdialog_container.ui-dialog .ui-dialog-titlebar-close:hover > .ui-icon-closethick { + background-image: url("images/close-widget-hover.svg"); +} + +html:not([data-theme=dark]) #scroll-up img { + background: url("images/lc_stylepreviews-scrollup_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) #scroll-down img { + background: url("images/lc_stylepreviews-scrolldown_branding.svg") no-repeat center !important; + box-sizing: border-box; + padding-left: calc( var(--btn-img-size) * 2 ) !important; +} + +html:not([data-theme=dark]) .close-navigation-button { + background: url("images/close-widget.svg") no-repeat center !important; + border: none; + background-position: center; +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --nc-color-primary-element: var(--nc-light-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-light-color-primary-element-light, var(--co-primary-light)); + --nc-color-primary-element-hover: var(--nc-light-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-light-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-light-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-light-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-light-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-light-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --native-font-stack: -apple-system, BlinkMacSystemFont, "Segoe UI", Cantarell, Roboto, Oxygen-Sans, Ubuntu, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol" !important; + --background-notebookbar: #fff; + --opacity-icon: 1; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --opacity-icon-disabled: 0.5; + --blue1-txt-primary-color: 3, 105, 163; + --green0-txt-primary-color: 16, 104, 2; + /*green1 lacks contrast against white*/ + --orange1-txt-primary-color: 163, 62, 3; + --yellow0-txt-primary-color: 135, 105, 0; + /*yellow1 lacks contrast against white*/ + --gray-light-txt--color: #696969; + --gray-light-bg-color: #EFEFEF; + --gray-color: #b6b6b6; + --color-main-text: #333333; + --color-text-dark: #333333; + /* select */ + --color-text-darker: #000; + /* hover */ + --color-text-lighter: #696969; + --color-background-dark: #F7F7F7; + /* select */ + --color-background-darker: #e4e4e4; + /* hover */ + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #b6b6b6; + --color-border-dark: #555; + /* select */ + --color-border-lighter: #b6b6b6; + --color-error: #e9322d; + --color-warning: #eca700; + --color-success: #46ba61; + --cool-font: var(--native-font-stack); + --mobile-font: var(--native-font-stack); + --jquery-ui-font: var(--native-font-stack); + --docs-font: var(--native-font-stack); + --docs--pre-font: "Consolas","Menlo","Lucida Console","Courier New",monospace; + --default-font-size: 15px; + --header-font-size: 15px; + --border-radius: 3px; + --border-radius-large: 10px; + --header-height: 49px; + --co-color-background-light: var(--color-main-background) !important; + --co-image-logo: url("images/toolbar-bg-logo.svg"); + --co-color-background-hover: #e4e4e4 !important; + --co-primary-element-light: var(--nc-color-primary-element) !important; + --co-primary-text: var(--nc-color-primary-element-text) !important; + --ruler-height: 14px; + --co-primary-invert-if-dark: invert(1); +} +:root [data-doctype=text] { + --doc-type: 24, 90, 189; + --doc-type-darker: 15, 58, 121; +} +:root [data-doctype=spreadsheet] { + --doc-type: 16, 124, 65; + --doc-type-darker: 7, 56, 29; +} +:root [data-doctype=presentation] { + --doc-type: 196, 62, 28; + --doc-type-darker: 129, 41, 18; +} +:root [data-doctype=drawing] { + --doc-type: 142, 115, 16; + --doc-type-darker: 73, 59, 8; +} +:root .writer-icon-img { + background-image: url("images/x-office-document.svg"); +} +:root .calc-icon-img { + background-image: url("images/x-office-spreadsheet.svg"); +} +:root .impress-icon-img { + background-image: url("images/x-office-presentation.svg"); +} +:root .draw-icon-img { + background-image: url("images/x-office-drawing.svg"); +} + +[data-theme=dark] { + --nc-color-primary-element: var(--nc-dark-color-primary-element, var(--co-primary-element)); + --nc-color-primary-element-text: var(--nc-light-color-primary-element-text, var(--co-primary-light)); + --nc-color-primary-element-light: var(--nc-dark-color-primary-element-light, var(--co-primary-element-light)); + --nc-color-primary-element-hover: var(--nc-dark-color-primary-element-hover); + --nc-color-primary-element-light-hover: var(--nc-dark-color-primary-element-light-hover); + --nc-primary-invert-if-bright: var(--nc-dark-primary-invert-if-bright); + --nc-background-invert-if-bright: var(--nc-dark-background-invert-if-bright); + --nc-background-invert-if-dark: var(--nc-dark-background-invert-if-dark); + --nc-primary-invert-if-dark: var(--nc-dark-primary-invert-if-dark, var(--co-primary-invert-if-dark)); + --background-notebookbar: #101010; + --opacity-icon: 0.8; + --opacity-icon-hover: 1; + --opacity-icon-active: 1; + --color-main-text: #fff; + --color-text-dark: #ddd; + /* select */ + --color-text-darker: #ccc; + /* hover */ + --color-text-lighter: #ddd; + --color-canvas: #171717; + --color-main-background: #171717; + --color-background-dark: #444; + /* select */ + --color-background-darker: #555; + /* hover */ + --color-background-lighter: #333; + --color-primary: var(--co-primary-element); + --color-primary-text: var(--co-primary-text); + --color-primary-dark: var(--co-color-primary-element-text-dark); + --color-primary-darker: var(--co-primary-element); + --color-primary-lighter: var(--co-primary-element-light); + --color-border: #696969; + --color-border-dark: #959595; + /* select */ + --color-border-lighter: #f1f1f1; + --co-body-bg: var(--color-canvas) !important; + --co-color-background-light: var(--color-main-background) !important; + --co-color-main-text: #fff !important; + --co-color-background-hover: #444 !important; + --co-color-background-dark: #111 !important; +} + +input[type=checkbox].autofilter, .jsdialog input[type=checkbox] { + border: none !important; +} + +.jsdialog-window.modalpopup[role=dialog] { + border-color: transparent !important; +} + +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] { + border: none !important; + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-box-shadow) !important; +} +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button { + border-radius: 100px !important; + cursor: pointer; +} +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.ui-pushbutton:not(.button-primary, [id^=modal-dialog-][id$=yesbutton]) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton] { + border: none !important; + color: var(--color-primary-text) !important; + background-color: var(--nc-color-primary-element) !important; +} +[id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button.button-primary:hover, [id^=modal-dialog].jsdialog-window.modalpopup[role=dialog] button[id^=modal-dialog-][id$=yesbutton]:hover { + background-color: var(--nc-color-primary-element-hover) !important; + color: var(--nc-color-primary-element-text) !important; +} + +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container { + border-radius: var(--border-radius-large) !important; + box-shadow: 0 0 25px var(--color-border) !important; + border: none !important; + overflow: hidden !important; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar { + padding: 0; + min-height: 44px; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px !important; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} +[data-theme=dark] .jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab { + border-radius: var(--border-radius-large); +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-toggle.checked button, +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container .ui-tab.selected.jsdialog { + box-shadow: none !important; + background-color: var(--nc-color-primary-element) !important; + color: var(--nc-color-primary-element-text) !important; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button) { + border-radius: 100px !important; + cursor: pointer; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary { + color: var(--color-primary-text); + background-color: var(--nc-color-primary-element); +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).button-primary:hover { + background-color: var(--nc-color-primary-element-hover); + color: var(--nc-color-primary-element-text); +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button).ui-pushbutton:not(.button-primary) { + border: none !important; + background-color: var(--nc-color-primary-element-light) !important; +} +.jsdialog-window:not(.modalpopup) .jsdialog-container.ui-dialog.lokdialog_container button:not(.menubutton):not(.ui-toggle button)[id^=remove].ui-pushbutton.has-img { + background-color: transparent !important; +} + +.ui-toggle button { + border-radius: 100px !important; +} + +.sidebar.has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +.sidebar.has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} + +.sidebar.ui-expander-label { + font-size: var(--default-font-size); + font-weight: normal; +} + +.sidebar.ui-expander-container { + margin-bottom: 20px; +} + +.jsdialog.ui-expander { + border: none !important; + box-shadow: none !important; +} + +#closebuttonwrapper { + top: 3px; + width: 34px; + height: 34px !important; +} +[data-theme=dark] #closebuttonwrapper #closebutton { + filter: invert(1) !important; +} +#closebuttonwrapper #closebutton:hover { + background-color: transparent !important; +} +#closebuttonwrapper:hover { + border-radius: 8px; + background-color: var(--color-background-darker); + cursor: pointer; + opacity: var(--opacity-icon-hover); +} + +html body { + background-color: var(--color-canvas) !important; +} + +body #document-header { + margin: 0; + border: none; + display: inline-flex; + width: 46px; + padding-inline-start: 12px; + border: none !important; + background: none !important; + border-radius: 0; +} +body #document-header .document-logo { + background-repeat: no-repeat !important; + background-size: contain !important; + background-position: center !important; + width: 40px !important; + height: 20px !important; +} + +body #document-header { + padding-inline: 7px 0px; +} + +#document-name-input, +#document-name-input.editable, +#document-name-input.editable:not(:focus) #document-name-input.editable:focus { + text-align: center !important; + font-weight: bold; + font-size: var(--default-font-size) !important; + color: var(--co-color-main-text); + animation: none !important; + box-shadow: none !important; + background: transparent !important; + height: 100% !important; + border-radius: 10px !important; + /* For older NC */ + border-radius: var(--vs-border-radius, var(--border-radius-large)) !important; + border: 1px solid transparent !important; +} + +#document-name-input.editable:not(:focus) { + color: var(--color-text-lighter); + text-align: left; + font-size: var(--default-font-size) !important; +} + +#document-name-input.editable:hover { + color: var(--color-text-lighter); + border-color: var(--color-border) !important; + flex: none; +} + +#document-name-input.editable:focus { + color: var(--co-color-main-text); + flex: none; + border: 1px solid var(--color-border-darker); +} + +nav:not(.hasnotebookbar) { + /** Menu */ +} +nav:not(.hasnotebookbar).main-nav { + background-color: var(--color-main-background); + height: 44px; + padding: 0; + align-items: center; + /** Document name input */ +} +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + position: absolute; + width: auto; + left: 50%; + z-index: 1200; + } +} +@media screen and (max-width: 1045px) { + nav:not(.hasnotebookbar).main-nav #document-titlebar { + display: none; + } +} +nav:not(.hasnotebookbar) .lo-menu > li > a, nav:not(.hasnotebookbar) .lo-menu > li > a.has-submenu { + border-radius: 0; + border-bottom: 0; + border: none; +} +nav:not(.hasnotebookbar) .lo-menu li:last-child .separator { + display: none; +} +nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator), nav:not(.hasnotebookbar) .lo-menu:not(#main-menu) a:not(.separator):hover { + padding: 12px 22px; +} +nav:not(.hasnotebookbar) #main-menu { + width: 100%; + height: auto; + display: flex; +} +nav:not(.hasnotebookbar) #main-menu .sm-nowrap { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +nav:not(.hasnotebookbar) #main-menu > li > a { + padding: 8px !important; +} +nav:not(.hasnotebookbar) #main-menu-state:not(:checked) ~ #main-menu { + display: flex !important; +} +nav:not(.hasnotebookbar) #menu-last-mod { + opacity: 0.7; +} +@media screen and (min-width: 1250px) { + nav:not(.hasnotebookbar) #menu-last-mod { + text-align: right; + display: flex; + justify-content: end; + flex-grow: 1; + } +} +nav:not(.hasnotebookbar) #menu-last-mod > a, nav:not(.hasnotebookbar) #menu-last-mod > a span { + text-decoration: none; + color: var(--color-text-lighter); +} +nav:not(.hasnotebookbar) #menu-last-mod > a:hover, nav:not(.hasnotebookbar) #menu-last-mod > a:hover span { + text-decoration: none; + background-color: transparent; + color: var(--co-color-text); +} + +/** Icon toolbar */ +#toolbar-wrapper:not(.hasnotebookbar) { + background-color: var(--color-main-background); +} + +#toolbar-up { + top: 0px; +} + +#toolbar-up .checked.over { + border: 0 !important; + box-shadow: none !important; +} + +html:not([data-theme=dark]) #toolbar-down .unobutton.over * { + color: #444 !important; +} + +#toolbar-down .ui-separator { + opacity: 0.2; +} + +.ui-content .unobutton.selected ~ .arrowbackground .unoarrow { + border-top-color: var(--color-main-text) !important; +} + +.arrowbackground:hover .unoarrow, +.arrowbackground .unoarrow:hover { + border-top-color: --color-text-darker !important; +} + +#toolbar-wrapper .ui-scroll-left, +#toolbar-wrapper .ui-scroll-right { + background-origin: padding-box; + background-clip: border-box; + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(255, 255, 255, 0) 0%, white 30%, white 100%); + background-position: 3px center, center center; + width: 44px; + background-size: 24px, cover; + top: 0px; + right: 0px; + margin: 0px; + padding: 0px; + border-radius: 5px; + overflow: hidden; + box-shadow: none; + background-color: transparent; +} +[data-theme=dark] #toolbar-wrapper .ui-scroll-left, +[data-theme=dark] #toolbar-wrapper .ui-scroll-right { + background-image: url("images/scroll-double-dark.svg"), linear-gradient(270deg, rgba(0, 0, 0, 0) 0%, black 30%, black 100%); +} + +#document-titlebar > .document-title { + gap: 0; +} + +.unotoolbutton:hover * { + cursor: pointer; +} + +#document-container:not(.mobile) + #sidebar-dock-wrapper { + width: auto; + max-width: 380px; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper, +#navigation-sidebar { + box-shadow: none; + outline: none; + padding: 13px; +} + +#navigation-sidebar { + padding: 5px; +} + +#navigator-dock-wrapper { + border: none; +} + +#navigator-floating-icon { + background: transparent !important; +} + +[data-theme=dark] #navigator-dock-wrapper img { + filter: invert(1) hue-rotate(180deg) !important; +} + +#document-container.notebookbar-active + #sidebar-dock-wrapper .deck:not([id=NavigatorDeck]) { + padding-top: 13px; +} + +.jsdialog.ui-listbox { + border: 1px solid var(--co-border); + background-color: var(--color-main-background); +} + +#sidebar-panel td.jsdialog .jsdialog.cell.sidebar { + padding: 4px 1px; + width: auto; +} + +.arrowbackground, +.arrowbackground:hover { + border: 0; +} + +/** Required since regular branding overwrites those with high specifity */ +#tb_editbar_item_linespacing > div > table, #tb_editbar_item_insertshapes > div > table, #tb_editbar_item_fontcolor > div > table, #tb_editbar_item_backcolor > div > table, #tb_editbar_item_inserttable > div > table, +#tb_editbar_item_linespacing > div > .checked, #tb_editbar_item_insertshapes > div > .checked, #tb_editbar_item_fontcolor > div > .checked, #tb_editbar_item_backcolor > div > .checked, #tb_editbar_item_inserttable > div > .checked { + border: 0 !important; +} + +/** Hide the menu bar folding icon */ +#tb_editbar_item_fold { + display: none; +} + +#clearFormatting:hover { + border-color: var(--co-border) !important; +} + +/** Fromulabar */ +#formulabar > div > div { + grid-gap: 4px; +} + +/** Notebook bar */ +#toolbar-wrapper.hasnotebookbar { + border-collapse: initial; + border-radius: 5px; + margin: 0 10px; + width: calc(100vw - 20px); + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2); + background-color: var(--background-notebookbar); + border-color: transparent; +} +[data-theme=dark] #toolbar-wrapper.hasnotebookbar { + box-shadow: 0 2px 1px black; +} +#toolbar-wrapper.hasnotebookbar.spreadsheet { + margin-bottom: 10px; +} +#toolbar-wrapper.hasnotebookbar.spreadsheet #formulabar { + padding: 2px; + border-radius: 5px; + border-color: transparent; +} +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus, #toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.formulabar):focus-visible { + outline: 2px solid var(--color-primary) !important; +} +#toolbar-wrapper.hasnotebookbar .has-dropdown--color .ui-content.unobutton:not(.disabled):not(.selected):hover, +#toolbar-wrapper.hasnotebookbar .has-dropdown--color:hover .ui-content.unobutton:not(.disabled):not(.selected) { + opacity: var(--opacity-icon-hover); +} +#toolbar-wrapper.hasnotebookbar .ui-content.unotoolbutton:not(.disabled):hover .unolabel { + color: var(--color-main-text); +} +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar { + margin-inline-end: 0 !important; +} +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar .unolabel { + font-size: var(--default-font-size); +} +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button { + cursor: not-allowed; +} +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled img, #toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.disabled button img { + opacity: var(--opacity-icon-disabled); +} +#toolbar-wrapper.hasnotebookbar .unotoolbutton.notebookbar.selected:hover { + border-color: rgb(var(--doc-type)) !important; +} +#toolbar-wrapper.hasnotebookbar #stylesview { + padding: 2px; +} +#toolbar-wrapper.hasnotebookbar #stylesview-btn div { + padding: 0px 2px !important; +} + +[data-theme=dark] .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline) { + border-color: rgb(var(--doc-type)); +} + +.navigator-btn-wrapper:hover { + background-color: var(--co-color-background-hover) !important; +} + +.notebookbar .ui-content.unobutton:hover, .jsdialog .ui-content.unobutton:hover { + background-color: transparent; +} + +.ui-treeview-entry.selected, +.ui-listview-entry.selected { + background-color: var(--nc-color-primary-element-light); +} + +nav.main-nav { + border-top: 8px solid rgb(var(--doc-type)); + background-color: var(--color-canvas) !important; +} +nav.main-nav #save::after { + font-size: 12px !important; +} +nav.main-nav #main-menu.readonly { + flex-grow: 1; +} +nav.main-nav #main-menu.readonly.lo-menu > li > a, nav.main-nav #main-menu.readonly .lo-menu > li > a.has-submenu { + border-color: transparent !important; +} +nav.main-nav .notebookbar-tabs-container { + margin-left: 5px; + flex-grow: 1; + flex-shrink: 1; + background-image: none; +} +nav.main-nav .notebookbar-tabs-container::before, nav.main-nav .notebookbar-tabs-container::after { + display: none; +} +nav.main-nav .ui-tabs.notebookbar { + background-color: transparent; + border-radius: 0; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} +nav.main-nav .ui-tab.selected { + display: grid !important; +} +nav.main-nav { + height: 47px; +} +nav.main-nav .ui-tab.notebookbar { + height: 47px; + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} +nav.main-nav.main-nav.hasnotebookbar #document-header { + border: 0 !important; + box-shadow: none !important; + outline: none !important; +} +nav.main-nav .notebookbar-options-section { + right: 44px !important; + height: auto !important; +} +nav.main-nav #table-shortcutstoolbox { + display: none; +} +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar { + color: var(--color-text-lighter); + background-color: transparent !important; + text-shadow: none; + padding-top: 3px; + padding-bottom: 2px; + display: grid; + grid-auto-flow: column; + grid-template-columns: 1fr auto auto; + align-content: center; +} +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar::after { + content: ""; + height: 2px; + background-color: transparent; +} +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected { + grid-auto-flow: row; + border: 0 !important; + box-shadow: none !important; + outline: none !important; + color: var(--co-color-main-text); + background-color: transparent; + font-weight: bold; +} +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar.selected::after { + content: ""; + height: 2px; + background-color: rgb(var(--doc-type)); + grid-column: 1/4; +} +nav.main-nav.main-nav.hasnotebookbar .ui-tab.notebookbar:hover { + color: var(--co-color-main-text); + background-color: transparent; +} +@media screen and (max-width: 1072px) { + nav.main-nav #document-titlebar { + display: none !important; + } +} + +.spreadsheet-tabs-container .spreadsheet-tab { + font: var(--default-font-size) var(--cool-font) !important; +} + +.spreadsheet-header-row, +.spreadsheet-header-column { + border-color: transparent; +} + +/** UI Widget */ +.lokdialog_container.ui-dialog.ui-widget-content { + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.ui-dialog .ui-dialog-titlebar { + padding: 0; +} +.ui-dialog .ui-dialog-titlebar .ui-dialog-title { + border: none; + box-sizing: border-box; + padding: 13px; + background-color: var(--color-main-background); + background-image: none; + color: var(--color-main-text); + font-weight: bold; + text-transform: none; + font-family: var(--cool-font); +} +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close { + width: 34px; + height: 34px; + margin: 5px; + top: 0; +} +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover { + background-image: none; + background-color: var(--color-background-darker); + border-radius: 8px; +} +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close:hover .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} +.ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + background-image: url("images/closedoc.svg"); + width: 100%; + height: 100%; + top: 0; + left: 0; + margin: 0; + background-size: 24px; +} +[data-theme=dark] .ui-dialog .ui-dialog-titlebar button.ui-dialog-titlebar-close .ui-icon-closethick { + filter: invert(1) !important; +} + +/** Global menu styling */ +.sm-nowrap { + border-radius: 5px; + border: 0; + box-shadow: 0 0 3px rgba(77, 77, 77, 0.5); +} + +.lo-menu a:hover:not(.disabled), .lo-menu a:focus, .lo-menu a:active, .lo-menu a.highlighted { + background-color: var(--co-color-background-hover); + color: var(--color-main-text); +} + +.lo-menu:not(#main-menu) a:not(.separator):hover { + background-color: var(--co-border); + color: var(--color-main-text); + border-radius: 4px; +} + +.main-nav:not(.spreadsheet-color-indicator) ~ .context-menu-list { + margin: 0; +} + +.context-menu-list { + border-radius: 3px; + padding: 0; +} +.context-menu-list .context-menu-item:not(.context-menu-separator) { + padding: 8px 14px; + font-size: var(--default-font-size); +} +.context-menu-list .context-menu-icon::before { + visibility: hidden; +} +.context-menu-list .context-menu-item.context-menu-icon-radio { + background-color: var(--co-primary-element-light); +} +.context-menu-list .context-menu-item.context-menu-icon-radio a { + color: var(--co-primary-light); +} +.context-menu-list .context-menu-item.context-menu-icon-radio.context-menu-hover { + background-color: var(--co-primary-element-light) !important; + box-shadow: inset 0 0 0 25px rgba(0, 0, 0, 0.1); + /* Adjust the alpha value to control the darkness */ +} + +/** Cursor style */ +.leaflet-cursor-container .leaflet-cursor-header { + font-family: var(--cool-font); + font-size: 13px; + border-radius: 3px; + margin-left: -3px; + margin-top: -18px; + padding: 3px 5px; + height: 15px; +} + +/** Inactive document modal style */ +#inactive_user_message::before { + background-image: url("images/lc_watch_later_branding.svg"); + display: block; + content: ""; + width: 3rem; + height: 3rem; + background-size: cover; + margin: 0 auto 20px; + opacity: var(--opacity-icon); +} + +#inactive_user_message { + color: var(--co-color-main-text) !important; + padding: 1em; + box-sizing: border-box; +} + +/** About Dialog **/ +#integrator-logo { + flex-grow: 1 !important; + background: url("images/toolbar-bg-logo.svg") no-repeat center/128px; + width: 128px; +} + +#product-name { + justify-content: left !important; + color: var(--color-primary) !important; +} + +#product-logo, #lokit-logo { + background-position: center !important; + flex-grow: 1; +} + +#product-logo { + background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhLS0gQ3JlYXRlZCB3aXRoIElua3NjYXBlIChodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy8pIC0tPgoKPHN2ZwogICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyIKICAgeG1sbnM6c3ZnPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzb2RpcG9kaT0iaHR0cDovL3NvZGlwb2RpLnNvdXJjZWZvcmdlLm5ldC9EVEQvc29kaXBvZGktMC5kdGQiCiAgIHhtbG5zOmlua3NjYXBlPSJodHRwOi8vd3d3Lmlua3NjYXBlLm9yZy9uYW1lc3BhY2VzL2lua3NjYXBlIgogICB3aWR0aD0iMzkiCiAgIGhlaWdodD0iMzkiCiAgIHZpZXdCb3g9IjAgMCA4LjAgMTAuMzE4NzUiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2ZzY0MTciCiAgIGlua3NjYXBlOnZlcnNpb249IjAuOTIuMiAoNWMzZTgwZCwgMjAxNy0wOC0wNikiCiAgIHNvZGlwb2RpOmRvY25hbWU9InRvb2xiYXItYmctZm9udC5zdmciPgogIDxkZWZzCiAgICAgaWQ9ImRlZnM2NDExIiAvPgogIDxzb2RpcG9kaTpuYW1lZHZpZXcKICAgICBpZD0iYmFzZSIKICAgICBwYWdlY29sb3I9IiNmZmZmZmYiCiAgICAgYm9yZGVyY29sb3I9IiM2NjY2NjYiCiAgICAgYm9yZGVyb3BhY2l0eT0iMS4wIgogICAgIGlua3NjYXBlOnBhZ2VvcGFjaXR5PSIwLjAiCiAgICAgaW5rc2NhcGU6cGFnZXNoYWRvdz0iMiIKICAgICBpbmtzY2FwZTp6b29tPSIxMS4yIgogICAgIGlua3NjYXBlOmN4PSIzNy4xMTYwNzIiCiAgICAgaW5rc2NhcGU6Y3k9IjM3LjExNjA3MiIKICAgICBpbmtzY2FwZTpkb2N1bWVudC11bml0cz0icHgiCiAgICAgaW5rc2NhcGU6Y3VycmVudC1sYXllcj0ibGF5ZXIxIgogICAgIHNob3dncmlkPSJmYWxzZSIKICAgICB1bml0cz0icHgiCiAgICAgaW5rc2NhcGU6c2hvd3BhZ2VzaGFkb3c9ImZhbHNlIgogICAgIGlua3NjYXBlOndpbmRvdy13aWR0aD0iMTk4MiIKICAgICBpbmtzY2FwZTp3aW5kb3ctaGVpZ2h0PSIxOTgyIgogICAgIGlua3NjYXBlOndpbmRvdy14PSItOCIKICAgICBpbmtzY2FwZTp3aW5kb3cteT0iLTgiCiAgICAgaW5rc2NhcGU6d2luZG93LW1heGltaXplZD0iMSIgLz4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE2NDE0Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZwogICAgIGlua3NjYXBlOmxhYmVsPSJMYXllciAxIgogICAgIGlua3NjYXBlOmdyb3VwbW9kZT0ibGF5ZXIiCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLC0yODYuNjgxMjMpIj4KICAgIDxwb2x5Z29uCiAgICAgICBpZD0icG9seWdvbjE0IgogICAgICAgcG9pbnRzPSIxNy45MTQsNDQuODkzIDE3LjM1OCw0NC4zODYgMTcuMjU4LDIwLjcxOCAxNy43NzIsMjAuMTcyIDMwLjk1OCwzMi41OTkgIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZiIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiM1YzI5ODM7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjE2IgogICAgICAgcG9pbnRzPSIzMC45NTgsMzIuNTk5IDMwLjM3OSwzMy4xNDUgMTcuOTE0LDQ0Ljg5MyAyOC42NTQsNTUuNjM4IDUxLjc0MiwzMi41NSAyOC41NjEsOS4zNjIgMTcuNzYzLDIwLjE2MiAxNy43NzIsMjAuMTcyIDMwLjM3OSwzMi4wNTMgIgogICAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMC4yMjE3ODM0OCwwLDAsMC4yMjE3ODM0OCwtMy44MDE4MjI5LDI4NC42MjU4MSkiIC8+CiAgICA8cG9seWdvbgogICAgICAgaWQ9InBvbHlnb24xOCIKICAgICAgIHBvaW50cz0iMjkuODY0LDMyLjU5OSAxNy4zNTgsNDQuMzg2IDE3LjI1OCwyMC43MTggIgogICAgICAgc3R5bGU9ImZpbGw6I2M4YzhjOCIKICAgICAgIHRyYW5zZm9ybT0ibWF0cml4KDAuMjIxNzgzNDgsMCwwLDAuMjIxNzgzNDgsLTMuODAxODIyOSwyODQuNjI1ODEpIiAvPgogICAgPHBvbHlnb24KICAgICAgIHN0eWxlPSJmaWxsOiMyZDBiNDc7ZmlsbC1vcGFjaXR5OjEiCiAgICAgICBpZD0icG9seWdvbjIwIgogICAgICAgcG9pbnRzPSIzMS44NDcsNDEuNDgzIDI3Ljc0MywzNS42MjggMTguODA3LDQ0LjA1MiAiCiAgICAgICB0cmFuc2Zvcm09Im1hdHJpeCgwLjIyMTc4MzQ4LDAsMCwwLjIyMTc4MzQ4LC0zLjgwMTgyMjksMjg0LjYyNTgxKSIgLz4KICA8L2c+Cgo8IS0tIChDKSBDb2xsYWJvcmEgUHJvZHVjdGl2aXR5IDIwMjAsIEFsbCBSaWdodHMgUmVzZXJ2ZWQgLS0+Cjwvc3ZnPg==") !important; +} + +#integrator-logo, #about-dialog-logos { + flex-basis: 256px; + max-width: 256px; +} + +.leaflet-progress-spinner::before { + background-position: center !important; + height: 94px !important; +} + +#mobile-wizard.menuwizard { + z-index: 1003; +} + +#toolbar-wrapper.mobile > tbody > tr { + height: 100%; +} + +#toolbar-down #search-input { + border-color: var(--color-border) !important; +} + +#toolbar-down #search-input:hover { + border-color: var(--color-border-dark) !important; +} + +#shareas .unolabel { + color: var(--color-text-lighter); +} + +/* +Any of these can be used either by omitting the prefix (it will default to --co) +or by setting a different prefix by passing it and 2nd argument +*/ +/** + * Use this mixin to DECLARE a set of CSS Custom Properties in the :root element. + * The variables in $css_variables will be properly prefixed. + * The use of this mixin is encoraged to keep a good scalability. + * @include set-cssvars(( + * primary-color: #504999, + * secondary-color: #38257a, + * ), ( + * primary-color: #38257a, + * secondary-color: #504999, + * )); + * result in: + * root { + * --co-primary-color: #504999; + * --co-secondary-color: #38257a; + * } + * [data-theme="dark"] { + * --co-primary-color: #38257a; + * --co-secondary-color: #504999; + * } +*/ +/** + * ASSIGN a css variable value with prefix + * .selector { + * color: get-cssvar(primary-color); + * } + * + * result in: + * .selector { + * color: var(--co-primary-color); + * } + */ +/** + * ASSIGN a css variable value with prefix +*.btn-primary { +* height: cssvar(button-height); +* &--big { +* // rewrite height for btn-primary--big +* @include update-cssvar(button-height, 56px); +* } +*} + */ +:root { + --co-color-main-text: #212121 ; + --co-color-background-hover: #f5f5f5 ; + --co-color-background-dark: #ededed ; + --co-body-bg: #ffffff ; + --co-text-accent: #38257a ; + --co-primary-element: #4c566a ; + --co-primary-elment-rgb: 76, 86, 106 ; + --co-primary-element-light: #eaecf0 ; + --co-primary-text: #ffffff ; + --co-border-radius: 3px ; + --co-color-border-dark: #b0b4bd ; + --co-color-text-lighter: #636363 ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #f1f1f1 ; + --co-color-text-nb-tab: #fff ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.15) ; + --co-settings-btn-primary: #00679e ; + --co-settings-btn-primary-text: #ffffff ; + --co-settings-btn-light: #e5eff5 ; + --co-settings-btn-light-text: #00293f ; + --co-settings-border: #ededed ; + --co-settings-border-contrast: #dbdbdb ; + --co-settings-text: #222222 ; + --co-settings-text-maxcontrast: #6b6b6b ; + --co-settings-background: #ffffff ; + --co-settings-background-hover: #f5f5f5 ; +} + +[data-theme=dark] { + --co-color-main-text: #ededed ; + --co-color-background-hover: #262626 ; + --co-color-background-dark: #1E1E1E ; + --co-body-bg: #262626 ; + --co-text-accent: #83beec ; + --co-primary-element: #0b87e7 ; + --co-primary-element-light: #83beec ; + --co-primary-text: #000 ; + --co-color-border-dark: #1E1E1E ; + --co-color-text-lighter: #fff ; + --co-color-warning: #eca700 ; + --co-color-main-background-translucent: transparent ; + --co-color-background-light: #363636 ; + --co-color-bg-nb-tab: rgba(255, 255, 255, 0.05) ; + --co-settings-btn-primary: #0091f2 ; + --co-settings-btn-primary-text: #000000 ; + --co-settings-btn-light: #14232c ; + --co-settings-btn-light-text: #99d3f9 ; + --co-settings-border: #292929 ; + --co-settings-border-contrast: #3b3b3b ; + --co-settings-text: #ebebeb ; + --co-settings-text-maxcontrast: #999999 ; + --co-settings-background: #171717 ; + --co-settings-background-hover: #212121 ; +} + +:root { + --settings-btn-primary: var(--co-settings-btn-primary) !important; + --settings-btn-primary-text: var(--co-settings-btn-primary-text) !important; + --settings-btn-light: var(--co-settings-btn-light) !important; + --settings-btn-light-text: var(--co-settings-btn-light-text) !important; + --settings-border: var(--co-settings-border) !important; + --settings-border-contrast: var(--co-settings-border-contrast) !important; + --settings-text: var(--co-settings-text) !important; + --settings-text-maxcontrast: var(--co-settings-text-maxcontrast) !important; + --settings-background: var(--co-settings-background) !important; + --settings-background-hover: var(--co-settings-background-hover) !important; +} + +.cool-annotation-img > .avatar-img { + background: none; +} + +.cool-annotation-redline-content-wrapper { + outline: 1px dashed #e7c1e0; + outline-offset: -1px; +} + +.cool-annotation-redline-content-wrapper, .cool-annotation-content-wrapper { + box-shadow: 0px 1px 3px var(--color-box-shadow); +} + +.cool-annotation-redline-content-wrapper:hover, .cool-annotation-content-wrapper:hover { + box-shadow: 0px 3px 6px var(--color-box-shadow); +} + +.annotation-active .cool-annotation-redline-content-wrapper, .annotation-active .cool-annotation-content-wrapper { + box-shadow: 0px 3px 6px var(--color-box-shadow); +} + +.cool-annotation-collapsed.modalpopup .annotation-active, +.cool-annotation-collapsed.modalpopup .cool-annotation-content-wrapper { + border: none !important; +} + +.cool-annotation-menu:hover, .cool-annotation-menu-redline:hover, .cool-redline-accept-button:hover, .cool-redline-reject-button:hover { + border: 1px solid var(--co-primary-element-light); + background-color: var(--co-color-background-hover) !important; + border-radius: 16px; +} + +.context-menu-list.cool-font.context-menu-root { + min-width: auto !important; +} + +.cool-annotation-textarea { + margin-bottom: 10px; +} + +.cool-annotation-textarea:focus { + outline-color: var(--co-primary-element); +} + +.cool-annotation-edit .annotation-button.button-primary, #table-buttonbox #ok { + background: none; + background-color: var(--co-primary-element); + color: var(--co-primary-text); +} + +.cool-annotation-edit .annotation-button.button-primary:hover, #table-buttonbox #ok:hover { + background-color: var(--co-primary-light); + border: 1px solid var(--co-primary-element); + color: var(--co-primary-element); +} + +.cool-annotation-edit .annotation-button.button-secodnary, #table-buttonbox #cancel { + background: none; + background-color: var(--co-color-background-dark); + height: 32px; + line-height: 0em; + color: black; + min-width: 62px; +} + +.cool-annotation-edit .annotation-button.button-secodnary:hover, #table-buttonbox #cancel:hover { + background-color: var(--co-body-bg); + border: 1px solid var(--co-color-background-hover); +} + +/* commented so markers also appear on desktop +@media (pointer: fine) { + CSS for precise devices AKA cursor driven devices + .leaflet-selection-marker-start,.leaflet-selection-marker-end{ + display: none; + } +}*/ +.transform-handler--rotate { + stroke: #4b5569; + fill: #4b5569; +} + +.transform-handler--rotate:hover { + stroke: #46bddd !important; + fill: white !important; + stroke-width: 8; + cursor: grab !important; +} + +.leaflet-drag-transform-marker { + stroke: #4c566a; +} + +.leaflet-drag-transform-marker:hover { + fill: #46bddd; +} + +/*loading spinner colors*/ +.leaflet-progress > span { + background: #0082c9 !important; + border: none !important; + border-radius: 1px !important; +} + +.leaflet-progress { + background: #e9e7f0 !important; + border-radius: 1px !important; + height: 4px !important; + margin: 10px 0 0 !important; +} + +.leaflet-progress > span > span { + padding: 0 8px !important; + font-size: 11px !important; + font-weight: bold !important; + color: #0082c9 !important; + text-shadow: none !important; +} + +/*icons*/ +#main-menu { + margin-left: 0px; +} + +#document-header { + box-sizing: border-box; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + width: 38px; + height: 32px; +} + +.lo-menu > li > a, .lo-menu > li > a.has-submenu { + border-radius: var(--co-border-radius); + font-size: var(--default-font-size); + color: var(--color-main-text); +} + +html:not([data-theme=dark]) .lo-menu > li > a:hover, +html:not([data-theme=dark]) .lo-menu > li > a:focus, +html:not([data-theme=dark]) .lo-menu > li > a:active, +html:not([data-theme=dark]) .lo-menu > li > a.highlighted { + background-color: var(--co-color-background-hover); + border-bottom-color: var(--co-primary-element-light); + color: var(--co-text-accent); +} +html:not([data-theme=dark]) .lo-menu a:hover:not(.disabled), +html:not([data-theme=dark]) .lo-menu a:focus, +html:not([data-theme=dark]) .lo-menu a:active, +html:not([data-theme=dark]) .lo-menu a.highlighted { + background: var(--co-primary-element); + color: var(--co-primary-text); +} +html:not([data-theme=dark]) #menu-last-mod a { + color: var(--co-primary-element); +} + +/* Disable parent menu styles for notebookbar */ +.lo-menu.notebookbar > li > a { + background-color: transparent; + border: none; + line-height: normal; +} + +#document-name-input { + font-size: var(--default-font-size) !important; +} + +#menu-last-mod > a { + background-color: var(--co-bg-body); + font-size: 12px; + z-index: 0 !important; +} + +#menu-last-mod span { + padding-left: 3px; + padding-right: 3px; +} + +#menu-last-mod a:hover span { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border-radius: var(--co-border-radius); +} + +.cool-ruler { + height: var(--ruler-height); +} + +.cool-ruler-left:hover { + border-right: 3px solid rgb(var(--doc-type)); +} + +.cool-ruler-right:hover { + border-left: 3px solid rgb(var(--doc-type)); +} + +.cool-ruler-left.leaflet-drag-moving { + border-right: 2px dotted rgb(var(--doc-type)); +} + +.cool-ruler-right.leaflet-drag-moving { + border-left: 2px dotted rgb(var(--doc-type)); +} + +.leaflet-bar { + border-bottom: solid 1px var(--color-border) !important; +} + +.cool-ruler-margin { + background-color: var(--color-background-dark) !important; +} + +.cool-ruler { + background-color: var(--co-color-background-light) !important; +} + +.cool-ruler.vruler { + border-top: solid 1px var(--color-border) !important; + border-bottom: none !important; +} + +.ui-scroll-left, .ui-scroll-right { + background: rgb(var(--doc-type), 0.9) url("images/scroll-double-white.svg") center center/18px no-repeat; + box-shadow: 0px 0px 2px var(--color-box-shadow); + -moz-box-shadow: 0px 0px 2px var(--color-box-shadow); + -webkit-box-shadow: 0px 0px 2px var(--color-box-shadow); + width: 22px; + border-radius: 0px 10px 10px 0px; +} +[data-theme=dark] .ui-scroll-left, [data-theme=dark] .ui-scroll-right { + background: rgb(var(--doc-type), 0.6) url("images/scroll-double-white.svg") center center/18px no-repeat; +} + +.ui-scroll-left::before, +.ui-scroll-right::after { + display: none; +} + +#toolbar-wrapper:not(.hasnotebookbar) .ui-scroll-left, #toolbar-wrapper:not(.hasnotebookbar) .ui-scroll-right { + height: 90%; + top: 5%; +} + +.ui-scroll-right { + -webkit-transform: rotate(180deg); + -moz-transform: rotate(180deg); + -ms-transform: rotate(180deg); + -o-transform: rotate(180deg); + transform: rotate(180deg); +} + +.ui-scroll-left:hover, .ui-scroll-right:hover { + background: rgb(var(--doc-type), 1) url("images/scroll-double-white.svg") center center/18px no-repeat; +} + +/*sidebar*/ +#sidebar-dock-wrapper { + padding-top: 0; +} + +/*sidebar----END---*/ +#table-shortcutstoolbox > tr > td { + height: 25px; + margin: 0px; + padding: 0px; +} + +#save.savemodified::after, #File .unoSave.savemodified:after { + display: none; +} + +/*Notebookbar and Sidebar icons*/ +.unospan-optionstoolboxdown { + background-color: transparent !important; + border-color: transparent !important; +} + +.hasnotebookbar .unoSidebarDeck\.PropertyDeck img, .hasnotebookbar .unoModifyPage img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoSlideChangeWindow .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoCustomAnimation .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.hasnotebookbar .unoMasterSlidesPanel .unobutton img { + display: inline; + -moz-box-sizing: border-box; + box-sizing: border-box; + width: 24px !important; + height: 24px !important; + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + filter: none; +} + +.notebookbar.unoDefaultBullet img.selected { + background-color: #e6e6e640; +} + +.hasnotebookbar .unotoolbutton.notebookbar.has-label .unobutton.selected, +.hasnotebookbar .unotoolbutton.notebookbar.inline .unobutton.selected { + filter: none; + background-color: transparent; +} + +html:not([data-theme=dark]) .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline):not([class*=unospan-options-]), +html:not([data-theme=dark]) .sidebar.unotoolbutton.selected, +html:not([data-theme=dark]) .notebookbar.unotoolbutton.selected { + border-radius: var(--co-border-radius) !important; +} + +html[data-theme=dark] .hasnotebookbar .ui-content.unotoolbutton.selected:not(.has-label):not(.inline):not([class*=unospan-options-]), +html[data-theme=dark] .sidebar.unotoolbutton.selected { + border-radius: var(--co-border-radius) !important; + outline-color: transparent; +} + +.hasnotebookbar .unotoolbutton.notebookbar:not(.has-label):not(.inline) .unobutton.selected + .ui-content.unolabel { + color: var(--co-primary-text) !important; +} + +[id^=NumberFormatCurrency] > img.selected { + filter: none !important; +} + +.ui-content.unotoolbutton.selected:hover, +.unotoolbutton:hover, +.ui-content.unotoolbutton.selected:not(.has-label):not(.inline):hover, +#clearFormatting:hover, +#FormatPaintbrush:hover { + border-radius: var(--co-border-radius) !important; + background-color: var(--color-background-dark) !important; + border-color: transparent !important; +} + +#toolbar-down .unotoolbutton.jsdialog:hover { + border-radius: 0 !important; + border-block-color: transparent !important; +} + +.ui-tab.notebookbar { + line-height: normal; +} + +.ui-tab.selected.jsdialog { + box-shadow: 0 0 0 0 var(--color-box-shadow); + background-color: #ffffff50 !important; +} + +[data-theme=dark] .ui-tab.selected.jsdialog { + border-color: #555 !important; + color: var(--co-color-text-lighter) !important; + box-shadow: none !important; +} + +[data-theme=dark] .ui-tab.jsdialog { + background-color: transparent !important; + border-color: var(--color-main-background) !important; +} + +.ui-tab.jsdialog:not(.selected):hover { + cursor: pointer !important; + background-color: var(--color-background-darker) !important; + color: var(--color-text-darker) !important; +} + +.main-nav.hasnotebookbar .shareas { + background-color: rgb(var(--doc-type)) !important; + border-color: rgb(var(--doc-type)) !important; +} +.main-nav.hasnotebookbar .shareas .unobutton { + display: none; +} +.main-nav.hasnotebookbar .shareas .unolabel { + font-size: 0.88rem; + line-height: 1.125rem; + color: #fff !important; +} + +html:not([data-theme=dark]) .main-nav.hasnotebookbar .shareas .unolabel { + border-color: rgb(var(--doc-type)) !important; +} + +#toolbar-top #sidebar { + border: none !important; +} + +#toolbar-top #sidebar .checked { + border-color: transparent !important; +} + +#toolbar-up > div > table > tbody > tr > td > div > .checked img.sidebar_modify_page { + background-size: 24px !important; +} + +/*icons---END*/ +#toolbar-up .over { + border: 1px solid var(--co-primary-element); + background-color: var(--co-body-bg); + border-radius: var(--co-border-radius); +} + +.checked > tbody > tr > td > table > tbody > tr > td > img { + -webkit-filter: brightness(300%); + filter: brightness(300%); +} + +.checked > tbody > tr > td > table > tbody > tr > td > .togglemergecells, .checked > tbody > tr > td > table > tbody > tr > td > .setborderstyle { + -webkit-filter: none; + filter: none; +} + +/*drop-down menu*/ +.select2-container--default .select2-selection--single, +#toolbar-up .ui-combobox, +.ui-combobox.notebookbar, +#toolbar-down #LanguageStatus .unotoolbutton, +#toolbar-down #StateTableCellMenu .unotoolbutton, +#toolbar-down #zoom .unotoolbutton, +.sidebar.jsdialog.ui-listbox { + border-color: transparent; + border-radius: var(--co-border-radius); +} + +.ui-combobox-button { + border-left: none; +} + +.ui-toolbar .unotoolbutton .arrowbackground { + border-top-color: #696969; +} + +.select2-container--default .select2-selection--single:hover, +.sidebar.jsdialog.ui-listbox:hover { + background-color: var(--color-main-background); +} + +.select2-container--below.select2-container--open .select2-selection--single { + border: 1px solid var(--co-border); +} + +/* select (arrow and radius)*/ +.select2-container--default .select2-selection--single .select2-selection__arrow b, +#toolbar-down #LanguageStatus .arrowbackground { + border-color: var(--color-main-text) transparent transparent transparent; +} + +#toolbar-down #languagestatus label, +#zoom label { + color: var(--color-text-dark); +} + +.ui-toolbar .unotoolbutton { + border-radius: var(--co-border-radius); +} + +/*select----END---*/ +.select2-selection__rendered, +.ui-combobox-content.notebookbar { + font-weight: bold; + font-family: var(----native-font-stack); + background-color: var(--color-background-dark); +} + +/*drop-down menu----END----*/ +#toolbar-top #sidebar > div > table, #toolbar-top #modifypage > div > table, #toolbar-top #slidechangewindow > div > table, #toolbar-top #customanimation > div > table, #toolbar-top #masterslidespanel > div > table { + background: none !important; +} + +#toolbar-top #sidebar .checked img, #toolbar-top #modifypage .checked img, #toolbar-top #slidechangewindow .checked img, #toolbar-top #customanimation .checked img, #toolbar-top #masterslidespanel .checked img { + -webkit-filter: none; + filter: none; +} + +#toolbar-top #sidebar > div > .unotoolbutton, +#toolbar-top #modifypage > div > .unotoolbutton, +#toolbar-top #slidechangewindow > div > .unotoolbutton, +#toolbar-top #customanimation > div > .unotoolbutton, +#toolbar-top #masterslidespanel > div > .unotoolbutton { + box-shadow: none !important; + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; +} + +#toolbar-top #sidebar > div > .checked:not(.over), +#toolbar-top #modifypage > div > .checked:not(.over), +#toolbar-top #slidechangewindow > div > .checked:not(.over), +#toolbar-top #customanimation > div > .checked:not(.over), +#toolbar-top #masterslidespanel > div > .checked:not(.over) { + border-color: #fff; +} + +#icon-integrator-sidebar.icon-integrator-sidebar { + order: 90; + min-width: auto; + border: none; + border-radius: var(--co-border-radius); + flex-shrink: 0; + padding: 0; + margin-inline-end: 5px; +} +#icon-integrator-sidebar.icon-integrator-sidebar:hover { + cursor: pointer; + background-color: var(--color-background-darker) !important; + opacity: 1; +} +#icon-integrator-sidebar.icon-integrator-sidebar:focus, #icon-integrator-sidebar.icon-integrator-sidebar:focus-visible { + outline: 2px solid var(--color-primary); + outline-offset: -8px; +} + +#toolbar-wrapper:not(.hasnotebookbar) { + border-top: none; +} + +#toolbar-up .checked { + background-color: var(--co-primary-element); + border-color: transparent; + box-shadow: inset 0 0 1px 0 #696969; +} + +#toolbar-up .checked.over { + border-color: transparent; + box-shadow: inset 0 0 1px 0 #696969, inset 0 0 24px 1px var(--co-primary-element), inset 0 0 24px 24px #ffffff50; +} + +.w2ui-icon.fold, .w2ui-icon.unfold { + background-size: 16px !important; +} + +.cool-annotation-edit #annotation-save, +.leaflet-popup-content input[type=button] { + color: var(--co-primary-text); + background-color: var(--co-primary-element); + border: 1px solid var(--co-primary-element-light); +} + +.cool-annotation-edit #annotation-save:hover, +.leaflet-popup-content input[type=button]:hover { + background-color: var(--co-primary-element-light); + border: 1px solid var(--co-primary-element-light); +} + +.cool-annotation-edit #annotation-cancel { + color: var(--co-color-main-text); + background-color: var(--co-color-background-dark); + border: 1px solid var(--co-color-background-dark); +} + +.cool-annotation-edit #annotation-cancel:hover { + background-color: var(--co-color-background-hover); +} + +.insertshape-grid .col:hover { + border: 1px solid var(--co-color-border-dark); +} + +.insertshape-grid .row-header { + background-color: var(--co-color-background-dark); +} + +#toolbar-wrapper:not(.mobile) ~ #toolbar-down { + min-height: 26px; + background-color: var(--co-color-background-light); +} + +.leaflet-zoom-animated:hover > path:nth-child(2) { + stroke: var(--co-primary-element) !important; + stroke-dasharray: 1; +} + +/**/ +#InsertMode.insert-mode-false { + background-color: var(--co-primary-element); + color: var(--co-primary-text); + border-radius: var(--co-border-radius); +} + +#PermissionMode.status-readonly-mode { + background-color: var(--co-color-warning); + border-radius: var(--co-border-radius); + color: var(--co-main-text); +} + +/**/ +#search-input.search-not-found { + border-color: #ba2323 !important; + background-color: #fac9c9 !important; +} + +.select2-container--default .select2-results__option--highlighted[aria-selected] { + background-color: var(--co-primary-element); + color: var(--co-primary-text); +} + +#toolbar-down #zoom-button img { + display: none; +} + +/* Calc Spreadsheet styling*/ +.spreadsheet-tab { + background-color: transparent !important; + border-radius: var(--co-border-radius); + border-color: transparent !important; +} + +.spreadsheet-tab > div:not(.lock) { + border-bottom: 2px solid transparent; +} + +.spreadsheet-tab:hover > div:not(.lock) { + border-color: var(--color-border); +} + +.spreadsheet-tab:hover, .spreadsheet-tab:focus { + font-weight: border; + outline: none; +} + +.spreadsheet-tab.spreadsheet-tab-selected { + color: var(--color-main-text) !important; + font-weight: bold; + background-color: transparent !important; +} + +.spreadsheet-tab.spreadsheet-tab-selected > div:not(.lock) { + border-bottom-color: rgb(var(--doc-type)); +} + +#spreadsheet-tab-scroll button.spreadsheet-tab-selected:hover, +#spreadsheet-tab-scroll button.spreadsheet-tab-selected:focus { + outline: none; + font-weight: bold; + background-color: rgb(var(--doc-type)) !important; +} + +#tb_spreadsheet-toolbar_item_insertsheet { + padding-top: 2px; +} + +#InsertMode.insert-inactive { + /*will affect this proposal: https://bugs.collabora.com/show_bug.cgi?id=4291*/ + opacity: 0.6; +} + +input[type=checkbox].autofilter, .jsdialog input[type=checkbox] { + border-radius: 3px; + box-shadow: none !important; +} + +input[type=checkbox].autofilter:hover, .jsdialog input[type=checkbox]:hover { + box-shadow: inset 0px 0px 2px 2px var(--color-box-shadow), inset 0px 0px 0px 2px gray; +} + +input[type=checkbox]:checked.autofilter:hover, .jsdialog input[type=checkbox]:checked:hover { + box-shadow: 0px 0px 1px 2px var(--color-box-shadow); +} + +.jsdialog input[type=radio]:not(.ui-color-picker-entry) { + /*to be removed upon upstream merge */ + -webkit-appearance: none; + -moz-appearance: none; + -o-appearance: none; + appearance: none; + width: 25px; + height: 20px; + margin: 1px 8px; + /*-*/ +} + +#product-name.product-collabora-online { + color: #504999; +} + +#product-logo { + background-image: url("images/toolbar-bg-logo.svg"); + background-position: center 8px !important; +} + +#lokit-logo { + background: url("remote/static/lokit-extra-img.svg") center top/82px no-repeat; + display: flex; + flex-grow: 1; +} + +#about-dialog hr { + color: #A8D3E059; +} + +#about-dialog h3 { + color: var(--co-primary-element); +} + +#about-dialog { + overflow: visible; + overflow-wrap: initial; +} + +/*icons*/ +.lokdialog_container .ui-dialog-titlebar.ui-widget-header { + background: var(--color-main-background); + color: var(--color-main-text); + border: none; + font-family: sans-serif; + font-weight: normal; + border-bottom-left-radius: 0 !important; + border-bottom-right-radius: 0 !important; +} + +.lokdialog_container.ui-dialog .ui-dialog-title { + margin-bottom: 0; +} + +.lokdialog_container.ui-dialog .ui-state-default { + background: none; + border: none; +} + +.lokdialog_container.ui-dialog .ui-dialog-titlebar-close:hover { + /*border: 1px solid #888888; + border-radius: base.get-cssvar(border-radius);*/ + border-radius: 12px; + background-image: radial-gradient(var(--co-primary-element) 60%, white 94%); + background-color: #4c566a; + /* fallback for ie11 */ + background-color: var(--co-primary-element); +} + +.leaflet-popup-content-wrapper { + box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + -webkit-box-shadow: 0 -1px 2px 0 rgba(0, 0, 0, 0.15), 0 2px 2px 0 rgba(0, 0, 0, 0.1); + border-radius: var(--co-border-radius); +} + +.leaflet-control-layers { + box-shadow: shadow; + -moz-box-shadow: shadow; + -webkit-box-shadow: shadow; +} + +.leaflet-popup-content > table > tbody > tr > th:nth-child(2) { + padding-left: 0px !important; +} + +.leaflet-popup-selected > td:nth-child(4) { + color: white; + background-color: #8C86BC; +} + +.leaflet-popup-selected > td:nth-child(2) { + padding-left: 1px; + border-left: 1px solid #8C86BC; +} + +.leaflet-popup-selected > td:last-child { + padding-right: 1px; + border-right: 1px solid #8C86BC; +} + +.leaflet-popup-selected > td { + border-bottom: 1px solid #8C86BC; + border-top: 1px solid #8C86BC; +} + +.leaflet-popup-content > span { + padding-left: 4px; + color: var(--co-primary-element); + text-transform: uppercase; + font-family: sans-serif; +} + +.leaflet-popup-content tr:first-of-type:hover { + background: none !important; + cursor: auto; +} + +.leaflet-popup-selected { + background-color: white !important; + color: #504999; + border-color: #4c566a !important; +} + +.leaflet-popup-content > table > tbody > tr > th:nth-child(6) { + padding-right: 0px !important; +} + +.leaflet-popup-content input[type=button] { + border-radius: var(--co-border-radius); + height: 32px; + line-height: 0em; +} + +*:not(.modalpopup) > .lokdialog_container.ui-dialog.ui-widget-content, .autofilter-container { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.iframe-dialog-modal { + border: 1px solid var(--co-color-border-dark); + border-radius: var(--co-border-radius); +} + +.ui-widget-header, .lokdialog.ui-dialog-content.ui-widget-content { + border-radius: var(--co-border-radius) !important; +} + +form:not(.snackbar) > .lokdialog.ui-dialog-content.ui-widget-content { + border-top-left-radius: 0 !important; + border-top-right-radius: 0 !important; +} + +.main-nav { + box-sizing: border-box; +} + +html:not([data-theme=dark]) body { + color: var(--co-color-main-text); + background: var(--co-body-bg); +} + +html:not([data-theme=dark]) body #settingIframe { + color: var(--co-settings-text) !important; + background: var(--co-settings-background) !important; +} + +.leaflet-container { + background: #f8f9fa; +} + +#document-container { + border-color: var(--color-border) !important; +} + +.jsdialog:focus-visible { + outline: 1px solid var(--co-primary-element); +} + +.jsdialog input[type=checkbox]:focus-visible { + outline: 1px solid #005ebd; + outline-offset: -1px; +} diff --git a/usr/share/coolwsd/browser/dist/f7cloud/branding.js b/usr/share/coolwsd/browser/dist/f7cloud/branding.js new file mode 100644 index 0000000..fd55d3b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/branding.js @@ -0,0 +1,127 @@ +FORBION + +var brandProductName = 'F7 Office'; +var brandProductURL = 'https://f7cloud.com/office'; +var brandProductFAQURL = 'https://f7cloud.com/office'; + +var menuItems; +var applyBranding = function() { + + function getCustomLogoUrl() { + let customLogo = getComputedStyle(document.documentElement).getPropertyValue('--nc-custom-logo'); + let customLogoUrl; + if (customLogo !== '') { + customLogoUrl = decodeURIComponent(customLogo); + } + return customLogoUrl; + } + + // wait until the menu (and particularly the document-header) actually exists + function setLogo() { + let logoHeader = document.getElementById('document-header'); + + if (!logoHeader) { + // the logo does not exist in the menu yet, re-try in 250ms + setTimeout(setLogo, 250); + } else { + let logo = document.querySelector('#document-header > div'); + logo.style.setProperty('background-color', 'var(--nc-logo-background)', 'important'); + + logoHeader.style.setProperty('display', 'var(--nc-logo-display, flex)', 'important'); + + let customLogoUrl = getCustomLogoUrl(); + if (customLogoUrl) + logo.style.setProperty('background-image', 'url("' + customLogoUrl + '")', 'important'); + + menuItems = document.querySelectorAll('#main-menu > li > a'); + } + } + + function setAboutImg() { + if (document.getElementById('lokit-extra')) + return; + var lk = document.getElementById('lokit-version'); + var aboutDialog = document.getElementById('about-dialog-info'); + if (!lk || !aboutDialog) { + setTimeout(setAboutImg, 250); + } else { + let customLogoUrl = getCustomLogoUrl(); + if (customLogoUrl) { + let integratorLogo = document.getElementById('integrator-logo'); + if (integratorLogo) + integratorLogo.style.backgroundImage = 'url("' + getCustomLogoUrl() + '")'; + } + } + } + + function cssUrlsRenamerSocketProxy() { + var replaceUrls = function(rules, replaceBase) { + if (!rules) + return; + + for (var r = 0; r < rules.length; ++r) { + // check subset of rules like @media or @import + if (rules[r] && rules[r].type != 1) { + replaceUrls(rules[r].cssRules || rules[r].rules, replaceBase); + continue; + } + if (!rules[r] || !rules[r].style) + continue; + var img = rules[r].style.backgroundImage; + if (img === '' || img === undefined) + continue; + if (img.startsWith('url("images/')) + { + rules[r].style.backgroundImage = + img.replace('url("images/', replaceBase + '/images/'); + } + if (img.startsWith('url("remote/')) + { + rules[r].style.backgroundImage = + img.replace('url("remote/', replaceBase + '/remote/'); + } + } + }; + var sheets = document.styleSheets; + for (var i = 0; i < sheets.length; ++i) { + var relBases; + try { + relBases = sheets[i].href.split('/'); + } catch { + window.app.console.log('Missing href from CSS number ' + i); + continue; + } + relBases.pop(); // bin last - css name. + var replaceBase = 'url("' + relBases.join('/'); + + var rules; + try { + rules = sheets[i].cssRules || sheets[i].rules; + } catch (err) { + window.app.console.log('Missing CSS from ' + sheets[i].href); + continue; + } + replaceUrls(rules, replaceBase); + } + }; + + setLogo(); + setAboutImg(); + + if (window.socketProxy) { + cssUrlsRenamerSocketProxy(); + } +}; + +window.addEventListener('load', applyBranding); +window.initializedUI = applyBranding; // will be called on UI init (also after mode switch) + +/*a::first-letter"*/ +document.onkeyup = function(e) { + if (e.altKey && e.shiftKey) { + console.log('alt + shift + f'); + menuItems.forEach(function(menuItem) { + menuItem.style.setProperty('text-decoration', 'underline', 'important'); + }); + } +}; diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off-disabled.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off-disabled.svg new file mode 100644 index 0000000..f629e34 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off-disabled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off.svg new file mode 100644 index 0000000..8838589 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on-disabled.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on-disabled.svg new file mode 100644 index 0000000..5ea0438 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on-disabled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on.svg new file mode 100644 index 0000000..3bc7570 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/checkbox-on.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget-hover.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget-hover.svg new file mode 100644 index 0000000..bc1baf6 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget-hover.svg @@ -0,0 +1,37 @@ + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget.svg new file mode 100644 index 0000000..74dfd3a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/close-widget.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc-dark_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc-dark_branding.svg new file mode 100644 index 0000000..9996a41 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc-dark_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc.svg new file mode 100644 index 0000000..852385a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/closedoc.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/edit_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/edit_branding.svg new file mode 100644 index 0000000..4da38b7 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/edit_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_bold.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_bold.svg new file mode 100644 index 0000000..82e5882 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_bold.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_italic.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_italic.svg new file mode 100644 index 0000000..0de9a3e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_italic.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_strikeout.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_strikeout.svg new file mode 100644 index 0000000..f927452 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_strikeout.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_underline.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_underline.svg new file mode 100644 index 0000000..fd9d32b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/lc_underline.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_bold.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_bold.svg new file mode 100644 index 0000000..0f493cd --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_bold.svg @@ -0,0 +1,5 @@ +/&gt; + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_italic.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_italic.svg new file mode 100644 index 0000000..8b69b06 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_italic.svg @@ -0,0 +1,5 @@ +/&gt; + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_underline.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_underline.svg new file mode 100644 index 0000000..c9b3325 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/es/sc_underline.svg @@ -0,0 +1,8 @@ +/&gt; + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/fit-cell_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/fit-cell_branding.svg new file mode 100644 index 0000000..75941c9 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/fit-cell_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_down_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_down_branding.svg new file mode 100644 index 0000000..8319ed9 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_down_branding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_up_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_up_branding.svg new file mode 100644 index 0000000..3863541 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/indentation_marker_up_branding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_end.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_end.svg new file mode 100644 index 0000000..5c0ce08 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_end.svg @@ -0,0 +1,47 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_start.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_start.svg new file mode 100644 index 0000000..1f33fc9 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/ios_handle_start.svg @@ -0,0 +1,67 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignblock_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignblock_branding.svg new file mode 100644 index 0000000..db678f2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignblock_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignhorizontalcenter_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignhorizontalcenter_branding.svg new file mode 100644 index 0000000..bfdffe9 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignhorizontalcenter_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignleft_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignleft_branding.svg new file mode 100644 index 0000000..5657c0e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignleft_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignright_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignright_branding.svg new file mode 100644 index 0000000..a08bfd8 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_alignright_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_autosum_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_autosum_branding.svg new file mode 100644 index 0000000..bdd13c4 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_autosum_branding.svg @@ -0,0 +1,38 @@ + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_backgroundcolor_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_backgroundcolor_branding.svg new file mode 100644 index 0000000..a9755df --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_backgroundcolor_branding.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_bold_es.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_bold_es.svg new file mode 100644 index 0000000..82e5882 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_bold_es.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_cancel_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_cancel_branding.svg new file mode 100644 index 0000000..ace7b0c --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_cancel_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_closedocmobile_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_closedocmobile_branding.svg new file mode 100644 index 0000000..50eaed3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_closedocmobile_branding.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_color_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_color_branding.svg new file mode 100644 index 0000000..ace1634 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_color_branding.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementindent_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementindent_branding.svg new file mode 100644 index 0000000..a1c28c8 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementindent_branding.svg @@ -0,0 +1,86 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementlevel_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementlevel_branding.svg new file mode 100644 index 0000000..c8f6813 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_decrementlevel_branding.svg @@ -0,0 +1,86 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultbullet_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultbullet_branding.svg new file mode 100644 index 0000000..75c6036 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultbullet_branding.svg @@ -0,0 +1,102 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_branding.svg new file mode 100644 index 0000000..78c7bc0 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_branding.svg @@ -0,0 +1,98 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_hover_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_hover_branding.svg new file mode 100644 index 0000000..0ea9652 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_defaultnumbering_hover_branding.svg @@ -0,0 +1,98 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_deletepage_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_deletepage_branding.svg new file mode 100644 index 0000000..ef6a0d7 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_deletepage_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_downpage_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_downpage_branding.svg new file mode 100644 index 0000000..32dd096 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_downpage_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_drawchart_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_drawchart_branding.svg new file mode 100644 index 0000000..f8f2315 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_drawchart_branding.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_duplicatepage_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_duplicatepage_branding.svg new file mode 100644 index 0000000..73356bd --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_duplicatepage_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_ellipse_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_ellipse_branding.svg new file mode 100644 index 0000000..53d475a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_ellipse_branding.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_firstrecord_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_firstrecord_branding.svg new file mode 100644 index 0000000..fe052f4 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_firstrecord_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fontcolor.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fontcolor.svg new file mode 100644 index 0000000..ace1634 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fontcolor.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formatpaintbrush_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formatpaintbrush_branding.svg new file mode 100644 index 0000000..c53afb2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formatpaintbrush_branding.svg @@ -0,0 +1,3 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formattedfield_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formattedfield_branding.svg new file mode 100644 index 0000000..e43bbe4 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_formattedfield_branding.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fullscreen_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fullscreen_branding.svg new file mode 100644 index 0000000..2041417 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_fullscreen_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_functiondialog_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_functiondialog_branding.svg new file mode 100644 index 0000000..7a21f36 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_functiondialog_branding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_incrementindent_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_incrementindent_branding.svg new file mode 100644 index 0000000..61380fe --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_incrementindent_branding.svg @@ -0,0 +1,109 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserthyperlink_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserthyperlink_branding.svg new file mode 100644 index 0000000..b518617 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserthyperlink_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_insertpage_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_insertpage_branding.svg new file mode 100644 index 0000000..ee67305 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_insertpage_branding.svg @@ -0,0 +1,38 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_branding.svg new file mode 100644 index 0000000..15ceb45 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_branding.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_clarodrive.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_clarodrive.svg new file mode 100644 index 0000000..e121c4a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_inserttable_clarodrive.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_italic_es.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_italic_es.svg new file mode 100644 index 0000000..0de9a3e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_italic_es.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_downloadas_pdf_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_downloadas_pdf_branding.svg new file mode 100644 index 0000000..c2a6201 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_downloadas_pdf_branding.svg @@ -0,0 +1,40 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_formattingmarks_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_formattingmarks_branding.svg new file mode 100644 index 0000000..7ea70b0 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_formattingmarks_branding.svg @@ -0,0 +1,38 @@ + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_fullscreen_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_fullscreen_branding.svg new file mode 100644 index 0000000..38a4b55 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_fullscreen_branding.svg @@ -0,0 +1,49 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_zoomreset_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_zoomreset_branding.svg new file mode 100644 index 0000000..a11c6ba --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_menu_zoomreset_branding.svg @@ -0,0 +1,73 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_nextrecord_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_nextrecord_branding.svg new file mode 100644 index 0000000..39b4fbb --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_nextrecord_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatcurrency_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatcurrency_branding.svg new file mode 100644 index 0000000..a78179b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatcurrency_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecdecimals_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecdecimals_branding.svg new file mode 100644 index 0000000..cf6f091 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecdecimals_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecimal_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecimal_branding.svg new file mode 100644 index 0000000..b3e97e3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatdecimal_branding.svg @@ -0,0 +1,46 @@ + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatincdecimals_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatincdecimals_branding.svg new file mode 100644 index 0000000..a613897 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatincdecimals_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatpercent_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatpercent_branding.svg new file mode 100644 index 0000000..bc92cf1 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_numberformatpercent_branding.svg @@ -0,0 +1,37 @@ + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_prevrecord_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_prevrecord_branding.svg new file mode 100644 index 0000000..a1c8eaa --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_prevrecord_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_print_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_print_branding.svg new file mode 100644 index 0000000..20f0151 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_print_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_resetattributes_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_resetattributes_branding.svg new file mode 100644 index 0000000..82a53d0 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_resetattributes_branding.svg @@ -0,0 +1,52 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_save_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_save_branding.svg new file mode 100644 index 0000000..a1a644c --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_save_branding.svg @@ -0,0 +1,5 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saved_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saved_branding.svg new file mode 100644 index 0000000..af7d387 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saved_branding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_savemodified_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_savemodified_branding.svg new file mode 100644 index 0000000..bdc8f1e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_savemodified_branding.svg @@ -0,0 +1,50 @@ + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saving_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saving_branding.svg new file mode 100644 index 0000000..12cea5d --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_saving_branding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchnext_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchnext_branding.svg new file mode 100644 index 0000000..9beedc4 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchnext_branding.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchprev_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchprev_branding.svg new file mode 100644 index 0000000..f0dc36c --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_searchprev_branding.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_setborderstyle_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_setborderstyle_branding.svg new file mode 100644 index 0000000..5fbfa8f --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_setborderstyle_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_showannotations_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_showannotations_branding.svg new file mode 100644 index 0000000..caf4139 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_showannotations_branding.svg @@ -0,0 +1,3 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-animation.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-animation.svg new file mode 100644 index 0000000..cb5399a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-animation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-transition.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-transition.svg new file mode 100644 index 0000000..efcda24 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar-transition.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_calc.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_calc.svg new file mode 100644 index 0000000..95c2f8f --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_calc.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_draw.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_draw.svg new file mode 100644 index 0000000..abd69a6 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_draw.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_impress.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_impress.svg new file mode 100644 index 0000000..c1c5e75 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_impress.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_masterslide.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_masterslide.svg new file mode 100644 index 0000000..17041cc --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_masterslide.svg @@ -0,0 +1,43 @@ + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_calc.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_calc.svg new file mode 100644 index 0000000..bcdc085 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_calc.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_draw.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_draw.svg new file mode 100644 index 0000000..b8448d6 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_draw.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_impress.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_impress.svg new file mode 100644 index 0000000..5ff368e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_impress.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_writer.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_writer.svg new file mode 100644 index 0000000..e5077af --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_navigator_writer.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_writer.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_writer.svg new file mode 100644 index 0000000..81d06f2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_sidebar_writer.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_slidechangewindow.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_slidechangewindow.svg new file mode 100644 index 0000000..19b3e5b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_slidechangewindow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_strikeout_es.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_strikeout_es.svg new file mode 100644 index 0000000..f927452 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_strikeout_es.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrolldown_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrolldown_branding.svg new file mode 100644 index 0000000..2a08f21 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrolldown_branding.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrollup_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrollup_branding.svg new file mode 100644 index 0000000..bc8740a --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_stylepreviews-scrollup_branding.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_text_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_text_branding.svg new file mode 100644 index 0000000..a02790f --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_text_branding.svg @@ -0,0 +1,3 @@ +A + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_togglemergecells_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_togglemergecells_branding.svg new file mode 100644 index 0000000..cc8a8b0 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_togglemergecells_branding.svg @@ -0,0 +1,63 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_underline_es.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_underline_es.svg new file mode 100644 index 0000000..fd9d32b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_underline_es.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_uppage_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_uppage_branding.svg new file mode 100644 index 0000000..ce6754d --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_uppage_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/lc_wraptext_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_wraptext_branding.svg new file mode 100644 index 0000000..9ed6ca4 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/lc_wraptext_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share-divider.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share-divider.svg new file mode 100644 index 0000000..02db791 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share-divider.svg @@ -0,0 +1,39 @@ + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share.svg new file mode 100644 index 0000000..7ba50db --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/menu-share.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/minus_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/minus_branding.svg new file mode 100644 index 0000000..152d73e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/minus_branding.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/open-local-editor.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/open-local-editor.svg new file mode 100644 index 0000000..f4be9b2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/open-local-editor.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/plus_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/plus_branding.svg new file mode 100644 index 0000000..44c08b2 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/plus_branding.svg @@ -0,0 +1,13 @@ + + + + + image/svg+xml + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/plus_white_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/plus_white_branding.svg new file mode 100644 index 0000000..8a76aaa --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/plus_white_branding.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-dark.svg new file mode 100644 index 0000000..daf71fd --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-dark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled-dark.svg new file mode 100644 index 0000000..548885e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled-dark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled.svg new file mode 100644 index 0000000..51d5903 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off-disabled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off.svg new file mode 100644 index 0000000..6b78330 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-off.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-dark.svg new file mode 100644 index 0000000..a08ab17 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-dark.svg @@ -0,0 +1,3 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled-dark.svg new file mode 100644 index 0000000..8f3629f --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled-dark.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled.svg new file mode 100644 index 0000000..b197000 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on-disabled.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on.svg new file mode 100644 index 0000000..1aef367 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/radio-on.svg @@ -0,0 +1,3 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/rotation-handler.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/rotation-handler.svg new file mode 100644 index 0000000..13c09d3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/rotation-handler.svg @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-dark.svg new file mode 100644 index 0000000..4276871 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-dark.svg @@ -0,0 +1,33 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-white.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-white.svg new file mode 100644 index 0000000..d54abc8 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/scroll-double-white.svg @@ -0,0 +1,35 @@ + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large-checked_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large-checked_branding.svg new file mode 100644 index 0000000..92ded6b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large-checked_branding.svg @@ -0,0 +1,50 @@ + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large_branding.svg new file mode 100644 index 0000000..0ccac28 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-animation-large_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-property-large_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-property-large_branding.svg new file mode 100644 index 0000000..552a249 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-property-large_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large-checked_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large-checked_branding.svg new file mode 100644 index 0000000..03cb4b8 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large-checked_branding.svg @@ -0,0 +1,16 @@ + + + + + image/svg+xml + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large_branding.svg new file mode 100644 index 0000000..3c02677 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-template-large_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large-checked_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large-checked_branding.svg new file mode 100644 index 0000000..c1bfd3e --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large-checked_branding.svg @@ -0,0 +1,15 @@ + + + + + image/svg+xml + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large_branding.svg new file mode 100644 index 0000000..fd6e1ee --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/sidebar-transition-large_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker-hover_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker-hover_branding.svg new file mode 100644 index 0000000..c1a6047 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker-hover_branding.svg @@ -0,0 +1,41 @@ + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker_branding.svg new file mode 100644 index 0000000..82b9c32 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/table-column-resize-marker_branding.svg @@ -0,0 +1,65 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker-hover_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker-hover_branding.svg new file mode 100644 index 0000000..8e129c3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker-hover_branding.svg @@ -0,0 +1,65 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker_branding.svg new file mode 100644 index 0000000..046d870 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/table-row-resize-marker_branding.svg @@ -0,0 +1,65 @@ + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/text-path_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/text-path_branding.svg new file mode 100644 index 0000000..4f02c5c --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/text-path_branding.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-font.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-font.svg new file mode 100644 index 0000000..a40eee8 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-font.svg @@ -0,0 +1,97 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + CollaboraOnline + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-dark.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-dark.svg new file mode 100644 index 0000000..cd3af10 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-dark.svg @@ -0,0 +1,43 @@ + + + + + + + + + image/svg+xml + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-notebookbar.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-notebookbar.svg new file mode 100644 index 0000000..bfbee85 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo-notebookbar.svg @@ -0,0 +1,2 @@ + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo.svg new file mode 100644 index 0000000..d8ee5e5 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-logo.svg @@ -0,0 +1 @@ + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path-minified.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path-minified.svg new file mode 100644 index 0000000..61d190c --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path-minified.svg @@ -0,0 +1,37 @@ + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path.svg new file mode 100644 index 0000000..e7e367f --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-path.svg @@ -0,0 +1,147 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-font.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-font.svg new file mode 100644 index 0000000..10814ab --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-font.svg @@ -0,0 +1,102 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + CollaboraOnline(unsupported) + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path-minified.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path-minified.svg new file mode 100644 index 0000000..5992abf --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path-minified.svg @@ -0,0 +1,50 @@ + + + + + +image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path.svg new file mode 100644 index 0000000..8b71fb0 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/toolbar-bg-unsupported-path.svg @@ -0,0 +1,232 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/user-default.png b/usr/share/coolwsd/browser/dist/f7cloud/images/user-default.png new file mode 100644 index 0000000000000000000000000000000000000000..ec276cee42a575245864fe5fcca41f7cf4ba29e7 GIT binary patch literal 1182 zcmV;P1Y!G$P)4k|q~phFB=A-z-t^B{~!5hVo?S|Ac3(T9ceA?eK7 zd-ZVcy>srp=ggdO3R-Zvu+HB5|J!S?we}X~X#K6a5<{!N z%X!z6yaSK6YO^;S2DZ*J)C-)L4Cw71lHdOofc{q9B!*MKqCDe^cEu=L_kSSY&I_Rb z8Qma`Vc@noh?i_kJS_)4l<#i|;LT_CfzaufR%Nl#Tab_Kav1S&=V_Tp`)IOe_4TRo z=hkb+a$mUFl!r|>&pBtcW zx8CkWUv&ab6lb&y;i@23JO+0)Ls$nbJHQ6101aZR1w4RK&Q+svl^12$*8#WBZz{hoY3RM|LlwsC!!JwM5W^}wZ}1&dH5?gz=;zwesmyw`^vSj zDKfIniH;-%qjGZQhcIv<&7ZrvyW1z9H)`Io9zL`un-s17Q9RS@b82ea194Y03c>QN^= z5zA#msK!;2fH+b(DWA^^V9%Z#_dDZ1Ld8z^<06EX%ChJ~z$og4KskMF886JV_N)NA zI&Ut&3B!TX2qgMIET~1nGzh$`TzH8l;8NE5nU@j3_QK@qDa%dTE=dYzLAWdk(Z(ql>2K9dxdAqJ{oOVx`dK6_a4CXO zao1T8QEem^ILpWVJGFgQfQ>!ZJDuo|Ga6QOy^0oG6?#)6NMvf}2F@_h-==*@y^2P( z{-ueYP~}jmxs?BXqU%-pO5=hQUuj&Rm5s|dIX?C)d;3NtDo0>#@AYHeaHxh{rgvBl zz0~eHl6coHWo|_R3wW!$7dFQ4gK`;8q2~j^f!gFX90#fLYMzfz5ho(;T_@#S%@M5b z9or_D_pH+JUxeOznJ`}4UKXd86TCeR${E$Z*h!UUi0w2TA$-P32ifDZb*ktC9FZ-92_)wRma-lGgI#9}ODT zcUUjaS>>VRHC#RxU$tu`jt26BRo-<{907*qoM6N<$f<>?!TL1t6 literal 0 HcmV?d00001 diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/user-default.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/user-default.svg new file mode 100644 index 0000000..0016364 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/user-default.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-document.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-document.svg new file mode 100644 index 0000000..fe058fd --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-document.svg @@ -0,0 +1,5 @@ + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-drawing.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-drawing.svg new file mode 100644 index 0000000..56c57ee --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-drawing.svg @@ -0,0 +1,4 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-presentation.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-presentation.svg new file mode 100644 index 0000000..338d602 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-presentation.svg @@ -0,0 +1,4 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-spreadsheet.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-spreadsheet.svg new file mode 100644 index 0000000..316bbbe --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/x-office-spreadsheet.svg @@ -0,0 +1,4 @@ + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/images/zoomreset_branding.svg b/usr/share/coolwsd/browser/dist/f7cloud/images/zoomreset_branding.svg new file mode 100644 index 0000000..15007d3 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/images/zoomreset_branding.svg @@ -0,0 +1,46 @@ + + + + + + + + diff --git a/usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html b/usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html new file mode 100644 index 0000000..d45c659 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/f7cloud/loading-preview.html @@ -0,0 +1,124 @@ + + + + + + Просмотр экрана загрузки — F7 Office + + + + +
+

Искусственный просмотр экрана загрузки · Закройте вкладку для выхода

+ + + + + diff --git a/usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js b/usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js new file mode 100644 index 0000000..4ada1ff --- /dev/null +++ b/usr/share/coolwsd/browser/dist/src/layer/tile/CanvasTileUtils.js @@ -0,0 +1,210 @@ +/* + * FORBION + * + * SPDX-License-Identifier: MPL-2.0 + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ +/* global L */ +var cool; +(function (cool) { + var RawDelta = /** @class */ (function () { + function RawDelta(delta, id, isKeyframe) { + this._delta = delta; + this._id = id; + this._isKeyframe = isKeyframe; + } + Object.defineProperty(RawDelta.prototype, "length", { + get: function () { + return this.delta.length; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(RawDelta.prototype, "delta", { + get: function () { + return this._delta; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(RawDelta.prototype, "id", { + get: function () { + return this._id; + }, + enumerable: false, + configurable: true + }); + Object.defineProperty(RawDelta.prototype, "isKeyframe", { + get: function () { + return this._isKeyframe; + }, + enumerable: false, + configurable: true + }); + return RawDelta; + }()); + cool.RawDelta = RawDelta; + var CanvasTileUtils = /** @class */ (function () { + function CanvasTileUtils() { + } + CanvasTileUtils.unrle = function (data, width, height, output, outputOffset) { + if (outputOffset === void 0) { outputOffset = 0; } + // Byte bashing fun + var offset = 0; + for (var y = 0; y < height; ++y) { + var rleSize = data[offset] + data[offset + 1] * 256; + offset += 2; + var rleMask = offset; + var rleMaskSizeBytes = 256 / 8; + offset += rleMaskSizeBytes; + // It would be rather nice to have real 64bit types [!] + this.lastPixel.fill(0); + var lastMask = 0; + var bitToCheck = 256; + var rleMaskOffset = rleMask; + var pixOffset = y * width * 4 + outputOffset; + var pixSrc = offset; + for (var x = 0; x < width; ++x) { + if (bitToCheck > 128) { + bitToCheck = 1; + lastMask = data[rleMaskOffset++]; + } + if (!(lastMask & bitToCheck)) { + // subarray has a significant overhead on Firefox + //this.lastPixel.set(data.subarray(pixSrc, pixSrc + 4)); + this.lastPixel[0] = data[pixSrc]; + this.lastPixel[1] = data[pixSrc + 1]; + this.lastPixel[2] = data[pixSrc + 2]; + this.lastPixel[3] = data[pixSrc + 3]; + pixSrc += 4; + } + bitToCheck = bitToCheck << 1; + output.set(this.lastPixel, pixOffset); + pixOffset += 4; + } + offset += rleSize * 4; + } + return offset; + }; + CanvasTileUtils.updateImageFromDeltas = function (imageData, deltas, keyframeDeltaSize, tileSize, debug) { + if (debug === void 0) { debug = false; } + var nDelta = 0; + var offset = keyframeDeltaSize; + while (offset < deltas.length) { + if (debug) + console.debug('Next delta at ' + offset + ' length ' + (deltas.length - offset)); + var delta = !offset ? deltas : deltas.subarray(offset); + // Debugging paranoia: if we get this wrong bad things happen. + var susDeltaSize = tileSize * tileSize * 4; + if (debug && delta.length >= susDeltaSize) { + console.warn('Unusual delta possibly mis-tagged, suspicious size vs. type ' + + delta.length + + ' vs. ' + + susDeltaSize); + } + // copy old data to work from: + var oldData = new Uint8Array(imageData); + if (debug) + console.debug('Applying delta chunk ' + + nDelta++ + + ' of total size ' + + delta.length + + ' at stream offset ' + + offset); + // + ' hex: ' + hex2string(delta, delta.length)); + var len = this.applyDeltaChunk(imageData, delta, oldData, tileSize, tileSize, debug); + if (debug) + console.debug('Applied delta chunk of size ' + len); + offset += len; + } + }; + CanvasTileUtils.applyDeltaChunk = function (imgData, delta, oldData, width, height, debug) { + if (debug === void 0) { debug = false; } + var pixSize = width * height * 4; + var offset = 0; + // Green-tinge the old-Data ... + if (0) { + for (var i_1 = 0; i_1 < pixSize; ++i_1) + oldData[i_1 * 4 + 1] = 128; + } + // wipe to grey. + if (0) { + for (var i_2 = 0; i_2 < pixSize * 4; ++i_2) + imgData[i_2] = 128; + } + // Apply delta. + var i = 0; + for (var stop_1 = false; i < delta.length && !stop_1;) { + switch (delta[i]) { + case 99: { + // 'c': // copy row + var count = delta[i + 1]; + var srcRow = delta[i + 2]; + var destRow = delta[i + 3]; + if (debug) + console.debug('[' + + i + + ']: copy ' + + count + + ' row(s) ' + + srcRow + + ' to ' + + destRow); + i += 4; + for (var cnt = 0; cnt < count; ++cnt) { + var src = (srcRow + cnt) * width * 4; + var dest = (destRow + cnt) * width * 4; + for (var j = 0; j < width * 4; ++j) { + imgData[dest + j] = oldData[src + j]; + } + } + break; + } + case 100: { + // 'd': // new run + var destRow = delta[i + 1]; + var destCol = delta[i + 2]; + var span = delta[i + 3]; + offset = destRow * width * 4 + destCol * 4; + if (debug) + console.debug('[' + + i + + ']: apply new span of size ' + + span + + ' at pos ' + + destCol + + ', ' + + destRow + + ' into delta at byte: ' + + offset); + i += 4; + span *= 4; + for (var j = 0; j < span; ++j) + imgData[offset++] = delta[i + j]; + i += span; + // imgData.data[offset - 2] = 256; // debug - blue terminator + break; + } + case 116: { + // 't': // terminate delta new one next + stop_1 = true; + i++; + break; + } + default: { + console.error('[' + i + ']: ERROR: Unknown delta code ' + delta[i]); + i = delta.length; + break; + } + } + } + return i; + }; + CanvasTileUtils.lastPixel = new Uint8Array(4); + return CanvasTileUtils; + }()); + cool.CanvasTileUtils = CanvasTileUtils; +})(cool || (cool = {})); // namespace cool diff --git a/usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js b/usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js new file mode 100644 index 0000000..e72a21b --- /dev/null +++ b/usr/share/coolwsd/browser/dist/src/layer/tile/TileWorker.js @@ -0,0 +1,118 @@ +// This comment required to work around preprocessor bugs + +!function(f){typeof module!='undefined'&&typeof exports=='object'?module.exports=f():typeof define!='undefined'&&define.amd?define(['fzstd',f]):(typeof self!='undefined'?self:this).fzstd=f()}(function(){var _e={};"use strict";var r=ArrayBuffer,t=Uint8Array,e=Uint16Array,n=Int16Array,a=Uint32Array,s=Int32Array,i=function(r,e,n){if(t.prototype.slice)return t.prototype.slice.call(r,e,n);(null==e||e<0)&&(e=0),(null==n||n>r.length)&&(n=r.length);var a=new t(n-e);return a.set(r.subarray(e,n)),a},o=function(r,e,n,a){if(t.prototype.fill)return t.prototype.fill.call(r,e,n,a);for((null==n||n<0)&&(n=0),(null==a||a>r.length)&&(a=r.length);nr.length)&&(a=r.length);n2046MB)","invalid block type","FSE accuracy too high","match distance too far back","unexpected EOF"],h=function(r,t,e){var n=Error(t||f[r]);if(n.code=r,Error.captureStackTrace&&Error.captureStackTrace(n,h),!e)throw n;return n},l=function(r,t,e){for(var n=0,a=0;n>>0},c=function(r,e){var n=r[0]|r[1]<<8|r[2]<<16;if(3126568==n&&253==r[3]){var a=r[4],i=a>>5&1,o=a>>2&1,u=3&a,f=a>>6;8&a&&h(0);var c=6-i,b=3==u?4:u,y=l(r,c,b),p=f?1<>3);g=d+(d>>3)*(7&r[5])}g>2145386496&&h(1);var m=new t((1==e?w||g:e?0:g)+12);return m[0]=1,m[4]=4,m[8]=8,{b:c+p,y:0,l:0,d:y,w:e&&1!=e?e:m.subarray(12),e:g,o:new s(m.buffer,0,3),u:w,c:o,m:Math.min(131072,g)}}if(25481893==(n>>4|r[3]<<20))return v(r,4)+8;h(0)},b=function(r){for(var t=0;1<i&&h(3);for(var f=1<0;){var A=b(l+1),T=o>>3,x=(1<>(7&o)&x,S=(1<S&&(F-=B)),g[++v]=--F,-1==F?(l+=F,E[--p]=v):l-=F,!F)do{var U=o>>3;c=(a[U]|a[U+1]<<8)>>(7&o)&3,o+=2,v+=c}while(3==c)}(v>255||l)&&h(0);for(var D=0,M=(f>>1)+(f>>3)+3,W=f-1,O=0;O<=v;++O){var j=g[O];if(j<1)d[O]=-j;else for(y=0;y=p)}}for(D&&h(0),y=0;y>3,{b:u,s:E,n:k,t:m}]},p=function(r,n){var a=0,s=-1,i=new t(292),u=r[n],f=i.subarray(0,256),l=i.subarray(256,268),v=new e(i.buffer,268);if(u<128){var c=y(r,n+1,6),p=c[1],w=c[0]<<3,g=r[n+=u];g||h(0);for(var d=0,m=0,z=p.b,E=z,k=(++n<<3)-8+b(g);!((k-=z)>3;if(f[++s]=p.s[d+=(r[A]|r[A+1]<<8)>>(7&k)&(1<>3]|r[A+1]<<8)>>(7&k)&(1<255&&h(0)}else{for(s=u-127;a>4,f[a+1]=15&T}++n}var x=0;for(a=0;a11&&h(0),x+=I&&1<0;--a){var W=v[a];o(M,a,W,v[a-1]=W+l[a]*(1<o&&v>3;t[++v]=e.s[u=(u<>(7&l))&i],l-=f=e.n[u]}l==o&&v+1==a||h(0)},x=function(r,t,e){var n=6,a=t.length+3>>2,s=a<<1,i=a+s;T(r.subarray(n,n+=r[0]|r[1]<<8),t.subarray(0,a),e),T(r.subarray(n,n+=r[2]|r[3]<<8),t.subarray(a,s),e),T(r.subarray(n,n+=r[4]|r[5]<<8),t.subarray(s,i),e),T(r.subarray(n),t.subarray(i),e)},F=function(r,n,a){var s,u=n.b,f=r[u],l=f>>1&3;n.l=1&f;var v=f>>3|r[u+1]<<5|r[u+2]<<13,c=(u+=3)+v;if(1==l){if(u>=r.length)return;return n.b=u+1,a?(o(a,r[u],n.y,n.y+=v),a):o(new t(v),r[u])}if(!(c>r.length)){if(0==l)return n.b=c,a?(a.set(r.subarray(u,c),n.y),n.y+=v,a):i(r,u,c);if(2==l){var m=r[u],F=3&m,S=m>>2&3,B=m>>4,I=0,U=0;F<2?1&S?B|=r[++u]<<4|(2&S&&r[++u]<<12):B=m>>3:(U=S,S<2?(B|=(63&r[++u])<<4,I=r[u]>>6|r[++u]<<2):2==S?(B|=r[++u]<<4|(3&r[++u])<<12,I=r[u]>>2|r[++u]<<6):(B|=r[++u]<<4|(63&r[++u])<<12,I=r[u]>>6|r[++u]<<2|r[++u]<<10)),++u;var D=a?a.subarray(n.y,n.y+n.m):new t(n.m),M=D.length-B;if(0==F)D.set(r.subarray(u,u+=B),M);else if(1==F)o(D,r[u++],M);else{var W=n.h;if(2==F){var O=p(r,u);I+=u-(u=O[0]),n.h=W=O[1]}else W||h(0);(U?x:T)(r.subarray(u,u+=I),D.subarray(M),W)}var j=r[u++];if(j){255==j?j=32512+(r[u++]|r[u++]<<8):j>127&&(j=j-128<<8|r[u++]);var C=r[u++];3&C&&h(0);for(var H=[g,d,w],L=2;L>-1;--L){var Z=C>>2+(L<<1)&3;if(1==Z){var q=new t([0,0,r[u++]]);H[L]={s:q.subarray(2,3),n:q.subarray(0,1),t:new e(q.buffer,0,1),b:0}}else 2==Z?(u=(s=y(r,u,9-(1&L)))[0],H[L]=s[1]):3==Z&&(n.t||h(0),H[L]=n.t[L])}var G=n.t=H,J=G[0],K=G[1],N=G[2],P=r[c-1];P||h(0);var Q=(c<<3)-8+b(P)-N.b,R=Q>>3,V=0,X=(r[R]|r[R+1]<<8)>>(7&Q)&(1<>3]|r[R+1]<<8)>>(7&Q)&(1<>3]|r[R+1]<<8)>>(7&Q)&(1<>3]|r[R+1]<<8|r[R+2]<<16|r[R+3]<<24)>>>(7&Q)&sr-1);R=(Q-=k[tr])>>3;var or=A[tr]+((r[R]|r[R+1]<<8|r[R+2]<<16)>>(7&Q)&(1<>3;var ur=E[_]+((r[R]|r[R+1]<<8|r[R+2]<<16)>>(7&Q)&(1<>3,X=N.t[X]+((r[R]|r[R+1]<<8)>>(7&Q)&(1<>3,$=J.t[$]+((r[R]|r[R+1]<<8)>>(7&Q)&(1<>3,Y=K.t[Y]+((r[R]|r[R+1]<<8)>>(7&Q)&(1<3)n.o[2]=n.o[1],n.o[1]=n.o[0],n.o[0]=ir-=3;else{var fr=ir-(0!=ur);fr?(ir=3==fr?n.o[0]-1:n.o[fr],fr>1&&(n.o[2]=n.o[1]),n.o[1]=n.o[0],n.o[0]=ir):ir=n.o[0]}for(L=0;Lor&&(lr=or),L=0;L>3|r[this.s.b+1]<<5|r[this.s.b+2]<<13)))return t&&h(5),this.c.push(r),void(this.l=n);for(this.z=0;;){var a=F(r,this.s);if(!a){t&&h(5);var s=r.subarray(this.s.b);return this.s.b=0,this.c.push(s),void(this.l+=s.length)}if(this.ondata(a,!1),u(this.s.w,0,a.length),this.s.w.set(a,this.s.w.length-a.length),this.s.l){var i=r.subarray(this.s.b);return this.s=4*this.s.c,void this.push(i,t)}}}},r}();_e.Decompress=I;return _e}) + +/* -*- js-indent-level: 8; fill-column: 100 -*- */ +/* + * FORBION + * + * SPDX-License-Identifier: MPL-2.0 + * + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + */ + +/* eslint-disable no-inner-declarations */ +/* eslint no-unused-vars: ["warn", { "argsIgnorePattern": "^_" }] */ +/* global importScripts Uint8Array cool */ + +if ('undefined' === typeof window) { + self.L = {}; + + importScripts( + '%SERVICE_ROOT%/browser/%VERSION%/src/layer/tile/CanvasTileUtils.js', + ); + + let tileImageCache = new Map(); // Map + + addEventListener('message', onMessage); + + console.info('CanvasTileWorker initialised'); + + function onMessage(e) { + switch (e.data.message) { + case 'endTransaction': { + // Update tile image cache + for (const key of Array.from(tileImageCache.keys())) { + if (!e.data.cachedTiles.has(key)) tileImageCache.delete(key); + } + + const bitmaps = []; // Promise[] + const tilesWithBitmaps = []; + + const tileByteSize = e.data.tileSize * e.data.tileSize * 4; + for (const tile of e.data.deltas) { + const deltas = self.fzstd.decompress(tile.rawDelta); + + // Decompress the keyframe buffer + let keyframeDeltaSize = 0; + let imageData = null; + if (tile.isKeyframe) { + imageData = new Uint8Array(tileByteSize); + keyframeDeltaSize = cool.CanvasTileUtils.unrle( + deltas, + e.data.tileSize, + e.data.tileSize, + imageData, + ); + } else imageData = tileImageCache.get(tile.key); + + // The main thread has no use for the concatenated rawDelta, delete it here + // instead of passing it back. + delete tile.rawDelta; + + if (imageData === null) { + console.warn('Delta update received on tile with no cached image'); + continue; + } + + cool.CanvasTileUtils.updateImageFromDeltas( + imageData, + deltas, + keyframeDeltaSize, + e.data.tileSize, + ); + tileImageCache.set(tile.key, imageData); + + const clampedData = new Uint8ClampedArray( + imageData.buffer, + imageData.byteOffset, + imageData.byteLength, + ); + const image = new ImageData( + clampedData, + e.data.tileSize, + e.data.tileSize, + ); + bitmaps.push( + createImageBitmap(image, { + premultiplyAlpha: 'none', + }), + ); + tilesWithBitmaps.push(tile); + } + + Promise.all(bitmaps).then((bitmaps) => { + for (const bitmap of bitmaps) { + const tile = tilesWithBitmaps.shift(); + tile.bitmap = bitmap; + } + postMessage( + { + message: e.data.message, + deltas: e.data.deltas, + tileSize: e.data.tileSize, + }, + bitmaps, + ); + }); + break; + } + + default: + console.error('Unrecognised worker message'); + } + } +} + diff --git a/usr/share/coolwsd/browser/dist/wasm.html b/usr/share/coolwsd/browser/dist/wasm.html new file mode 100644 index 0000000..d8f1085 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/wasm.html @@ -0,0 +1,50 @@ + + + + + + + + Online + + + + +
+ +
+ + + + + diff --git a/usr/share/coolwsd/browser/dist/welcome/welcome.html b/usr/share/coolwsd/browser/dist/welcome/welcome.html new file mode 100644 index 0000000..4a6a968 --- /dev/null +++ b/usr/share/coolwsd/browser/dist/welcome/welcome.html @@ -0,0 +1,63 @@ + + + + + + + + + F7 Office Welcome + + + + + + + +
+
+
+
+ + + + + +

Explore The New {coolversion}

+

F7 Office

+

Enjoy the latest developments in online productivity, free for you to use, to explore and to use with others in the browser.

+
+
+ +
+
+
+
+ +

Discover All The Changes

+

F7 Office

+

Learn all about: The latest F7 Office, aimed at home users and small teams.

+
+
+ +
+
+
+
+ +

Get Involved

+

F7 Office

+

Welcome to F7 Office.

+
+ +
+
+
+ 1 + 2 + 3 +
+
+
+ +