Test header

diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1257970-datagrid-menu-icon-contrast (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1257970-datagrid-menu-icon-contrast (fluent-next.blue.light).png new file mode 100644 index 000000000000..064d63bc428e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1257970-datagrid-menu-icon-contrast (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1286345-datagrid-menu-icon-when-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1286345-datagrid-menu-icon-when-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c2944c43197 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/T1286345-datagrid-menu-icon-when-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/adaptive-row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/adaptive-row (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b393d6f877c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/adaptive-row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/batch-editing-mode-edit_cell (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/batch-editing-mode-edit_cell (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a9fbf23df2b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/batch-editing-mode-edit_cell (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/context-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/context-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..82766b0c99ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/context-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/error-row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/error-row (fluent-next.blue.light).png new file mode 100644 index 000000000000..e352d29e565d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/error-row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/export-button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/export-button (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2d911f2eeb4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/export-button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-builder (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-builder (fluent-next.blue.light).png new file mode 100644 index 000000000000..8de1f58fd05e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-builder (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-panel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-panel (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5832c5b87fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-panel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-row-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-row-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..b32c63c18e5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/filter-row-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/fixed-columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/fixed-columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..26e89015834f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/fixed-columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/focused-row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/focused-row (fluent-next.blue.light).png new file mode 100644 index 000000000000..360a6ebf381f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/focused-row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/form-editing-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/form-editing-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6068dcdc664 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/form-editing-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/grouping-and-summary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/grouping-and-summary (fluent-next.blue.light).png new file mode 100644 index 000000000000..59a2806bd686 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/grouping-and-summary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/header-filter-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/header-filter-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ba3cc42c195 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/header-filter-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/no-data (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/no-data (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4db36d87710 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/no-data (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-compact-display-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-compact-display-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..99ed92b00389 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-compact-display-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-full-display-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-full-display-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..473419c7dfdb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/paging-full-display-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/popup-editing-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/popup-editing-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba219442a12f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/popup-editing-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-drag-and-drop (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-drag-and-drop (fluent-next.blue.light).png new file mode 100644 index 000000000000..1919e5e0d650 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-drag-and-drop (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9935a2bc8636 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..ddfcc3e1750c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-edit-state-with-useIcons=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f839823f2af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-delete_row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-delete_row (fluent-next.blue.light).png new file mode 100644 index 000000000000..f7812ff7c051 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-delete_row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-modified_cell (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-modified_cell (fluent-next.blue.light).png new file mode 100644 index 000000000000..3fc76e5b26e1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-modified_cell (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1b847494ced Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2aaff65842c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/row-editing-mode-with-useIcons=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel (fluent-next.blue.light).png new file mode 100644 index 000000000000..e55faf630f8a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel-highlight (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel-highlight (fluent-next.blue.light).png new file mode 100644 index 000000000000..59fe8ef83dd9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/search-panel-highlight (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/selection (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/selection (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f433722d33e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/selection (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/sorting-and-group-panel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/sorting-and-group-panel (fluent-next.blue.light).png new file mode 100644 index 000000000000..72d521a691bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/sorting-and-group-panel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/validation-in-cell-editing-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/validation-in-cell-editing-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac268a106886 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/accessibility/etalons/validation-in-cell-editing-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-empty-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-empty-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..1957a56ab17e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-empty-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-error-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-error-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..493b41a0b4b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-error-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-aborted-command (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-aborted-command (fluent-next.blue.light).png new file mode 100644 index 000000000000..19c9209b7031 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-aborted-command (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-error-command (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-error-command (fluent-next.blue.light).png new file mode 100644 index 000000000000..c25e2a444f8b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-failure-with-error-command (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-multiple-messages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-multiple-messages (fluent-next.blue.light).png new file mode 100644 index 000000000000..45798ab1c5ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-multiple-messages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-pending-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-pending-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..714d7218261d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-pending-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-multiple-commands (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-multiple-commands (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4d05fea0269 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-multiple-commands (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b015e25e87a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/etalons/datagrid-ai-assistant-success-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/visual.ts b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/visual.ts index 8a2f4d9dbe45..08b528fc171a 100644 --- a/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/visual.ts +++ b/e2e/testcafe-devextreme/tests/dataGrid/common/aiAssistant/visual.ts @@ -3,6 +3,7 @@ import DataGrid from 'devextreme-testcafe-models/dataGrid'; import url from '../../../../helpers/getPageUrl'; import { createWidget } from '../../../../helpers/createWidget'; import { testScreenshot } from '../../../../helpers/themeUtils'; +import { insertStylesheetRulesToPage, removeStylesheetRulesFromPage } from '../../../../helpers/domUtils'; fixture`Ai Assistant.Visual` .page(url(__dirname, '../../../container-ai-integration.html')); @@ -64,8 +65,12 @@ test('AI Assistant popup - pending state', async (t) => { await t.expect(aiChat.getPendingMessages().exists).ok(); + await insertStylesheetRulesToPage('.dx-progressbar-animating-container { animation: none !important; background-position-x: 0 !important; }'); + await testScreenshot(t, takeScreenshot, 'datagrid-ai-assistant-pending-state.png', { element: aiChat.content }); + await removeStylesheetRulesFromPage(); + await t .expect(compareResults.isValid()) .ok(compareResults.errorMessages()); diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0b4a9349e3e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3b9df901e99 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bde1686025ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..81609ace3c37 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a409a8c3d64a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..562fc620144e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..7eeccb3d7cae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu-when-allowFixing-false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu-when-allowFixing-false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cada4c43efa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column-and-sticky-columns__context-menu-when-allowFixing-false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f3f0678035d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..553030ad4316 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__column-resizing(wordWrapEnabled=true)-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__default (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__default (fluent-next.blue.light).png new file mode 100644 index 000000000000..bde1686025ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__default (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__dragging (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__dragging (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffffc5bfbf67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__dragging (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__focused-dropdown-button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__focused-dropdown-button (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bba0e258ab4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column__focused-dropdown-button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b594ffe964e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..36d2160e9568 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=center_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d24ffbb04e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9722b3ab3562 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=left_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..569bc741476f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1f61333b379 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/etalons/datagrid__ai-column_dropdown-button-menu(alignment=right_rtlEnabled=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/virtualScrolling.functional.ts b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/virtualScrolling.functional.ts index 5ea0b4c8bb8a..d1085aa9667a 100644 --- a/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/virtualScrolling.functional.ts +++ b/e2e/testcafe-devextreme/tests/dataGrid/common/aiColumn/virtualScrolling.functional.ts @@ -8,6 +8,10 @@ fixture`Ai Column.Virtual Scrolling.Functional` const DATA_GRID_SELECTOR = '#container'; +const CLASS = { + loadPanelContent: 'dx-loadpanel-content', +}; + const checkAIColumnTexts = async ( t: TestController, component: DataGrid, @@ -61,7 +65,7 @@ test('DataGrid should send an AI request for rendered rows after scrolling witho await t .expect(dataGrid.isReady()) .ok() - .expect(dataGrid.getLoadPanel().isVisible()) + .expect(dataGrid.element.find(`.${CLASS.loadPanelContent}`).visible) .notOk(); await checkAIColumnTexts(t, dataGrid, 11); @@ -88,7 +92,7 @@ test('DataGrid should send an AI request for rendered rows after scrolling witho await t .expect(dataGrid.isReady()) .ok() - .expect(dataGrid.getLoadPanel().isVisible()) + .expect(dataGrid.element.find(`.${CLASS.loadPanelContent}`).visible) .notOk(); await checkAIColumnTexts(t, dataGrid, 12); }) @@ -168,7 +172,7 @@ test('DataGrid should send an AI request for rendered rows after scrolling with await t .expect(dataGrid.isReady()) .ok() - .expect(dataGrid.getLoadPanel().isVisible()) + .expect(dataGrid.element.find(`.${CLASS.loadPanelContent}`).visible) .notOk(); await checkAIColumnTexts(t, dataGrid, 11); @@ -195,7 +199,7 @@ test('DataGrid should send an AI request for rendered rows after scrolling with await t .expect(dataGrid.isReady()) .ok() - .expect(dataGrid.getLoadPanel().isVisible()) + .expect(dataGrid.element.find(`.${CLASS.loadPanelContent}`).visible) .notOk(); await checkAIColumnTexts(t, dataGrid, 12); }) diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_after-runtime-update (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_after-runtime-update (fluent-next.blue.light).png new file mode 100644 index 000000000000..dbdcfc6296c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_after-runtime-update (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_before-runtime-update (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_before-runtime-update (fluent-next.blue.light).png new file mode 100644 index 000000000000..aebe1a043376 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/bandColumns/etalons/band-columns_before-runtime-update (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/column-separator-with-expand-columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/column-separator-with-expand-columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..5bc515a9dc86 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/column-separator-with-expand-columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/dragging_grouped_column_to_same_position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/dragging_grouped_column_to_same_position (fluent-next.blue.light).png new file mode 100644 index 000000000000..e19f74b8b44b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/dragging_grouped_column_to_same_position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/headerRow-highlight-on-drag (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/headerRow-highlight-on-drag (fluent-next.blue.light).png new file mode 100644 index 000000000000..88c499d3cfe6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnReordering/etalons/headerRow-highlight-on-drag (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b5f741102ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6e21e858b74e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..805c438c3c0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-4 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-4 (fluent-next.blue.light).png new file mode 100644 index 000000000000..805c438c3c0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-4 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-5 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-5 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8cf1e713e9fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-5 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-6 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-6 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4e8e69f98f3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-6 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-7 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-7 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f3c98673bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-7 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-8 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-8 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a7cee71ae94c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-8 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-9 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-9 (fluent-next.blue.light).png new file mode 100644 index 000000000000..805c438c3c0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/columnResizing/etalons/column-separator-9 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-false (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f31025ecbdb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-true (fluent-next.blue.light).png new file mode 100644 index 000000000000..c40104de7aae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1179114-grid-edit-custom-button when-useicons-is-true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1250405-canceled-rows-hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1250405-canceled-rows-hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff71978da272 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/T1250405-canceled-rows-hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-checkbox (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-checkbox (fluent-next.blue.light).png new file mode 100644 index 000000000000..31bb10fff644 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-checkbox (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-item-text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-item-text (fluent-next.blue.light).png new file mode 100644 index 000000000000..854fd4ee07bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-adaptive-item-text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-checkbox-outline (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-checkbox-outline (fluent-next.blue.light).png new file mode 100644 index 000000000000..6eb3c6231e27 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-checkbox-outline (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-editing-with-onSaving-T1201724 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-editing-with-onSaving-T1201724 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d9c2f222d3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-editing-with-onSaving-T1201724 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-T1193894 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-T1193894 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac5183a9590b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-T1193894 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-with-color-box (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-with-color-box (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1a1b5974201 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-form-editing-with-color-box (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-first_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-first_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5a734d5eb18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-first_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-last_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-last_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b065e24e86b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-last_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b065e24e86b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..01f893d85152 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5a734d5eb18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5a734d5eb18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-pageTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..01f893d85152 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-162 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-162 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a6da23418b61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-standard_top-162 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..01f893d85152 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-162 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-162 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a6da23418b61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportBottom_scroll-mode-virtual_top-162 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5a734d5eb18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-162 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-162 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a830424a73e6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-standard_top-162 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5a734d5eb18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-162 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-162 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a830424a73e6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-new-row_position-viewportTop_scroll-mode-virtual_top-162 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-checkbox (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-checkbox (fluent-next.blue.light).png new file mode 100644 index 000000000000..80d984c2799b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-checkbox (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-grid (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-grid (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a7aa45ea3a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/grid-popup-editing-grid (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/newRowPosition-pageBottom-add-row-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/newRowPosition-pageBottom-add-row-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee5105c7c0d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/newRowPosition-pageBottom-add-row-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..5cb526ab905c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form-with-initial-editrowkey (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form-with-initial-editrowkey (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c10fddeea9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/editing/etalons/popup-edit-form-with-initial-editrowkey (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1046688.searchPanel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1046688.searchPanel (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb144b475a17 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1046688.searchPanel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2ebbf5d1fd5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bf0f284538e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba8bec7c2448 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1089634-virtual-scrolling-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1136896-virtual-scrolling_editing-buttons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1136896-virtual-scrolling_editing-buttons (fluent-next.blue.light).png new file mode 100644 index 000000000000..21a9f424cd90 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1136896-virtual-scrolling_editing-buttons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1141405-grid-select-all (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1141405-grid-select-all (fluent-next.blue.light).png new file mode 100644 index 000000000000..99ae4ec4376c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1141405-grid-select-all (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1194796-row-alternation-with-grouping-and-virtual-scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1194796-row-alternation-with-grouping-and-virtual-scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..628e3e2b005b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1194796-row-alternation-with-grouping-and-virtual-scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..38f05686c902 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6c8effde005 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2b4465d246e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1219785-column-chooser-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1228720-grid-tagbox-on-edit (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1228720-grid-tagbox-on-edit (fluent-next.blue.light).png new file mode 100644 index 000000000000..08490da59289 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1228720-grid-tagbox-on-edit (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1240079 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1240079 (fluent-next.blue.light).png new file mode 100644 index 000000000000..523d45dadd4d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1240079 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-native-scrolling-with-grouping-and-summary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-native-scrolling-with-grouping-and-summary (fluent-next.blue.light).png new file mode 100644 index 000000000000..afa773fd85f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-native-scrolling-with-grouping-and-summary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-simulated-scrolling-with-grouping-and-summary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-simulated-scrolling-with-grouping-and-summary (fluent-next.blue.light).png new file mode 100644 index 000000000000..b36e16159957 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/T1270354-virtual-simulated-scrolling-with-grouping-and-summary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/ai-column__toast__at-the-right-position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/ai-column__toast__at-the-right-position (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca1eda079e1b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/ai-column__toast__at-the-right-position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-plain-structure (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-plain-structure (fluent-next.blue.light).png new file mode 100644 index 000000000000..96407d344a7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-plain-structure (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-tree-structure (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-tree-structure (fluent-next.blue.light).png new file mode 100644 index 000000000000..fd72c9cf9ee3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-checkbox-alignment-tree-structure (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-dragAndDrop-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-dragAndDrop-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..a4fe9996b3fc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-dragAndDrop-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-select-mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-select-mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..d31015abc00a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/column-chooser-select-mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/compact-pager (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/compact-pager (fluent-next.blue.light).png new file mode 100644 index 000000000000..c85f75cefc4e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/compact-pager (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export-in-menu_when-no-columns-visible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export-in-menu_when-no-columns-visible (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7f1de6bd4da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export-in-menu_when-no-columns-visible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export_when-no-columns-visible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export_when-no-columns-visible (fluent-next.blue.light).png new file mode 100644 index 000000000000..027937e60fe5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-export_when-no-columns-visible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-toolbar-buttons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-toolbar-buttons (fluent-next.blue.light).png new file mode 100644 index 000000000000..592cd4250cb5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/disabled-toolbar-buttons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/empty-column-chooser (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/empty-column-chooser (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9e0e5528af2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/empty-column-chooser (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-column-lines-alignment-master-grid-horizontal-scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-column-lines-alignment-master-grid-horizontal-scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..1eff8607c1f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-column-lines-alignment-master-grid-horizontal-scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5f2752f1d8e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button-in-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button-in-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..a256038acc71 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-dropdown-button-in-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b8932836bc8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-in-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-in-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f76c1cc0597 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-in-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-pdf (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-pdf (fluent-next.blue.light).png new file mode 100644 index 000000000000..13cfc25043e2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-export-one-button-pdf (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-header-row-scrollbar-padding (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-header-row-scrollbar-padding (fluent-next.blue.light).png new file mode 100644 index 000000000000..a3845d42d9dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-header-row-scrollbar-padding (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border (fluent-next.blue.light).png new file mode 100644 index 000000000000..352b0df10636 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..93202808adfe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-headers-scroller-spacing-border-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-infinite-scrolling-T1152498 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-infinite-scrolling-T1152498 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d58d87da7697 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-infinite-scrolling-T1152498 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-toolbar-dropdown-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-toolbar-dropdown-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2b5c77173f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-toolbar-dropdown-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1129252 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1129252 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0162e929863 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1129252 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1152498 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1152498 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1d2552f5c68f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling-T1152498 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling_with_fixed_columns-T1166649 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling_with_fixed_columns-T1166649 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2fcd1fbecf74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/grid-virtual-scrolling_with_fixed_columns-T1166649 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..5dd8a203d823 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-when-grouped-column-has-showWhenGrouped (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-when-grouped-column-has-showWhenGrouped (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c97c426ea6c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/group-summary-when-grouped-column-has-showWhenGrouped (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/invisible-toolbar-buttons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/invisible-toolbar-buttons (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca6094756fbf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/invisible-toolbar-buttons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-compact (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-compact (fluent-next.blue.light).png new file mode 100644 index 000000000000..23f5df9857fe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-compact (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-full-allpages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-full-allpages (fluent-next.blue.light).png new file mode 100644 index 000000000000..dacc7bbb6f6e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-full-allpages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9a9b27a876b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-enlarge (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-enlarge (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9a9b27a876b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-enlarge (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo (fluent-next.blue.light).png new file mode 100644 index 000000000000..42df11acd971 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo-enlarge (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo-enlarge (fluent-next.blue.light).png new file mode 100644 index 000000000000..42df11acd971 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-large-noinfo-enlarge (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f6859cf3920 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-enlarge (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-enlarge (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f6859cf3920 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-enlarge (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo (fluent-next.blue.light).png new file mode 100644 index 000000000000..63970ca2b359 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo-enlarge (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo-enlarge (fluent-next.blue.light).png new file mode 100644 index 000000000000..63970ca2b359 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-large-noinfo-enlarge (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-small (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-small (fluent-next.blue.light).png new file mode 100644 index 000000000000..741fd319bf14 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-nobutton-small (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-small (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-small (fluent-next.blue.light).png new file mode 100644 index 000000000000..aa8a16d81909 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/pager-resize-small (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..d34150d01c92 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused-with-sticky (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused-with-sticky (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0f9fdbebf8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/etalons/total-summary-focused-with-sticky (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad648e19bd9d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..7760f7b801d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup.-with-editor-popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup.-with-editor-popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8a6977d2989 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterPanel/etalons/dataGrid-filterPanel-popup.-with-editor-popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1072609 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1072609 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d6f3edb56444 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1072609 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-usual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-usual (fluent-next.blue.light).png new file mode 100644 index 000000000000..81c075d59a85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-usual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-virtual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-virtual (fluent-next.blue.light).png new file mode 100644 index 000000000000..81c075d59a85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-band_scrolling-virtual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-usual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-usual (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca9f82f23543 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-usual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-virtual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-virtual (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca9f82f23543 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-fixed-usual_scrolling-virtual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-usual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-usual (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d3a0dfdd0a3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-usual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-virtual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-virtual (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d3a0dfdd0a3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-band_scrolling-virtual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-usual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-usual (fluent-next.blue.light).png new file mode 100644 index 000000000000..8dab6237372b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-usual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-virtual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-virtual (fluent-next.blue.light).png new file mode 100644 index 000000000000..8dab6237372b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/T1163100_change-icon_columns-usual-usual_scrolling-virtual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-filter-range-hide-on-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-filter-range-hide-on-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..825ea4cdffc5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-filter-range-hide-on-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-focus-overlay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-focus-overlay (fluent-next.blue.light).png new file mode 100644 index 000000000000..57f8d95a9851 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-focus-overlay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-overlay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-overlay (fluent-next.blue.light).png new file mode 100644 index 000000000000..6121f6853632 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/etalons/filter-row-overlay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..45b69758d29d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2299efec417 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filter-method-with-case-sensitive-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..45b69758d29d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2299efec417 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/filtering/etalons/filtering-via-option-method-with-case-sensitive-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..810b26ddfc96 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..05fb021eff97 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1148937-grid-hover-row-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..545f95e7184c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0463cd041228 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1177143-right-fixed-column-with-no-width-columns-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c58a4180f049 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..815d9f220358 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1180834-grid-hover-row-after-scrolling-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..74c149cdcf4e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c7226a52b0e3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1193153-layout-with-fixed-and-band-columns-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-expand-columns-with-band-columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-expand-columns-with-band-columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd094e558309 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-expand-columns-with-band-columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-horizontal-scroll-with-fixed-band-columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-horizontal-scroll-with-fixed-band-columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3254b790132 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1317623-horizontal-scroll-with-fixed-band-columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1322380-unfix-column-via-context-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1322380-unfix-column-via-context-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..4685dace70c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/fixedColumns/etalons/T1322380-unfix-column-via-context-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-lookup-change (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-lookup-change (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1b3192f5990 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-lookup-change (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-text-editor-change (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-text-editor-change (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3587471ee08 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/etalons/focus-edit-cell_after-text-editor-change (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-invalid-cells (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-invalid-cells (fluent-next.blue.light).png new file mode 100644 index 000000000000..21b9ace0bfb4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-invalid-cells (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-link-background (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-link-background (fluent-next.blue.light).png new file mode 100644 index 000000000000..2d556ef721bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row-link-background (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_markup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_markup (fluent-next.blue.light).png new file mode 100644 index 000000000000..d57bfa720ae2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_markup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dc1e1479f84b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=null (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=null (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f4325a911f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=null (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=test (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=test (fluent-next.blue.light).png new file mode 100644 index 000000000000..879239b5d688 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=test (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ff9d415983f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group_when_data-items_have_items-property (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group_when_data-items_have_items-property (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ea38b231404 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/focus/focusedRow/etalons/focused-row_under_group_when_data-items_have_items-property (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups (fluent-next.blue.light).png new file mode 100644 index 000000000000..b34404a23638 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups-with-fixed-content (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups-with-fixed-content (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1e2700dc891 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-collapsed-groups-with-fixed-content (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups (fluent-next.blue.light).png new file mode 100644 index 000000000000..764312011167 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups-with-fixed-content (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups-with-fixed-content (fluent-next.blue.light).png new file mode 100644 index 000000000000..664661c770c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1155453-expanded-groups-with-fixed-content (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1237863_datagrid-grouping_and_filtering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1237863_datagrid-grouping_and_filtering (fluent-next.blue.light).png new file mode 100644 index 000000000000..a47ecd38aa41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/T1237863_datagrid-grouping_and_filtering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/continued_group-collapse_icon-T1201981 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/continued_group-collapse_icon-T1201981 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1c86514c76d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/continued_group-collapse_icon-T1201981 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/empty-header-message-with-selection-enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/empty-header-message-with-selection-enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..9eabce5df328 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/empty-header-message-with-selection-enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/expanded-groups-content (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/expanded-groups-content (fluent-next.blue.light).png new file mode 100644 index 000000000000..53c7fda97395 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/expanded-groups-content (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel-message-align (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel-message-align (fluent-next.blue.light).png new file mode 100644 index 000000000000..a996addffeb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel-message-align (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_first-page (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_first-page (fluent-next.blue.light).png new file mode 100644 index 000000000000..5f8a54295601 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_first-page (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_page-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_page-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..72a90b8e78e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_page-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_second-page (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_second-page (fluent-next.blue.light).png new file mode 100644 index 000000000000..9957c7f46028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_loaded_second-page (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_first-page (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_first-page (fluent-next.blue.light).png new file mode 100644 index 000000000000..5f8a54295601 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_first-page (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_page-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_page-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..72a90b8e78e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_page-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_second-page (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_second-page (fluent-next.blue.light).png new file mode 100644 index 000000000000..9957c7f46028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/group-panel_restored_second-page (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/groupingPanel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/groupingPanel (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e7a8ef7d713 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/grouping/etalons/groupingPanel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1251768-header-filter-double-quotes (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1251768-header-filter-double-quotes (fluent-next.blue.light).png new file mode 100644 index 000000000000..947ac756d478 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1251768-header-filter-double-quotes (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c3420f446d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1ea0ad8f92ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/T1273020-header-filter-with-case-sensitive-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/grid-header-filter-popup-T1156848 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/grid-header-filter-popup-T1156848 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffbaacb355d7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/grid-header-filter-popup-T1156848 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-icon-clear-filter (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-icon-clear-filter (fluent-next.blue.light).png new file mode 100644 index 000000000000..60f0ff02d91c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-icon-clear-filter (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d82b856c21b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/headerFilter/etalons/header-filter-popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-closed-via-keyboard (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-closed-via-keyboard (fluent-next.blue.light).png new file mode 100644 index 000000000000..f7efad79805e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-closed-via-keyboard (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-opened-via-keyboard (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-opened-via-keyboard (fluent-next.blue.light).png new file mode 100644 index 000000000000..7fa746451c55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/adaptive-row-opened-via-keyboard (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell-focus-showEditorAlways-T1196539 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell-focus-showEditorAlways-T1196539 (fluent-next.blue.light).png new file mode 100644 index 000000000000..db27a4f66799 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell-focus-showEditorAlways-T1196539 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell_focus_after_column_reordering_when_data_cell_was_focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell_focus_after_column_reordering_when_data_cell_was_focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..858a0120c2a3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/cell_focus_after_column_reordering_when_data_cell_was_focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-button-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-button-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..99ede3db9951 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-button-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-buttons-cell-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-buttons-cell-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..503bd95487c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-custom-buttons-cell-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-data-cell-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-data-cell-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9b3ba0f5640 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-data-cell-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-header-cell-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-header-cell-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..91b70d45ce98 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-header-cell-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-input-text-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-input-text-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1d44f69ff9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/data-grid_keyboard-navigation-input-text-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-div (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-div (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1f6846fc53b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-div (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-input (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-input (fluent-next.blue.light).png new file mode 100644 index 000000000000..5501061eb6e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/edit-cell-keypress-with-custom-cell-template_template-input (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus-position-when-second-adaptive-row-opened (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus-position-when-second-adaptive-row-opened (fluent-next.blue.light).png new file mode 100644 index 000000000000..9abf13c78750 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus-position-when-second-adaptive-row-opened (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb9f42415a73 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..2e25363e5466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d376478ab3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..553d6034fe1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/focus_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f028b7e5ae1a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac487ba3f9e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_keyboard_when_showWhenGrouped_is_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_keyboard_when_showWhenGrouped_is_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..595471c4c0fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_column_via_keyboard_when_showWhenGrouped_is_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8c66fe9951fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1be5fc16471 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_keyboard (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_keyboard (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac54d07cbf9a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_last_column_via_keyboard (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7d1ad0d6e61d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..34e14b2a6088 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_keyboard (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_keyboard (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8ba0a0faf2d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_second_column_via_keyboard (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0b870529b4c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8bd140d1843 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_keyboard (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_keyboard (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b835514870f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/group_single_column_via_keyboard (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fd4c43a6cfc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..a44588a09731 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png new file mode 100644 index 000000000000..45362029b758 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..bbee4a57558b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..21a834d18126 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..e38f7ff0221f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/native_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f09f6287d5d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..525e3dd2b394 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_pressing_Ctrl_+_Home_key_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..47237ddac1f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eda382f2b682 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_and_columns_are_enabled_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..293f55c97640 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..525e3dd2b394 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_first_row_when_virtual_scrolling_is_enabled_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..32dff02f39d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..525e3dd2b394 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_pressing_Home_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_row_dragging_is_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_row_dragging_is_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae1f5c15e48c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_row_dragging_is_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..525e3dd2b394 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_first_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad7c189a5f31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_pressing_Ctrl_+_End_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_and_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_and_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..66b6170e839a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_and_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_is_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_is_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cd4454646dc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_last_row_when_virtual_scrolling_is_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..4bae04d21247 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_adaptivity_is_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_focusedRowEnabled_is_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_focusedRowEnabled_is_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..9a7361e6e661 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_focusedRowEnabled_is_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png new file mode 100644 index 000000000000..140196847077 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_pressing_End_key (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c404dcd6c34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigate_to_last_cell_in_row_that_contains_focus_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigation_should_not_work_when_pressing_End_when_row_is_in_edit_state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigation_should_not_work_when_pressing_End_when_row_is_in_edit_state (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d671352d9f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/navigation_should_not_work_when_pressing_End_when_row_is_in_edit_state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b172b1428ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f457665ac29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_band_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ccfc2384b0ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..aaef61398f7e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6aa5ad2fb873 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fda9b5ced067 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e98cce53105 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad6050ad8341 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_are_hidden_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_are_hidden_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..51a54ab2e927 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_are_hidden_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_is_command_column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_is_command_column (fluent-next.blue.light).png new file mode 100644 index 000000000000..0800f654fbb4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_left_when_there_is_command_column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..920d32b00e3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c37f2489c0a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7b3788737f8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee65e3df2f67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..cc580d370985 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..587fb1d71241 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_are_hidden_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_are_hidden_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c1a7184c868 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_are_hidden_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_is_command_column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_is_command_column (fluent-next.blue.light).png new file mode 100644 index 000000000000..1f1c446579f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_to_right_when_there_is_command_column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_via_context_menu_when_allowColumnReordering_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_via_context_menu_when_allowColumnReordering_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..26da367c6186 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_via_context_menu_when_allowColumnReordering_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..1fc3b99466be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false_and_group_panel_is_visible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false_and_group_panel_is_visible (fluent-next.blue.light).png new file mode 100644 index 000000000000..9e117966a59c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_allowColumnReordering_is_false_and_group_panel_is_visible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e2ef63fe44e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e2ef63fe44e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_when_there_are_async_templates_and_renderAsync_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_with_allowReordering_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_with_allowReordering_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..1fc3b99466be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_column_with_allowReordering_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..916ea0aa50a8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..af6e56aed762 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..070856935d8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d502e74aca9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_custom_command_column_to_right_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..1015d83fd81c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a341f4a786ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c03bd128b7ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_left_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..3eb97311c4b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8653d94a12c7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f0e9f4bae28 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_left_column_to_right_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..745a20b9f676 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..57311c55e053 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_nested_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..666b65f52b19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec4a83ce2f7a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4733818fe2d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_left_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd472df1c76a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..19923ca64585 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..289125cfe837 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_command_column_on_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_command_column_on_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..7e6a5da2718b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_command_column_on_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_custom_command_column_on_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_custom_command_column_on_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..1658da6423af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_fixed_right_column_to_right_when_there_is_custom_command_column_on_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..893902d04075 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2905e5a1ecfd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c6c591f55524 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a1361074d1b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..97305e096790 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..390902e7b4bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_left_when_rtlEnabled_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b029a4aecba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ab09af383c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_false_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9343bac9af7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..61d11dba0fa6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_via_context_menu_when_rtlEnabled_=_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..748a4510f126 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..88873b5a7b1c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_to_right_when_rtlEnabled_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_via_context_menu_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_via_context_menu_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..dae9a14a46a8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_via_context_menu_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c11a13bdf4a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_group_panel_allowColumnDragging_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_onKeyDown_args_handled_=_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_onKeyDown_args_handled_=_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c11a13bdf4a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_when_onKeyDown_args_handled_=_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_with_allowGrouping_is_false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_with_allowGrouping_is_false (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c11a13bdf4a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_group_column_with_allowGrouping_is_false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..133df09c3899 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..85aceb4ac631 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ad9a4a8995c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_left_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..219d1d573cfe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a748554c1445 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d0a712d58a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_nested_column_to_right_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..2f568eec1faf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..c43e1febc596 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/reorder_sticky_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png new file mode 100644 index 000000000000..73058c7ce4ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_column_reordering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..1769f3cd80d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_left_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png new file mode 100644 index 000000000000..bdb8b443ea01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_column_reordering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png new file mode 100644 index 000000000000..f151c962ade1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_auto_scroll_to_right_when_virtual_columns_are_enabled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..0feddddbd56b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_first_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd276d9223ca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/simulated_scrolling_-_navigate_to_last_cell_row_dragging__virtual_scrolling__virtual_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..89a818ae8938 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a211b350481 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fbb112ebdff3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b8e91fe34ee0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G (fluent-next.blue.light).png new file mode 100644 index 000000000000..430565c65e79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G_on_header (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G_on_header (fluent-next.blue.light).png new file mode 100644 index 000000000000..0162c0b01f4e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_all_columns_when_pressing_Shift_+_Alt_+_G_on_header (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d57536457da7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3ad470bd99ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_via_context_menu_when_showWhenGrouped_is_true_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_Ctrl_+_Shift_+_G (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_Ctrl_+_Shift_+_G (fluent-next.blue.light).png new file mode 100644 index 000000000000..81f6b66baf1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_Ctrl_+_Shift_+_G (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_ctrl_+_shift_+_g_if_showWhenGrouped_is_true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_ctrl_+_shift_+_g_if_showWhenGrouped_is_true (fluent-next.blue.light).png new file mode 100644 index 000000000000..fdbd82afd098 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_ctrl_+_shift_+_g_if_showWhenGrouped_is_true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_delete (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_delete (fluent-next.blue.light).png new file mode 100644 index 000000000000..a5239bf263a2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_column_when_pressing_delete (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4341b4de81b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c4bb3cd63e31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_when_pressing_backspace (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_when_pressing_backspace (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee598b33d450 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_last_column_when_pressing_backspace (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d3d2f345f0fa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8a562c91d25 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_when_pressing_backspace (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_when_pressing_backspace (fluent-next.blue.light).png new file mode 100644 index 000000000000..2702d4973b43 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_second_column_when_pressing_backspace (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_on_backspace_when_there_is_command_column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_on_backspace_when_there_is_command_column (fluent-next.blue.light).png new file mode 100644 index 000000000000..5cc427a1b5ba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_on_backspace_when_there_is_command_column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..22fed319a5ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d171dc63488d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_via_context_menu_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_when_pressing_backspace (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_when_pressing_backspace (fluent-next.blue.light).png new file mode 100644 index 000000000000..430565c65e79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/keyboardNavigation/etalons/ungroup_single_column_when_pressing_backspace (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T1293839-grid-no-data-text-rendered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T1293839-grid-no-data-text-rendered (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d0886b5083d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T1293839-grid-no-data-text-rendered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T838734_alternate-rows-same-size (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T838734_alternate-rows-same-size (fluent-next.blue.light).png new file mode 100644 index 000000000000..0f845246097c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/T838734_alternate-rows-same-size (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-fixed-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-fixed-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..12c60b6ab62e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-fixed-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-no-fixed-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-no-fixed-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab44a6360e0b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-no-row-lines-and-no-fixed-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-fixed-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-fixed-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe008e49345f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-fixed-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-no-fixed-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-no-fixed-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..5b217c3dc803 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/datagrid-deleted-row-height-row-lines-and-no-fixed-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/grid-no-data-text-position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/grid-no-data-text-position (fluent-next.blue.light).png new file mode 100644 index 000000000000..69a19d7160fc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/grid-no-data-text-position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/icon-sizes (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/icon-sizes (fluent-next.blue.light).png new file mode 100644 index 000000000000..4a0a5d0eccb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/markup/etalons/icon-sizes (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1045321 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1045321 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fba5c820898f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1045321 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1113525.page-size-select (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1113525.page-size-select (fluent-next.blue.light).png new file mode 100644 index 000000000000..985a85d15e01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1113525.page-size-select (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..40ee8c64fd0f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa356d4b8492 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1159578-master-detail-with-renderAsync-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33fb472f0461 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..155483a11ad2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33fb472f0461 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=false-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33fb472f0461 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..155483a11ad2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33fb472f0461 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/masterDetail/etalons/T1167889-master-detail-with-scrolling.useNative=true-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/rowDragging/etalons/T1179218-virtual-scrolling-dragging-row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/rowDragging/etalons/T1179218-virtual-scrolling-dragging-row (fluent-next.blue.light).png new file mode 100644 index 000000000000..5649619958e7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/rowDragging/etalons/T1179218-virtual-scrolling-dragging-row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/T1237863_datagrid-sorting_and_filtering (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/T1237863_datagrid-sorting_and_filtering (fluent-next.blue.light).png new file mode 100644 index 000000000000..95963d1eb842 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/T1237863_datagrid-sorting_and_filtering (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/datagrid-alphabetical-icons-should-be-correct (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/datagrid-alphabetical-icons-should-be-correct (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d78ad519f95 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/sorting/etalons/datagrid-alphabetical-icons-should-be-correct (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/stateStoring/etalons/T1188828-state-storing-with-selected-row-keys (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/stateStoring/etalons/T1188828-state-storing-with-selected-row-keys (fluent-next.blue.light).png new file mode 100644 index 000000000000..df492943a308 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/stateStoring/etalons/T1188828-state-storing-with-selected-row-keys (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/Invalid-message-word-wrapping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/Invalid-message-word-wrapping (fluent-next.blue.light).png new file mode 100644 index 000000000000..14536b85cc3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/Invalid-message-word-wrapping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-message-shown-after-master-detail-collapse (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-message-shown-after-master-detail-collapse (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a1780d362bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-message-shown-after-master-detail-collapse (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..f481e7840d49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ccbd4cc2910 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..c524c957203a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..8dc191686ad0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column_after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column_after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef80a3a679d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/validation/etalons/validation-popup_master-detail_fixed-column_after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1090735-grid-virtual-columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1090735-grid-virtual-columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0d6c511c492 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1090735-grid-virtual-columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5f6b95dd3c7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a23faad80f74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=false-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..af8624ba7aea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0a76a1328ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176160-master-detail-with-virtual-columns-and-useNative=true-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a6156e1335a2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..929a9d228e2c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1176161-master-detail-with-virtual-columns-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c4f8689688d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..844a891b4c69 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c4f8689688d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1221369_fixed-summary-with-virtual-cols_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-after-horizontal-scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-after-horizontal-scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9f92375f6e5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-after-horizontal-scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-during-horizontal-scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-during-horizontal-scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..977419845179 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1260472-async-render-during-horizontal-scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1319173__datagrid__virtual-columns__repaintChangesOnly=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1319173__datagrid__virtual-columns__repaintChangesOnly=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..e78aac03ee2b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/T1319173__datagrid__virtual-columns__repaintChangesOnly=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__column-chooser (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__column-chooser (fluent-next.blue.light).png new file mode 100644 index 000000000000..89308174b61e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__column-chooser (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..94b7a1adbd26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__reoder (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__reoder (fluent-next.blue.light).png new file mode 100644 index 000000000000..1fd0074d51fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/data-grid__virtual-columns__reoder (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/grid-virtual-columns-after-reinit (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/grid-virtual-columns-after-reinit (fluent-next.blue.light).png new file mode 100644 index 000000000000..4a116506b5a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/common/virtualColumns/etalons/grid-virtual-columns-after-reinit (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1269088_grid_with_fixed_columns_and_without_data (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1269088_grid_with_fixed_columns_and_without_data (fluent-next.blue.light).png new file mode 100644 index 000000000000..75314783c5d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1269088_grid_with_fixed_columns_and_without_data (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5a7a93d88b06 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b35aaf3ac65 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1279722_band_sticky_columns-headers_with_filter_row_and_grouped_column_(rtl=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1303134_boolean_column_checkboxes_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1303134_boolean_column_checkboxes_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..74460f3489c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/T1303134_boolean_column_checkboxes_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c686ad69d27 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c223b9d1525 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_fixed_columns_with_small_grid_width_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1871a26f16c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea6f951fbb38 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b75d7437d105 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..791799e0cd1b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_adaptive_detail_row_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b23c26989f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8369a7253420 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e330cc3574d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8369a7253420 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b23c26989f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e330cc3574d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/adaptability_sticky_columns_with_sticky_positions_and_hiding_priority_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9353f5fffe1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d4990147641 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..056591cfdb82 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..02ac7b1b60b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..645d9d4423c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..fed67fbf5088 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad7287c814b7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a81836412401 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/banded_hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/context_menu_and_virtual_columns_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/context_menu_and_virtual_columns_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..70cecb821020 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/context_menu_and_virtual_columns_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_adaptive_item_focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_adaptive_item_focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..cff1b63f5284 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_adaptive_item_focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b5e18db963e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..8aad5a972960 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_default_state_with_showRowLines=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_footer_row_focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_footer_row_focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..b0305d6f602b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_footer_row_focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_row_focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_row_focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d1f8226fe7a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_group_row_focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_header_hover_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_header_hover_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..4ad0dcd2b32c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_header_hover_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_alt_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_alt_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..599101e21d56 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_alt_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_hover_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_hover_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..0df6b43164de Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_row_hover_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..46be475ed900 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..07a51b4a0e97 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_selected_focused_edit_state_with_showRowLines=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_sticky_columns_with_drag_and_drop (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_sticky_columns_with_drag_and_drop (fluent-next.blue.light).png new file mode 100644 index 000000000000..fea94ee8d121 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/datagrid_sticky_columns_with_drag_and_drop (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/drag-icons-focused-selected-rows (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/drag-icons-focused-selected-rows (fluent-next.blue.light).png new file mode 100644 index 000000000000..4ef1384c5d31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/drag-icons-focused-selected-rows (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/draggable_source_column_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/draggable_source_column_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..37b0e050e1ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/draggable_source_column_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/dragging_fixed_column_to_group_panel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/dragging_fixed_column_to_group_panel (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d1e005b8e2a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/dragging_fixed_column_to_group_panel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8642d6206853 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb5645682a53 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..274af8ab9c6a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a0106977309b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_cell_with_validation_rule_and_fixed_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe420b3c2ac0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0179fa5cd2ff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab4056684431 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..91b60b00911e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fd7067369983 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f7099233143 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_sticky_position_and_validation_rule_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf52c7c072bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6e016b52aa0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_fixed_cell_with_validation_rule_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..adb00e6ef9ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b63493995368 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_form_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5092b8bdd93c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..90f8b3868b4b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_last_unfixed_cell_with_validation_rule_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..12106883b2d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..616136155966 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/edit_row_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_1_(showColumnHeaders_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_1_(showColumnHeaders_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e65bb6cc46a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_1_(showColumnHeaders_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_2_(showColumnHeaders_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_2_(showColumnHeaders_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..62f1ab01f814 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_and_band_columns_2_(showColumnHeaders_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1fd9451b308 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..21f9ad7b6968 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/filter_row_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..aa0836dfff66 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bdda128743a1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_and_command_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..03696998d574 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..15bf393e50b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b327fc6155ba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..593ebd16aa1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_and_adaptability_headers_navigation_by_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..691cab661207 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce6ce41dbd8d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..88a753b97004 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..50eeae1f0e5e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_band_headers_navigation_by_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5a3d3137314b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e84355e34a9c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..963f1e32c7d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..01b9a65e9cec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_data_cells_navigation_by_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1943f06bc76 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a17e3e5f4763 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_shift_and_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e21e6b33e781 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..235cce411cee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_headers_navigation_by_tab_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_125%_zoom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_125%_zoom (fluent-next.blue.light).png new file mode 100644 index 000000000000..42387c07ba5c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_125%_zoom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_150%_zoom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_150%_zoom (fluent-next.blue.light).png new file mode 100644 index 000000000000..0481b0c18e88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_150%_zoom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_90%_zoom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_90%_zoom (fluent-next.blue.light).png new file mode 100644 index 000000000000..9058d4cabbc1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_90%_zoom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_horizontal_scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_horizontal_scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..acbd2b359a31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_horizontal_scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7f0dc7d344b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7f0dc7d344b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/fixed_columns_with_virtual_scrolling_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/group_row_scrolling_all_collapsed_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/group_row_scrolling_all_collapsed_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..4cf3f0b21347 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/group_row_scrolling_all_collapsed_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0d50be12543 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..e99e35d4f944 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-focused-group-row-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-begin (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-begin (fluent-next.blue.light).png new file mode 100644 index 000000000000..787b78c9806e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-begin (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-center (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-center (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a8f3e49ec0a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-center (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e5bf3978267 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-multiple-scroll-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-overflow-cell (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-overflow-cell (fluent-next.blue.light).png new file mode 100644 index 000000000000..a9cb03a46bab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-overflow-cell (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9b527aa325c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..34b7de27a36f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-begin-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..16daea34328b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c11ee9edab3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-center=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..31f4b9d3cd25 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..d00e7c186c00 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-end=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b2df6238b26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..44e6cdd593d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ac394ff018a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f992f8d65c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/grouping-scroll-total_summary_intersection-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/header_row_highlight_with_fixed_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/header_row_highlight_with_fixed_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..1e3f9980790c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/header_row_highlight_with_fixed_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2315b30a69bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1fd6c52c652e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..34ea21d3405a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..88108c92a532 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_left_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0da0fcd8f72c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..98d4f79d717d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_1_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4135f896dc9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..91b55fbb7db4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/hidden_column_between_sticky_column_and_right_fixed_column_2_(rtlEnabled_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..2716d4bbebf7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..54bba8ac567b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-begin (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-begin (fluent-next.blue.light).png new file mode 100644 index 000000000000..54bba8ac567b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-begin (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-center (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-center (fluent-next.blue.light).png new file mode 100644 index 000000000000..85de816c83d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-center (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc9ee5cc1c38 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/masterdetail-scroll-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_band_column_with_sticky_position_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_band_column_with_sticky_position_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..a4f4054d61d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_band_column_with_sticky_position_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_column_with_sticky_position_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_column_with_sticky_position_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..186500fd78fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_fixed_column_with_sticky_position_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_band_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_band_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ec428aa1598 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_band_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_column_to_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_column_to_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..8fb07b830e74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_left_fixed_column_to_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_band_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_band_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b4421e8d1bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_band_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_column_to_left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_column_to_left (fluent-next.blue.light).png new file mode 100644 index 000000000000..1fe0eee58c63 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/move_right_fixed_column_to_left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/multi_row_header_columns (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/multi_row_header_columns (fluent-next.blue.light).png new file mode 100644 index 000000000000..a49938c2ffd1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/multi_row_header_columns (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bfdafe51f63d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ef8cae69239 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d39c062a9c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cde1363b0f8b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..111524cc1f48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..93feaf91e540 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b477e90f913c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..78f9918bad13 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_left_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..86d134cb749d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7aa918b3778e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d5bbd7d3d896 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..80a9f1b6a5fc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_first_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0825525b1b19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0000aae3074 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..609df0bd696e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cead93b8abfe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_1_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9c91264052d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f9de70d85f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(nextColumn_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d68a515c7b10 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab0cf4709c30 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/resize_second_fixed_column_with_right_position_2_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..320f9519f6b4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..837bd86c5e88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/row_selection_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f70ee2e2fe7c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2dafd6ffbf4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_fixed_column_on_right_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..73ef05df946b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b51c83994fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/separator_position_with_window_scroll_top_(widget_mode_and_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..54e6b9e0d228 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c114698230c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/simulated_scrollbar_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/sticky_columns_context_menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/sticky_columns_context_menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1461129a5ec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/sticky_columns_context_menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2737b767e160 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2ad18abc1eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_fixed_column_with_validation_message_and_revert_button_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c82ecf48e178 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2ad18abc1eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/vertical_scroll_and_focused_fixed_column_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_expand_scroll_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_expand_scroll_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..964a12cf7f4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_expand_scroll_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_scroll_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_scroll_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bfc5e3485d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_grouping_scroll_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_nested_grouping_scroll_right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_nested_grouping_scroll_right (fluent-next.blue.light).png new file mode 100644 index 000000000000..559be60bb989 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_nested_grouping_scroll_right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a174430ee37a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc7762258481 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/common/etalons/virtual_columns_with_sticky_columns_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d7686ef2ef0d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3ee6a891500d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..01383fffbac8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf1eddea070a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f2603cab351a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..56beeffda564 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d3f1117b5d42 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..23902e8080b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e1ed7e4b878 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6682e2f6bca3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..998dd7fd5d62 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a3f544e88aa2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3abe440b7aec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c894f4a7697b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..770f8e6fb09f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..55e3b06d44a7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fefca459aef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bb9333ae34f1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..08f31f25dc78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..564d5f597d5c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8e63c54bcf9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1053c07395f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c628fc8f1d82 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..93f959474f61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b031befd6d6e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d41cb4758ce5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..caff333611c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..37b54bea0fd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c625be2de04 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1a9a6fae923d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5537c4a149b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8fce1ac05f12 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9a1c2fc1cf1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d514c436c105 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1d46b3c8e55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5f164a42963 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b1dc7e1491a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..22d5bb8609e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..58cd84392b6c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6295f0cecb9a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1999ca8264c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2244a94f67fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3d899e3f56d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f5f151326ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7acab0d582b0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ae7ad98ab1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..510ba29dcd8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ff01a1c7767 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e030f95a83b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..86ba7158cca8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c0d6d4ee604c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..135eb08205b7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd723817ec50 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4901d6364865 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e25480287b3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3db7872a130 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..18cb6b371763 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f18e3289c91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..280edd785253 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..07d711237846 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffae08dbf251 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2babc6f934b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..629ea8ee94e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1eefe8c6b04 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0984d2632a3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3b800070d302 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..aed15f933b27 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e06db847d0c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..35f6979aca86 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d74488f2b116 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e094060c0ca1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..abedeb94ebbd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..be0aa3ee3b38 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..398689e10aa5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..21f801e11241 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c59b56ac7ca8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..759c1147b142 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7bc3e1fc231c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2326fd3cb7b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c6b4094a21f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..134cdb8e9fe6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fcb95ffed91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..af1324d11479 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..fc25a2068e15 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..64a9a8256401 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0ab77456a393 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..70ce32082ab8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..734111cddb10 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7262a21d760b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8a51f6b9dd8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..810f7e73e447 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4200598e0c83 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..45f14cd3bf1a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..38445e0166af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a91f930b4e1c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3cd090dbd85c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7bf05e9b8df8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bb39d17ac4c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e05886f6aa0d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3ad34ba11f40 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fe65d7a1a22 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..88629b978a10 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbd94f9fb1c2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e39490ccdef8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1857e70cee4a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..da522f9cb398 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f834e7e6c09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4ceada93d87b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..38049c0c660c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..421749ba4256 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e591c06e9acf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5663239d11a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-1-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..631e7aec4b8e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2fc7730a4af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..66dd22f56676 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0f7985ae1c96 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dcb346678a7b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1cd58304932 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..032228d6e91f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0720a7efc1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..61e5122ee3d3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..be5e48092b4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cacea26074e5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..94e0e72ab804 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb6d7948f954 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..10c00fe1742b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..41e32f571f93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ed399c425cfd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-10)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3b3c43a4561 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b16f3ac5f26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ae8d8c69a54 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a87b68607ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b3f1844dd3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..18a7c6ce3e06 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d529b8e2781e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a7c076d6c23 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-11)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a0574f36ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..96e857ed1395 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff7c32df4c07 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..605b9e9c03d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d65084c95b4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b56f490a9b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a545751fd191 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..afc8c483c286 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-12)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..524aabba7345 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c7035cc6d6b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..72e1aa5196f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fe2e4f35d51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e161c64902c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf157bcdf6bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2142a0f49b90 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f4464f39352f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-13)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f471e370e815 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..03b24619a799 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ecb8c89da995 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6833c7dee521 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..359787587191 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..78f237166c8d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..793e4dd8a6c2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8131d156a91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-14)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ca8f1e9d593 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d34333b540d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..20ad9b41712c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..418fa4f95f49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..72f0ce5cf8a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a133a908b45f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9679787cbba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..af747209a73c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..025025f1cfc6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..39767b5342d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..42a8d6e8119d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c02f9a546cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..beda654056cc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..afdc3db08953 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9d8cb6cc3d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4bd9a60dbf83 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..daa71b87428d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a91cfadaad91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..41b01e30708a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a203978dd98e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b7c4c74a1670 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2a9b00ea67b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5fd01afeaa7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c5b9b8e27ad6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-4)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d465c1765206 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..817e631b71d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d18c7c4cc48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5a2ebb4cedb6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bdb849a85f22 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..64ebed5d8643 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba37b05fccc8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..50ce2abf896c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-5)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..af4ed0a21c06 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a1c49a9dd361 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9b5e043724b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a1896425eebc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..335eee4d25fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..75101d57a7dc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9a9d665f906f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..de8ef5ee9a59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-6)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..631e7aec4b8e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c41725b1186 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..66dd22f56676 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f486fe3a4516 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dcb346678a7b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5f534e202f88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..032228d6e91f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..04c50ec04a0f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-7)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f66bd9b6768f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cf1c6522472 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..80f2588a3bdc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0aa534818ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..27ce444f87ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef2a43547411 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f5cf32c6e03 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..34914a09e0ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-8)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..20f66ddd6ec9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1697c38aa0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c98959cff77 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b24d9e90e11 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..fd1d8b49bb61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..55e974fece05 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..55547438f175 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1258e56ed217 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/band-columns-2-(case-9)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d7453d31c8d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5cc04bbf077 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..03b4bb873e40 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..298fa5222915 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..55a62af638b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..49b9467df030 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae42d564391f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ad4bfb248fa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1356214164c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c07efd07421 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2c0f19c9a26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1a7c53191d17 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d6b8f90ee6d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..72602da20451 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1117eefdaf2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b0795d8ca6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..90022ec5de35 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..856c353ab135 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..075c60fba47b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..86964493008d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c78cec6261b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0663f8cb516 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bd417f6d0632 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2144100d3769 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bbd514dd2b59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e76e74159040 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..15c905a09ece Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..57df6e3438a1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a41df4afc124 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7e0bc8768496 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..be6d602b67c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0fce64fe7f78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b38de6703865 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad172f6d9a6f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bd668615c49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0286945a5bcf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad198dc9218a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..75c6151876ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff363b348c5e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0f82c160048c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1dcf0c38fd72 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2952b541c7bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4eaa78664606 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0b3be49e06ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..82d84f9f5a24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b14bebf0184b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5636694d0774 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bf81bd89538 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/left-right-sticky-positions-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6784e0d228cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f8045b82bd3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ed835d721059 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..06a69bd66d1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..540335037376 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c87bf9c1063b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..de6b9bd5d62f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b9619302b3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-1(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebc3faf85a4d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9944aae718f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b806ef81e59b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3139e3500b7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2e688128f0b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9a0cee5e98c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dbae165a148a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..54ea65ea63dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/right-position-2(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..77d9bc514703 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..49d84dba58f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bc43ee429a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d8f876c03b5a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8eca36841df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d6258f57561 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9265bc4a83f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..adc4c8076a93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e37d7c9930a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9a7da14ec09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..90c698c38f03 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..79d6b7701d15 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..afa9c1a2609e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec4fd0ca8372 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c3a52e6726ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..84236b418669 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..aef2dc4037a8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..402b726e096f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c47b08bc8f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..99203585dfae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..67f3acee41f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..961874b828b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..162122faba1a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..50c3dba2e9de Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-1-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..184c4624589a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d230b40e5067 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..58498fec6aa5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..71f6682c02ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3cff4766ace7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef91cb469b11 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..df648f301f0d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..579a5f690ba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-1)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce02c97d3e87 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8356bf325b31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..487263aacea7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c881e3f28b0f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b470b60e4f9f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d0841e91af2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..eea34eb7ab9c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c0105580d9f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-2)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7fce9c26d3db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ddaf4845ae1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..021b5337ccd8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b235aab8fa64 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_false_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea0e859943e1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3c27123660d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_false_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d2e981c0432 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..47bf766741df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/dataGrid/sticky/fixed/etalons/sticky-position-2-(case-3)(cLines_=_true_borders_=_true_rtl_=_true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/autocomplete/etalons/Autocomplete placeholder if value is not choosen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/autocomplete/etalons/Autocomplete placeholder if value is not choosen (fluent-next.blue.light).png new file mode 100644 index 000000000000..46a80cec7b49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/autocomplete/etalons/Autocomplete placeholder if value is not choosen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar cell styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar cell styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ede73b8450b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar cell styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view (fluent-next.blue.light).png new file mode 100644 index 000000000000..27a90aa13d7e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view cell styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view cell styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..98cbfb664270 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view cell styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..fca7f362de4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view with today button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view with today button (fluent-next.blue.light).png new file mode 100644 index 000000000000..e5cb7be8d5b6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar century view with today button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view (fluent-next.blue.light).png new file mode 100644 index 000000000000..31c0c13a73db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view cell styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view cell styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e4d55c6579e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view cell styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..7bcecf5b74f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view with today button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view with today button (fluent-next.blue.light).png new file mode 100644 index 000000000000..14882af7e86f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar decade view with today button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view (fluent-next.blue.light).png new file mode 100644 index 000000000000..9695461fcb69 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf98909d5a7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view with today button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view with today button (fluent-next.blue.light).png new file mode 100644 index 000000000000..fc9e54a8cb8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar month view with today button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar today cell styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar today cell styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..2fbe5f8edbd9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar today cell styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with disabled dates (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with disabled dates (fluent-next.blue.light).png new file mode 100644 index 000000000000..de9c5f6db29e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with disabled dates (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with limit width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with limit width (fluent-next.blue.light).png new file mode 100644 index 000000000000..979750fea6a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with limit width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiple selectionMode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiple selectionMode (fluent-next.blue.light).png new file mode 100644 index 000000000000..9d033bf4234c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiple selectionMode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiview (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiview (fluent-next.blue.light).png new file mode 100644 index 000000000000..39bfcfd1c346 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with multiview (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=century) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=century) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf7de7f78b8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=century) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=decade) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=decade) (fluent-next.blue.light).png new file mode 100644 index 000000000000..06227d3cda9a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=decade) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=year) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=year) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0fb8acad891 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selection (maxZoomLevel=year) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selectionMode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selectionMode (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ff23322b2db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with range selectionMode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers (fluent-next.blue.light).png new file mode 100644 index 000000000000..e5b91f3a6d23 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers and cell template (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers and cell template (fluent-next.blue.light).png new file mode 100644 index 000000000000..d309bf20a747 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers and cell template (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers last week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers last week (fluent-next.blue.light).png new file mode 100644 index 000000000000..19a07bc4899c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers last week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..1904b357dccf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar with showWeekNumbers rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae002cb24fb0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view cell styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view cell styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3a55936b762 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view cell styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef74e022e2fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view with today button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view with today button (fluent-next.blue.light).png new file mode 100644 index 000000000000..68347fdb784c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Calendar year view with today button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=multiple) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=multiple) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b06ac7379cfc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=multiple) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=range) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=range) (fluent-next.blue.light).png new file mode 100644 index 000000000000..032fca9fccd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/calendar/etalons/Week cell click selection (selectionMode=range) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist appearance in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist appearance in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a03b5ae9a9b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist appearance in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with long text in error (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with long text in error (fluent-next.blue.light).png new file mode 100644 index 000000000000..2563e10f1349 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with long text in error (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with one error (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with one error (fluent-next.blue.light).png new file mode 100644 index 000000000000..961709503239 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Alertlist with one error (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar has correct position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar has correct position (fluent-next.blue.light).png new file mode 100644 index 000000000000..78dbdde96f9a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar has correct position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar sizes do not affect indentation between bubbles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar sizes do not affect indentation between bubbles (fluent-next.blue.light).png new file mode 100644 index 000000000000..74328856582b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar sizes do not affect indentation between bubbles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with image (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with image (fluent-next.blue.light).png new file mode 100644 index 000000000000..3ce2f8158be5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with image (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with showAvatar set to false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with showAvatar set to false (fluent-next.blue.light).png new file mode 100644 index 000000000000..3eeb812331ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with showAvatar set to false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with two word initials (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with two word initials (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f669f55d3a1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Avatar with two word initials (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubble with files without text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubble with files without text (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d9a6cc5d87c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubble with files without text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with files (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with files (fluent-next.blue.light).png new file mode 100644 index 000000000000..39c2adb86e16 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with files (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with images (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with images (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf1467759325 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with images (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0bb06a9f862 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text with line breaks (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text with line breaks (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f0b6ebdf08a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Bubbles with long text with line breaks (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Chat suggestions outside of a chat (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Chat suggestions outside of a chat (fluent-next.blue.light).png new file mode 100644 index 000000000000..20a0759fde79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Chat suggestions outside of a chat (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Confirmation popup is shown (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Confirmation popup is shown (fluent-next.blue.light).png new file mode 100644 index 000000000000..6805a64882ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Confirmation popup is shown (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Information row with long user name (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Information row with long user name (fluent-next.blue.light).png new file mode 100644 index 000000000000..d11f246eee1c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Information row with long user name (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/MessageGroup with edited messages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/MessageGroup with edited messages (fluent-next.blue.light).png new file mode 100644 index 000000000000..38358d2c00d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/MessageGroup with edited messages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when chat has focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when chat has focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..c12fc437b36c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when chat has focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains long text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains long text (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8f3b63e33ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains long text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains short text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains short text (fluent-next.blue.light).png new file mode 100644 index 000000000000..b334710c8b18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when input contains short text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when send button has focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when send button has focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..821882a60c41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox when send button has focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with attachments and informer (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with attachments and informer (fluent-next.blue.light).png new file mode 100644 index 000000000000..4dc8a475145c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with attachments and informer (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with editing preview (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with editing preview (fluent-next.blue.light).png new file mode 100644 index 000000000000..849ef59e18a7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagebox with editing preview (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..bd4d5753e474 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in disabled state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in disabled state (fluent-next.blue.light).png new file mode 100644 index 000000000000..6ca6857da439 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup appearance in disabled state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 1 bubble (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 1 bubble (fluent-next.blue.light).png new file mode 100644 index 000000000000..39a53b4d555f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 1 bubble (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 2 bubbles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 2 bubbles (fluent-next.blue.light).png new file mode 100644 index 000000000000..eced13b0ccc7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 2 bubbles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 3 bubbles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 3 bubbles (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec6a5fefa147 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 3 bubbles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 4 bubbles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 4 bubbles (fluent-next.blue.light).png new file mode 100644 index 000000000000..1edf0db4dcd5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagegroup with 4 bubbles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in RTL mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in RTL mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..9beba586088c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in RTL mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in disabled state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in disabled state (fluent-next.blue.light).png new file mode 100644 index 000000000000..08ef97069a9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty in disabled state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty state (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd460e458101 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty with limited dimensions (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty with limited dimensions (fluent-next.blue.light).png new file mode 100644 index 000000000000..0361cee26efc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist empty with limited dimensions (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scroll position after rendering in invisible container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scroll position after rendering in invisible container (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e0bfcdf54ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scroll position after rendering in invisible container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar middle position after typing in textarea (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar middle position after typing in textarea (fluent-next.blue.light).png new file mode 100644 index 000000000000..37a062add848 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar middle position after typing in textarea (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after call renderMessage() (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after call renderMessage() (fluent-next.blue.light).png new file mode 100644 index 000000000000..111a138cb2db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after call renderMessage() (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after send (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after send (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c0485babef7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after send (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after typing in textarea (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after typing in textarea (fluent-next.blue.light).png new file mode 100644 index 000000000000..4fa7738e2d02 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist scrollbar position after typing in textarea (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with a lot of messages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with a lot of messages (fluent-next.blue.light).png new file mode 100644 index 000000000000..f7fe459f0137 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with a lot of messages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with date headers (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with date headers (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb5151de92ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with date headers (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with editing context menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with editing context menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d629abd31fe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with editing context menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template (fluent-next.blue.light).png new file mode 100644 index 000000000000..c3cb3b811b7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template after new message add (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template after new message add (fluent-next.blue.light).png new file mode 100644 index 000000000000..858151af39d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template after new message add (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template and deleted messages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template and deleted messages (fluent-next.blue.light).png new file mode 100644 index 000000000000..1c132fef3980 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with message template and deleted messages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with showDayHeaders, showUserName and showMessageTimestamp options set to false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with showDayHeaders, showUserName and showMessageTimestamp options set to false (fluent-next.blue.light).png new file mode 100644 index 000000000000..7587a4d05abd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist with showDayHeaders, showUserName and showMessageTimestamp options set to false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist without message template and with deleted messages (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist without message template and with deleted messages (fluent-next.blue.light).png new file mode 100644 index 000000000000..7389224798af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Messagelist without message template and with deleted messages (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 1 user (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 1 user (fluent-next.blue.light).png new file mode 100644 index 000000000000..fad7710c919e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 1 user (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 2 users (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 2 users (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a407a1635c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 2 users (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 3 users (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 3 users (fluent-next.blue.light).png new file mode 100644 index 000000000000..1810d190225b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 3 users (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 4 users (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 4 users (fluent-next.blue.light).png new file mode 100644 index 000000000000..12f83f9433a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with 4 users (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with a lot of items (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with a lot of items (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e74a5a0385f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with a lot of items (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with emptyview (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with emptyview (fluent-next.blue.light).png new file mode 100644 index 000000000000..48a1af84523b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with emptyview (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with long name (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with long name (fluent-next.blue.light).png new file mode 100644 index 000000000000..a0d87f2b21e6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator with long name (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator without name (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator without name (fluent-next.blue.light).png new file mode 100644 index 000000000000..d64625e31c73 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/chat/etalons/Typing indicator without name (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/chat/suggestions.ts b/e2e/testcafe-devextreme/tests/editors/chat/suggestions.ts new file mode 100644 index 000000000000..1261cb610b7c --- /dev/null +++ b/e2e/testcafe-devextreme/tests/editors/chat/suggestions.ts @@ -0,0 +1,48 @@ +import { createScreenshotsComparer } from 'devextreme-screenshot-comparer'; +import { ClientFunction } from 'testcafe'; +import url from '../../../helpers/getPageUrl'; +import { createWidget } from '../../../helpers/createWidget'; +import { getThemeName, testScreenshot } from '../../../helpers/themeUtils'; + +const CHAT_SUGGESTIONS_CLASS = 'dx-chat-suggestions'; + +const render = ClientFunction((markup: string) => { + const container = document.querySelector('#container'); + + if (container) container.innerHTML = markup; +}); + +const createSuggestions = (selector: string) => createWidget('dxButtonGroup', { + items: [ + { text: 'Summary' }, + { text: 'Ideal Buyer' }, + { text: 'Competitors' }, + ], + stylingMode: 'outlined', + selectionMode: 'none', + elementAttr: { class: CHAT_SUGGESTIONS_CLASS }, + width: 400, +}, selector); + +if (getThemeName() === 'fluent-next') { + fixture.disablePageReloads`ChatSuggestions`.page( + url(__dirname, '../../container.html'), + ); + + test('Chat suggestions outside of a chat in light and dark modes', async (t) => { + const { takeScreenshot, compareResults } = createScreenshotsComparer(t); + + await testScreenshot(t, takeScreenshot, 'Chat suggestions outside of a chat.png', { + element: '#container', + }); + + await t.expect(compareResults.isValid()).ok(compareResults.errorMessages()); + }).before(async () => { + await render(` +
+
+ `); + await createSuggestions('#light'); + await createSuggestions('#dark'); + }); +} diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..658437ecdfa2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=0.67 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=0.67 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5272bf107d1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=0.67 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=1.15 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=1.15 (fluent-next.blue.light).png new file mode 100644 index 000000000000..38dd32029d06 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/CheckBox appearance in scaled container, scale=1.15 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states (fluent-next.blue.light).png new file mode 100644 index 000000000000..d7d3c6c6bf00 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states with column count style (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states with column count style (fluent-next.blue.light).png new file mode 100644 index 000000000000..105947cd8ac0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox states with column count style (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with bottom position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with bottom position (fluent-next.blue.light).png new file mode 100644 index 000000000000..96a07f2be0bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with bottom position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with left position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with left position (fluent-next.blue.light).png new file mode 100644 index 000000000000..2bc7f103cc27 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with left position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with right position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with right position (fluent-next.blue.light).png new file mode 100644 index 000000000000..639c0fbeb3f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with right position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with top position (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with top position (fluent-next.blue.light).png new file mode 100644 index 000000000000..1e247abd881b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/checkBox/etalons/Checkbox validation message with top position (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/colorbox/etalons/Colorbox with placeholder (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/colorbox/etalons/Colorbox with placeholder (fluent-next.blue.light).png new file mode 100644 index 000000000000..b119cce12f2c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/colorbox/etalons/Colorbox with placeholder (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox render with buttons container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox render with buttons container (fluent-next.blue.light).png new file mode 100644 index 000000000000..672b1c857692 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox render with buttons container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and opened AMPM select (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and opened AMPM select (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ef8a12382fc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and opened AMPM select (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and root element as container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and root element as container (fluent-next.blue.light).png new file mode 100644 index 000000000000..8c36aed3e620 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/DateBox with datetime and root element as container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox (fluent-next.blue.light).png new file mode 100644 index 000000000000..bda6832a8028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox active (fluent-next.blue.light).png new file mode 100644 index 000000000000..bda6832a8028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..a9cf8238fdb5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox label symbols (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox label symbols (fluent-next.blue.light).png new file mode 100644 index 000000000000..eaa20eba9653 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox label symbols (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox validation message (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox validation message (fluent-next.blue.light).png new file mode 100644 index 000000000000..d932dbc70717 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox validation message (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with calendar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with calendar (fluent-next.blue.light).png new file mode 100644 index 000000000000..304ea7fc7bbb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with calendar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime (fluent-next.blue.light).png new file mode 100644 index 000000000000..d232fd71250d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without analog clock (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without analog clock (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b7cb668b34f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without analog clock (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without calendar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without calendar (fluent-next.blue.light).png new file mode 100644 index 000000000000..81668730386f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateBox/etalons/Datebox with datetime without calendar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB appearance after change rtl mode in runtime (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB appearance after change rtl mode in runtime (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a55d46b32a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB appearance after change rtl mode in runtime (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates after end date select (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates after end date select (fluent-next.blue.light).png new file mode 100644 index 000000000000..0433d0d93e20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates after end date select (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates before start date select (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates before start date select (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cda63162fab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates before start date select (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on end date input focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on end date input focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..3cf6b94cfb25 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on end date input focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on popup opening (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on popup opening (fluent-next.blue.light).png new file mode 100644 index 000000000000..5181bb5ba330 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on popup opening (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on start date input focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on start date input focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..d93f3a774074 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB disabled dates on start date input focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and end in row & vise versa (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and end in row & vise versa (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a4e3c720e36 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and end in row & vise versa (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and in row & end in view and in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and in row & end in view and in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..579d9a1268fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range cells, start in view and in row & end in view and in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate = startDate (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate = startDate (fluent-next.blue.light).png new file mode 100644 index 000000000000..9aa033bdec7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate = startDate (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is cell inside row, hover is start in view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is cell inside row, hover is start in view (fluent-next.blue.light).png new file mode 100644 index 000000000000..58f737f20fe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is cell inside row, hover is start in view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end cell row, hover is end in view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end cell row, hover is end in view (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5117de9f16e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end cell row, hover is end in view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & end cell row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & end cell row (fluent-next.blue.light).png new file mode 100644 index 000000000000..75eba245ee16 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & end cell row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & start row, hover is start row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & start row, hover is start row (fluent-next.blue.light).png new file mode 100644 index 000000000000..00aae7271b34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view & start row, hover is start row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view, hover is start view & end row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view, hover is start view & end row (fluent-next.blue.light).png new file mode 100644 index 000000000000..31f8e1b2e1d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is end in view, hover is start view & end row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in row, hover is end view & start row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in row, hover is end view & start row (fluent-next.blue.light).png new file mode 100644 index 000000000000..516125a24edf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in row, hover is end view & start row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view & start in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view & start in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c911df89f3e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view & start in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view, hover is end in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view, hover is end in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..8756d3f5e4ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start in view, hover is end in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start view & end cell row, hover inside row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start view & end cell row, hover inside row (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6da6b521bd9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, endDate is start view & end cell row, hover inside row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & end cell row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & end cell row (fluent-next.blue.light).png new file mode 100644 index 000000000000..b879fff53fa7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & end cell row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & start in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & start in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..b7b44382b424 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is end in view & start in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & end cell row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & end cell row (fluent-next.blue.light).png new file mode 100644 index 000000000000..343c56cdf92c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & end cell row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & start in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & start in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..79a70c6dcc63 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, hover is start in view & start in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate cell is start in view & end cell row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate cell is start in view & end cell row (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b057de7e005 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate cell is start in view & end cell row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate inside row, hover is start in view & row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate inside row, hover is start in view & row (fluent-next.blue.light).png new file mode 100644 index 000000000000..caa3f2a1ed1c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate inside row, hover is start in view & row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end cell row, hover is start in row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end cell row, hover is start in row (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff7a8c66f549 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end cell row, hover is start in row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & row, hover inside row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & row, hover inside row (fluent-next.blue.light).png new file mode 100644 index 000000000000..30ebe493d02f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & row, hover inside row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & start row, hover is end row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & start row, hover is end row (fluent-next.blue.light).png new file mode 100644 index 000000000000..5bdeb297f8cb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view & start row, hover is end row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view, hover inside row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view, hover inside row (fluent-next.blue.light).png new file mode 100644 index 000000000000..25fc1ea1f80a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is end in view, hover inside row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in row, hover is start in view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in row, hover is start in view (fluent-next.blue.light).png new file mode 100644 index 000000000000..382fcd87f948 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in row, hover is start in view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in view, hover is end in view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in view, hover is end in view (fluent-next.blue.light).png new file mode 100644 index 000000000000..647f68ed384b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start in view, hover is end in view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start view & row, hover is end view & row (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start view & row, hover is end view & row (fluent-next.blue.light).png new file mode 100644 index 000000000000..52d93aef59fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DRB range, startDate is start view & row, hover is end view & row (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox styles (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox styles (fluent-next.blue.light).png new file mode 100644 index 000000000000..593430dcb66e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox styles (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox with buttons container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox with buttons container (fluent-next.blue.light).png new file mode 100644 index 000000000000..bb4bf4faab07 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/DateRangeBox with buttons container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=floating (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=floating (fluent-next.blue.light).png new file mode 100644 index 000000000000..23a30948853b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=floating (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..14f1c3cf487e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..01f0c59ba1ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=static (fluent-next.blue.light).png new file mode 100644 index 000000000000..c626288172ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label by default labelMode=static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=floating focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=floating focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..d6650e5e7388 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=floating focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=hidden focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=hidden focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..dffcded1b99e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=hidden focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=outside focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=outside focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..27d6b6538a8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=outside focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=static focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=static focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..d6650e5e7388 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on end date input labelMode=static focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=floating (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=floating (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac06a348b989 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=floating (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..cfb3788415d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..c15204492439 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=static (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac06a348b989 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/Placeholder and label on start date input focus labelMode=static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox after opening (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox after opening (fluent-next.blue.light).png new file mode 100644 index 000000000000..d814f201b53b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox after opening (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox before opening (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox before opening (fluent-next.blue.light).png new file mode 100644 index 000000000000..f91b1bd19478 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dateRangeBox/etalons/The validation message overlay position for DateRangeBox before opening (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/Popup has correct height on the first opening (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/Popup has correct height on the first opening (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac3eca6a4895 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/Popup has correct height on the first opening (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/T1245111-dropDownBox-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/T1245111-dropDownBox-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f8eba0a01d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownBox/etalons/T1245111-dropDownBox-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..6dc16646984a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..c16011cc8d36 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/Button template, splitButton=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render (fluent-next.blue.light).png new file mode 100644 index 000000000000..662866d7cac8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render with fixed width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render with fixed width (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9218cf5b2c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render with fixed width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=danger (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=danger (fluent-next.blue.light).png new file mode 100644 index 000000000000..c66e51200eb2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=danger (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=default (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=default (fluent-next.blue.light).png new file mode 100644 index 000000000000..20fc931badb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=default (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=success (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=success (fluent-next.blue.light).png new file mode 100644 index 000000000000..331d1d151d50 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/dropDownButton/etalons/DropDownButton render, type=success (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/fileManager/etalons/drop down width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/fileManager/etalons/drop down width (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b264a0c9c2f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/fileManager/etalons/drop down width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-false (fluent-next.blue.light).png new file mode 100644 index 000000000000..bbcccbf83ac2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ef3fb47b1af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/fileUploader/etalons/fileuploader-show-filelist-true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/Image uploader from url appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/Image uploader from url appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1b4a887f1a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/Image uploader from url appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/add-validated-url-image-by-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/add-validated-url-image-by-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..60c5a7c48cff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/add-validated-url-image-by-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-after-updated (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-after-updated (fluent-next.blue.light).png new file mode 100644 index 000000000000..d9bdaab3015e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-after-updated (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-before-updated (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-before-updated (fluent-next.blue.light).png new file mode 100644 index 000000000000..60c5a7c48cff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-url-image-before-updated (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-validated-url-image-by-enter (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-validated-url-image-by-enter (fluent-next.blue.light).png new file mode 100644 index 000000000000..60c5a7c48cff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-add-validated-url-image-by-enter (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-add-image-from-device (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-add-image-from-device (fluent-next.blue.light).png new file mode 100644 index 000000000000..d044f6b2bbaf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-add-image-from-device (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-click-add-button-and-validation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-click-add-button-and-validation (fluent-next.blue.light).png new file mode 100644 index 000000000000..417fa43a3c0c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-after-click-add-button-and-validation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-and-validation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-and-validation (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a78ec59041a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-and-validation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-from-device (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-from-device (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ee8c90a57f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/editor-before-click-add-button-from-device (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3d6fef9f9ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..4605fa42452d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..80e293e21c48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3489d61ecf2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/tabpanel-in-htmleditor (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/tabpanel-in-htmleditor (fluent-next.blue.light).png new file mode 100644 index 000000000000..e30ee4418019 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/addImage/etalons/tabpanel-in-htmleditor (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-ask-ai-result-ready-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-ask-ai-result-ready-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee79a775ef4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-ask-ai-result-ready-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-asking-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-asking-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..b7f1dff7f5a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-asking-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..08ad1d598012 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state-on-small-screen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state-on-small-screen (fluent-next.blue.light).png new file mode 100644 index 000000000000..902333bc7d91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-error-state-on-small-screen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..5cf18d2a77c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state-on-small-screen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state-on-small-screen (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b4a09e2ae52 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-generating-state-on-small-screen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-on-small-screen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-on-small-screen (fluent-next.blue.light).png new file mode 100644 index 000000000000..38e2a7a309e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-on-small-screen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-resize-window (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-resize-window (fluent-next.blue.light).png new file mode 100644 index 000000000000..1a2ff73db2b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-resize-window (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-no-options (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-no-options (fluent-next.blue.light).png new file mode 100644 index 000000000000..01796ead615e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-no-options (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-options (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-options (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fa745050fa4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-initial-state-with-options (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-after-canceletion (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-after-canceletion (fluent-next.blue.light).png new file mode 100644 index 000000000000..45f64b292bba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-after-canceletion (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-on-small-screen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-on-small-screen (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2b1c4d349ba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-on-small-screen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-long-result (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-long-result (fluent-next.blue.light).png new file mode 100644 index 000000000000..06f5205a8ad7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-long-result (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-short-result (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-short-result (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8f9b8f32610 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/dialogs/aiDialog/etalons/htmleditor-ai-dialog-result-ready-state-with-short-result (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item (fluent-next.blue.light).png new file mode 100644 index 000000000000..69fa4ae30571 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item-expanded (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item-expanded (fluent-next.blue.light).png new file mode 100644 index 000000000000..d5bfcd1acc7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ai-toolbar-item-expanded (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..0eaa3540d30c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-text-appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-text-appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..833ed731a091 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-ordered-list-text-appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3d6fef9f9ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..4605fa42452d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-with-toolbar-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..80e293e21c48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3489d61ecf2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/htmlEditor/etalons/htmleditor-without-toolbar-focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with circle animation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with circle animation (fluent-next.blue.light).png new file mode 100644 index 000000000000..db1ab4add458 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with circle animation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with sparkle animation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with sparkle animation (fluent-next.blue.light).png new file mode 100644 index 000000000000..de447c40e260 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/loadIndIcator/etalons/LoadIndicator with sparkle animation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f8120789eca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance with limited width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance with limited width (fluent-next.blue.light).png new file mode 100644 index 000000000000..1ee43471aa6d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup appearance with limited width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup in loading (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup in loading (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8525cc6f164 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup in loading (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup width adjust to fit its content (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup width adjust to fit its content (fluent-next.blue.light).png new file mode 100644 index 000000000000..fd35af87e4eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup width adjust to fit its content (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup with no found data (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup with no found data (fluent-next.blue.light).png new file mode 100644 index 000000000000..8c815a8d347b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/lookup/etalons/Lookup with no found data (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox label (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox label (fluent-next.blue.light).png new file mode 100644 index 000000000000..b350771ab073 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox label (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox render with buttons container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox render with buttons container (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5856b028ae8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/numberBox/etalons/NumberBox render with buttons container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (alert) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (alert) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4c5b5fd4014 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (alert) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (confirm) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (confirm) (fluent-next.blue.light).png new file mode 100644 index 000000000000..46136fcbc769 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (confirm) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (custom) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (custom) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7504a3a21ea5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Dialog appearance (custom) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..a7634a07dad3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..dcdb9d816fe0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..fcd389e7a1be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..eaa839149fb7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popover_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu after items rebinding (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu after items rebinding (fluent-next.blue.light).png new file mode 100644 index 000000000000..504c4b234e70 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu after items rebinding (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu before items rebinding (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu before items rebinding (fluent-next.blue.light).png new file mode 100644 index 000000000000..dbe05a0ab25d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup toolbars with wide elements and overflow menu before items rebinding (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..f39284a346c9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab4b9dd09e72 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_bottom_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f9cd1984ffa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..83bd8488b55f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Popup_top_toolbar_menu,rtlEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toasts (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toasts (fluent-next.blue.light).png new file mode 100644 index 000000000000..babfc2151c88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toasts (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was hidden without items on init (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was hidden without items on init (fluent-next.blue.light).png new file mode 100644 index 000000000000..504c4b234e70 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was hidden without items on init (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was visible with items on init (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was visible with items on init (fluent-next.blue.light).png new file mode 100644 index 000000000000..504c4b234e70 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar after items rebinding if it was visible with items on init (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was hidden without items on init (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was hidden without items on init (fluent-next.blue.light).png new file mode 100644 index 000000000000..dbe05a0ab25d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was hidden without items on init (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was visible with items on init (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was visible with items on init (fluent-next.blue.light).png new file mode 100644 index 000000000000..dbe05a0ab25d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/overlays/etalons/Toolbar before items rebinding if it was visible with items on init (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup horizontal validation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup horizontal validation (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bef5c4fdbe6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup horizontal validation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup in scaled container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup in scaled container (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d41efb9f35d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/radioGroup/etalons/RadioGroup in scaled container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox Customize DropDown Button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox Customize DropDown Button (fluent-next.blue.light).png new file mode 100644 index 000000000000..34f8b7d5d3b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox Customize DropDown Button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox no data (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox no data (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea4910a8cc34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox no data (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize equal datasource items count (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize equal datasource items count (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebe6577a8dae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize equal datasource items count (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize less datasource items count (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize less datasource items count (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebe6577a8dae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize less datasource items count (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize more datasource items count (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize more datasource items count (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebe6577a8dae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox pagesize more datasource items count (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox placeholder after items change if value is not choosen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox placeholder after items change if value is not choosen (fluent-next.blue.light).png new file mode 100644 index 000000000000..464d8e77cb9c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox placeholder after items change if value is not choosen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox popup height after last page load (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox popup height after last page load (fluent-next.blue.light).png new file mode 100644 index 000000000000..f55736ca45d3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox popup height after last page load (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..eecd46054108 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..39a5f07e56a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..f545802bc811 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..924470d517aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..97588d499827 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..53eec09f4a20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..6569a5b1d0df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..86efaf9f0dc0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..f82bc2cf20b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/selectBox/etalons/SelectBox with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/slider/etalons/slider-appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/slider/etalons/slider-appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..395244f878f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/slider/etalons/slider-appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..52ac6f6782e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=floating (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=floating (fluent-next.blue.light).png new file mode 100644 index 000000000000..27b9a201bbdf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=floating (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0a94739e0c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..349a6d5ff154 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=static (fluent-next.blue.light).png new file mode 100644 index 000000000000..27b9a201bbdf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=filled,labelMode=static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..c57b150def29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=floating (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=floating (fluent-next.blue.light).png new file mode 100644 index 000000000000..8dcf513e0334 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=floating (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..0aabe4353f47 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..c4445af4b7f3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=static (fluent-next.blue.light).png new file mode 100644 index 000000000000..8dcf513e0334 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=outlined,labelMode=static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..b64e4b28bf67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=floating (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=floating (fluent-next.blue.light).png new file mode 100644 index 000000000000..fedc3da7143c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=floating (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca7398ec314d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..caecb02a631b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=static (fluent-next.blue.light).png new file mode 100644 index 000000000000..fedc3da7143c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox label with stylingMode=underlined,labelMode=static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox placeholder if value is not choosen (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox placeholder if value is not choosen (fluent-next.blue.light).png new file mode 100644 index 000000000000..8884fd208b6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox placeholder if value is not choosen (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox with selection controls (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox with selection controls (fluent-next.blue.light).png new file mode 100644 index 000000000000..70be58d09a36 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/tagBox/etalons/TagBox with selection controls (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=5em & maxHeight=7em (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=5em & maxHeight=7em (fluent-next.blue.light).png new file mode 100644 index 000000000000..0b24dfc3bf3c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=5em & maxHeight=7em (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=7em & maxHeight=5em (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=7em & maxHeight=5em (fluent-next.blue.light).png new file mode 100644 index 000000000000..edf07a8b19aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, height=7em & maxHeight=5em (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight is not defined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight is not defined (fluent-next.blue.light).png new file mode 100644 index 000000000000..f29f8d4660bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight is not defined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em (fluent-next.blue.light).png new file mode 100644 index 000000000000..836d0432dad7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em, font-size=12px (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em, font-size=12px (fluent-next.blue.light).png new file mode 100644 index 000000000000..836d0432dad7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=5em, font-size=12px (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=80px (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=80px (fluent-next.blue.light).png new file mode 100644 index 000000000000..de2fc0a8b824 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea appearance, maxHeight=80px (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea label after scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea label after scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca7c0a68d767 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea label after scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b1eb672b740 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f67eb9e6339 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3cde6d91978 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=floating-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..4be9ae7fda31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..247b9930c3b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..975dc30080c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=outside-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png new file mode 100644 index 000000000000..17833a761678 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=filled (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b90aa1dcd0c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..2fd6a27edd77 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textArea/etalons/TextArea with label-labelMode=static-stylingMode=underlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render (fluent-next.blue.light).png new file mode 100644 index 000000000000..622b8c8e0f1b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render with limited width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render with limited width (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c5c9f6d5def Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox render with limited width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox states (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox states (fluent-next.blue.light).png new file mode 100644 index 000000000000..27cc56303781 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox states (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox validation message (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox validation message (fluent-next.blue.light).png new file mode 100644 index 000000000000..e29dd2dbdc7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox validation message (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox with buttons container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox with buttons container (fluent-next.blue.light).png new file mode 100644 index 000000000000..7045bc5db073 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/editors/textBox/etalons/Textbox with buttons container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/editors/textBox/label.ts b/e2e/testcafe-devextreme/tests/editors/textBox/label.ts index d7d5a18d95a4..213bd8dade01 100644 --- a/e2e/testcafe-devextreme/tests/editors/textBox/label.ts +++ b/e2e/testcafe-devextreme/tests/editors/textBox/label.ts @@ -50,9 +50,24 @@ const createTextBox = async (options?: Properties, state?: string): Promise { test(`Label max-width should be changed after container width was changed, labelMode is ${labelMode}`, async (t) => { const textBox = new TextBox('#container'); @@ -97,11 +112,8 @@ test('Textbox render', async (t) => { .expect(compareResults.isValid()) .ok(compareResults.errorMessages()); }).before(async () => { - // eslint-disable-next-line no-restricted-syntax for (const stylingMode of stylingModes) { - // eslint-disable-next-line no-restricted-syntax for (const labelMode of visibleLabelModes) { - // eslint-disable-next-line no-restricted-syntax for (const placeholder of ['Placeholder', '']) { await createTextBox({ text: undefined, @@ -114,7 +126,7 @@ test('Textbox render', async (t) => { await createTextBox({ text: 'Text value' }); await createTextBox({ rtlEnabled: true }); } - // eslint-disable-next-line no-restricted-syntax + for (const placeholder of ['Placeholder', '']) { await createTextBox({ text: undefined, @@ -146,9 +158,8 @@ test('Textbox states', async (t) => { INVALID_STATE_CLASS, `${INVALID_STATE_CLASS} ${FOCUSED_STATE_CLASS}`, ]; - // eslint-disable-next-line no-restricted-syntax + for (const state of states) { - // eslint-disable-next-line no-restricted-syntax for (const placeholder of ['Placeholder', '']) { await createTextBox({ text: undefined, @@ -176,9 +187,7 @@ test('Textbox with buttons container', async (t) => { await insertStylesheetRulesToPage('#container .dx-widget { font-family: sans-serif }'); } - // eslint-disable-next-line no-restricted-syntax for (const stylingMode of stylingModes) { - // eslint-disable-next-line no-restricted-syntax for (const buttons of buttonsList) { await createTextBox({ stylingMode, buttons, showClearButton: true }); await createTextBox({ diff --git a/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion items render (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion items render (fluent-next.blue.light).png new file mode 100644 index 000000000000..f61989d4c67a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion items render (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion with icon-only button (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion with icon-only button (fluent-next.blue.light).png new file mode 100644 index 000000000000..a01747d689e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/accordion/etalons/Accordion with icon-only button (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button in rtl modes (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button in rtl modes (fluent-next.blue.light).png new file mode 100644 index 000000000000..a929989befc5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button in rtl modes (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button with svg icon as background (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button with svg icon as background (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff7f833a6ebc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Button with svg icon as background (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent-next.blue.light).png new file mode 100644 index 000000000000..0651072f4cb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent.blue.light).png index 05514b236504..811d2c1fb1f3 100644 Binary files a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent.blue.light).png and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=contained (fluent.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent-next.blue.light).png new file mode 100644 index 000000000000..bec004f6ec22 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent.blue.light).png index ee8a856786e3..35341d2ab1aa 100644 Binary files a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent.blue.light).png and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=outlined (fluent.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f4b06e3013c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent.blue.light).png index c3a17de4716d..3c0f34a6c5de 100644 Binary files a/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent.blue.light).png and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/Buttons, stylingMode=text (fluent.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='' (fluent-next.blue.light).png new file mode 100644 index 000000000000..601c1dba6e8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='home' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='home' (fluent-next.blue.light).png new file mode 100644 index 000000000000..2e3245aeaaf0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='',icon='home' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='' (fluent-next.blue.light).png new file mode 100644 index 000000000000..17b3b180260e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='home' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='home' (fluent-next.blue.light).png new file mode 100644 index 000000000000..eea611272981 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB is opened with two speed dial actions,label='Add Row',icon='home' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, after scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, after scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d2fc5d3a47c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, after scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, before scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, before scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c7b7d8f5907 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is #grid, before scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, after scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, after scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..7715b66d085d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, after scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, before scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, before scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..60d144087db0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with grid, position.of is undefined, before scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='' (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb0d09aee9a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='home' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='home' (fluent-next.blue.light).png new file mode 100644 index 000000000000..32b586075af5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='',icon='home' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='' (fluent-next.blue.light).png new file mode 100644 index 000000000000..53cc09753d03 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='home' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='home' (fluent-next.blue.light).png new file mode 100644 index 000000000000..c7126c9aa8f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with one speed dial action button,label='Add Row',icon='home' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with two speed dial action buttons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with two speed dial action buttons (fluent-next.blue.light).png new file mode 100644 index 000000000000..3573ec942a0f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/button/etalons/FAB with two speed dial action buttons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/buttonGroup/etalons/ButtonGroup styling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/buttonGroup/etalons/ButtonGroup styling (fluent-next.blue.light).png new file mode 100644 index 000000000000..1f529156fc41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/buttonGroup/etalons/ButtonGroup styling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu items render (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu items render (fluent-next.blue.light).png new file mode 100644 index 000000000000..e30addea36c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu items render (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..f1e298e73a0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu selected focused item (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu selected focused item (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf8d086a9551 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/contextMenu/etalons/ContextMenu selected focused item (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer hidden (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer hidden (fluent-next.blue.light).png new file mode 100644 index 000000000000..226d2ba403ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer hidden (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_container (fluent-next.blue.light).png new file mode 100644 index 000000000000..89f7a0b77703 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..e97805f0685c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu inside drawer, shading=true_popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_container (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a2f66bdbf2d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..c904e87fd6cb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, Menu outside drawer, shading=true_popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_container (fluent-next.blue.light).png new file mode 100644 index 000000000000..d281f1170f29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..7fb3ee0480c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox inside drawer, shading=true_popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_container (fluent-next.blue.light).png new file mode 100644 index 000000000000..7325732887e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_popup (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_popup (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d899efe518d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer z-index, SelectBox outside drawer, shading=true_popup (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=overlap, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=overlap, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..491084388d11 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=overlap, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=push, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=push, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..659647bd252d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=push, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=shrink, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=shrink, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..713cfa0bad2b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, openedStateMode=shrink, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=bottom, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=bottom, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..c24f92491869 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=bottom, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=left, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=left, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..713cfa0bad2b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=left, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=right, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=right, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a54586b2a4b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=right, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=top, shading=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=top, shading=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e16ce3131c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/drawer/etalons/Drawer, position=top, shading=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d31b3bbc4a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d516d44cc1d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=false,alignInGrp=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d31b3bbc4a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ce186397400 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Align items,lblMode=outside,alignInAllGrp=true,alignInGrp=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form color of the mark (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form color of the mark (fluent-next.blue.light).png new file mode 100644 index 000000000000..013660a6e63d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form color of the mark (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=lg (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=lg (fluent-next.blue.light).png new file mode 100644 index 000000000000..341d6dc20c16 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=lg (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=md (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=md (fluent-next.blue.light).png new file mode 100644 index 000000000000..341d6dc20c16 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=md (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=xs (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=xs (fluent-next.blue.light).png new file mode 100644 index 000000000000..a68ced029595 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form item padding with screenByWidth=xs (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form labels width after render in invisible container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form labels width after render in invisible container (fluent-next.blue.light).png new file mode 100644 index 000000000000..48748040a062 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form labels width after render in invisible container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..26b8025fb167 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..d7981afbbbda Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0e663cd293f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form with labelLocation=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..506f4e208838 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..e48851387c19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..c864a603fad6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=floating,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..79d9fc45b56a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..7240905fb04b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..2120da44b55b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=hidden,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..79d9fc45b56a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..7240905fb04b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..2120da44b55b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=outside,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..599f0f0a64dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bcd2b4c7ab8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..b99d6f0e91ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=false,lMode=static,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..60e6fe6180a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..d3b044f32b7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..d094f473b94c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=floating,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..abec2302904b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..118a30565f29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2dd271d9d58 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=hidden,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..abec2302904b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..118a30565f29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2dd271d9d58 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=outside,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff2ddf970fb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..d593d3fecd1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba3a57a62b03 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Form,rtl=true,lMode=static,lLoc=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Group caption template (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Group caption template (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c3cf0a7bff4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Group caption template (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/Item label position properties, labelMode=outside (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Item label position properties, labelMode=outside (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a26112230de Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/Item label position properties, labelMode=outside (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_1,item2_cSpan_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_1,item2_cSpan_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..de29b6244ef2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_1,item2_cSpan_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e05700243719 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f53300ced5a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d9681285509a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/SimpleItem,item1_cSpan_2,item2_cSpan_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/TabbedItem (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/TabbedItem (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffe25557377b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/TabbedItem (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..81f0b82f76df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7b3d18bff994 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d88d71de870b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_4 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_4 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0fbc08afb7c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_4 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_5 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_5 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a324e72d804 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_5 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_6 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_6 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1d7d8b75eba6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_false,itemsCount_6 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a2b4ce6d596 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..21e8409e4c4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4fbbd1fef6e6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_4 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_4 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0108cb3d2210 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_4 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_5 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_5 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b126baa5970 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_5 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_6 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_6 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba3da51d5ac3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/colCount,rtl_true,itemsCount_6 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/form/etalons/form_validation_errors_after_resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/form/etalons/form_validation_errors_after_resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8f3361aebf8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/form/etalons/form_validation_errors_after_resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab31ff8d5beb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..6aec1b72cd9b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Focused gallery. showIndicator=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2a5739d6644 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..6aec1b72cd9b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/gallery/etalons/Gallery. showIndicator=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance with template (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance with template (fluent-next.blue.light).png new file mode 100644 index 000000000000..378cb6481091 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance with template (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, header focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, header focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..93a06185e641 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, header focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, item focused, header hovered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, item focused, header hovered (fluent-next.blue.light).png new file mode 100644 index 000000000000..50b5a34faae9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance, item focused, header hovered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance,collapsibleGroups=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance,collapsibleGroups=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..eb61ff7ddf91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/Grouped list appearance,collapsibleGroups=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List delete button when item is focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List delete button when item is focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..d33bac136a02 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List delete button when item is focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List icon in button when item is focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List icon in button when item is focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..60678349db51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List icon in button when item is focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with first items invisible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with first items invisible (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4b3cfc7e40f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with first items invisible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with last items invisible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with last items invisible (fluent-next.blue.light).png new file mode 100644 index 000000000000..10a2e32fc7ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with last items invisible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with middle items invisible (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with middle items invisible (fluent-next.blue.light).png new file mode 100644 index 000000000000..75e763d4a2cc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with middle items invisible (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with part items invisible on loaded page (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with part items invisible on loaded page (fluent-next.blue.light).png new file mode 100644 index 000000000000..9d4071766c6d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List loading with part items invisible on loaded page (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/list/etalons/List with search (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List with search (fluent-next.blue.light).png new file mode 100644 index 000000000000..934ef4069f8d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/list/etalons/List with search (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..cce541b83c93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..d28534cd01fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom collision, orientation=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8b4096cec0c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a2e30079c4c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter bottom right collision, orientation=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..31e969b05818 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7444718eca3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter right collision, orientation=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, menu as toolbar item (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, menu as toolbar item (fluent-next.blue.light).png new file mode 100644 index 000000000000..05fce336ddeb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, menu as toolbar item (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..877a8e6e6e33 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal, wide submenu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal, wide submenu (fluent-next.blue.light).png new file mode 100644 index 000000000000..829b0de68374 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=horizontal, wide submenu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..8e967468eae6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu delimiter, orientation=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fdba5f2a380 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4db0572ed34d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link and icon focused, adaptivityEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..1c28a926d78b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5b945f44f1fa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu item with link focused, adaptivityEnabled=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu render items (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu render items (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c74608e6043 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu render items (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cb9080c12ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu selected focused item (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu selected focused item (fluent-next.blue.light).png new file mode 100644 index 000000000000..41b3bb03b2d3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/menu/etalons/Menu selected focused item (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..d510bd77ec18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..d510bd77ec18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Grid with scrollable wrapped in td,useNative=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..e78bc3e6451e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..e78bc3e6451e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b3488425466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b3488425466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..babc5ba91e09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..974342016900 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..129ae1fcd600 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..974342016900 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position after show, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..e78bc3e6451e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..e78bc3e6451e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b3488425466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b3488425466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=false,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..babc5ba91e09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3a746b5a9ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=false,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..129ae1fcd600 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a69970ad5a3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/Scroll position before hide, useNative=true,rtl=true,useSimScrollbar=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement with scaling scale(1.5),direction=both (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement with scaling scale(1.5),direction=both (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8ae11cc4577 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement with scaling scale(1.5),direction=both (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element less container direction=both (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element less container direction=both (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bc59b2569ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element less container direction=both (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element more container direction=both (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element more container direction=both (fluent-next.blue.light).png new file mode 100644 index 000000000000..9c9b34ce6b49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/scrollable/etalons/ScrollToElement, element more container direction=both (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac1c35fb639a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='vertical' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='vertical' (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8d2a97936d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Nested Splitter appearance, orientation='vertical' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in active state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in active state (fluent-next.blue.light).png new file mode 100644 index 000000000000..76f249bc51bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in active state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in focused state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in focused state (fluent-next.blue.light).png new file mode 100644 index 000000000000..76f249bc51bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in focused state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in hover state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in hover state (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad3662b65ee2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in hover state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in inactive state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in inactive state (fluent-next.blue.light).png new file mode 100644 index 000000000000..79d76c3d5b41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in inactive state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in normal state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in normal state (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad3662b65ee2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter apearance - handle in normal state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad3662b65ee2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='horizontal' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='vertical' (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='vertical' (fluent-next.blue.light).png new file mode 100644 index 000000000000..30093041ddc5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter appearance, orientation='vertical' (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content after window resize, pane_1.size=`100px` (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content after window resize, pane_1.size=`100px` (fluent-next.blue.light).png new file mode 100644 index 000000000000..c959b5db1bfe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content after window resize, pane_1.size=`100px` (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content, pane_1.size=`100px` (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content, pane_1.size=`100px` (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f9bb18d2559 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/splitter/etalons/Splitter in tab content, pane_1.size=`100px` (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed invalid step focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed invalid step focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..e6ebc5e8a6e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed invalid step focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed step focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed step focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..f75d818d0f24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed step focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed valid step focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed valid step focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..b6d0b769ab88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Completed valid step focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e86efff884f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e86efff884f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper 1st step selected,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..024c1b34cdd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b7ac2f0a095 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled invalid step focused,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..62da2c1e16a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..a90907beaeb2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled step focused,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..1864856ae55f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..2596a6caf90b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper disabled valid step focused,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..22106136fc1d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step selected,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step selected,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..914cda805f3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper invalid step selected,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf7cae11b9f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step selected,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step selected,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a1d7533f68c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper last step selected,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..99576201c2f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..5f57e6f86ced Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper orient=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..d8a80a2d080c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..783ae252b139 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper text overflow orient=vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step focused,selectOnFocus=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step focused,selectOnFocus=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac7dddf93eb8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step focused,selectOnFocus=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step selected,selectOnFocus=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step selected,selectOnFocus=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..79800a1d8d64 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/stepper/etalons/Stepper valid step selected,selectOnFocus=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..c500be1cae66 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7256fe2801b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9a7ee8d217c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..f95721315906 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/Nested TabPanel borders appearance,tabsPos=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders with scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders with scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..e6ffd9f8bf8b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders with scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders without scrolling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders without scrolling (fluent-next.blue.light).png new file mode 100644 index 000000000000..b74f7a152581 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel borders without scrolling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel focus borders (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel focus borders (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb6f701c6a8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel focus borders (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel item focus when clicking on multiview (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel item focus when clicking on multiview (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b8f1429de82 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel item focus when clicking on multiview (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel left navigation button hovered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel left navigation button hovered (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1f251c4cf91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel left navigation button hovered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel right navigation button hovered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel right navigation button hovered (fluent-next.blue.light).png new file mode 100644 index 000000000000..da155ab9cf2a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel right navigation button hovered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel tabs min-width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel tabs min-width (fluent-next.blue.light).png new file mode 100644 index 000000000000..626db07be19c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel tabs min-width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabs wrapper width is limited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabs wrapper width is limited (fluent-next.blue.light).png new file mode 100644 index 000000000000..35deb015582e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabs wrapper width is limited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabsPosition is left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabsPosition is left (fluent-next.blue.light).png new file mode 100644 index 000000000000..86397d49ab4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel text-overflow when tabsPosition is left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c2ec2878a64 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2b071475ee2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel with single tab, tabPosition=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5ea8f4f6218 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=left (fluent-next.blue.light).png new file mode 100644 index 000000000000..dac71823b8e5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=right (fluent-next.blue.light).png new file mode 100644 index 000000000000..e76a40518a5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=top (fluent-next.blue.light).png new file mode 100644 index 000000000000..cc38f6bc1b54 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabPanel/etalons/TabPanel without focus,tabsPosition=top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs background color (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs background color (fluent-next.blue.light).png new file mode 100644 index 000000000000..705b87b9b48b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs background color (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs disabled item focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs disabled item focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..6be178a96662 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs disabled item focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5148de5fe9cd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..36b86d507d0d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs icon position,rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item active (fluent-next.blue.light).png new file mode 100644 index 000000000000..2d83bfb75f44 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..d85150bc6ffe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item hovered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item hovered (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2a3c7cd8e7a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item hovered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=primary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=primary (fluent-next.blue.light).png new file mode 100644 index 000000000000..b0fe3fd0464e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=primary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=secondary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=secondary (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a530a837991 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=horizontal, stylingMode=secondary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=primary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=primary (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa17ee7f2454 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=primary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=secondary (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=secondary (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9db3cce3eec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs item selected, orientation=vertical, stylingMode=secondary (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item active (fluent-next.blue.light).png new file mode 100644 index 000000000000..5585a6123ee4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item hovered (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item hovered (fluent-next.blue.light).png new file mode 100644 index 000000000000..11da06e2b5a7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs selected item hovered (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs text-overflow (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs text-overflow (fluent-next.blue.light).png new file mode 100644 index 000000000000..f69c49654b10 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs text-overflow (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs with width auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs with width auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..db55b4772504 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs with width auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs without focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs without focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c7bc2f71572 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/tabs/etalons/Tabs without focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL focus border visible after keyboard navigation (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL focus border visible after keyboard navigation (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b4fe850b725 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL focus border visible after keyboard navigation (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL no focus border after mouse click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL no focus border after mouse click (fluent-next.blue.light).png new file mode 100644 index 000000000000..94287597411d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar RTL no focus border after mouse click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd4363c310a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu active (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8edf5e0f0ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9d1442e3389 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu hover (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu hover (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9d1442e3389 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup as custom template in menu hover (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..f642c6bfd3d7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu active (fluent-next.blue.light).png new file mode 100644 index 000000000000..0120453f7393 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f7dd1e7e536 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu hover (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu hover (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f7dd1e7e536 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttonGroup in menu hover (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..f4a58a44018c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu active (fluent-next.blue.light).png new file mode 100644 index 000000000000..2bd3e51f267c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..53eb198ae0aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu hover (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu hover (fluent-next.blue.light).png new file mode 100644 index 000000000000..53eb198ae0aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons as custom template in menu hover (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..1874b0ea43c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu active (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu active (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5468213fa70 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu active (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu focused (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu focused (fluent-next.blue.light).png new file mode 100644 index 000000000000..a798d8f7e1ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu focused (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu hover (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu hover (fluent-next.blue.light).png new file mode 100644 index 000000000000..a798d8f7e1ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar buttons in menu hover (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar focus border on item after Arrow-Home-End navigation with disabled items (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar focus border on item after Arrow-Home-End navigation with disabled items (fluent-next.blue.light).png new file mode 100644 index 000000000000..4ac39bc78248 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar focus border on item after Arrow-Home-End navigation with disabled items (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..728abd3530b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f2e331f00f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup above container rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup after window resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup after window resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..d2bae5977480 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup after window resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup before window resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup before window resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..d9612a74216d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup before window resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup collision with window border (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup collision with window border (fluent-next.blue.light).png new file mode 100644 index 000000000000..2206aa2a4f09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup collision with window border (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..d9612a74216d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..bcfb05902298 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar menu popup under container rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..7da83f448d58 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e6423ec66b0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar nested widgets render in multiline rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=always (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=always (fluent-next.blue.light).png new file mode 100644 index 000000000000..1d1da184186d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=always (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=never (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=never (fluent-next.blue.light).png new file mode 100644 index 000000000000..c574409d79ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render rtl=true,items[]locateInMenu=never (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=always (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=always (fluent-next.blue.light).png new file mode 100644 index 000000000000..9d986794845e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=always (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=never (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=never (fluent-next.blue.light).png new file mode 100644 index 000000000000..de0cabff4fac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/toolbar/etalons/Toolbar widgets render,items[]locateInMenu=never (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView scrollable has correct height (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView scrollable has correct height (fluent-next.blue.light).png new file mode 100644 index 000000000000..59e69c48780a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView scrollable has correct height (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..18ea17ca0d16 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..281a27859bd6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=none,rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..685e21295e67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..201ce86a7a37 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=normal,rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9feed12f4f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..dcf802f12811 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/TreeView selection showCheckBoxesMode=selectAll,rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview checked CheckBox focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview checked CheckBox focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..71ab6c0fdff4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview checked CheckBox focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview indeterminate CheckBox focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview indeterminate CheckBox focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..72addc3aad45 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview indeterminate CheckBox focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview unchecked CheckBox focus (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview unchecked CheckBox focus (fluent-next.blue.light).png new file mode 100644 index 000000000000..66de688ced24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview unchecked CheckBox focus (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=none (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=none (fluent-next.blue.light).png new file mode 100644 index 000000000000..01ac90adb37f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=none (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=normal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=normal (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f3138cc03c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/navigation/treeView/etalons/Treeview with custom icons showCheckBoxesMode=normal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/a11y/etalons/month_day_number_contrast (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/a11y/etalons/month_day_number_contrast (fluent-next.blue.light).png new file mode 100644 index 000000000000..d893f57d4477 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/a11y/etalons/month_day_number_contrast (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..ddd6e6ed87a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..82fe3c52444e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-groups-adaptive-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..105588ff9bc1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-hover (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-hover (fluent-next.blue.light).png new file mode 100644 index 000000000000..b16ef502cb57 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-appointment-state-hover (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..04623dfea7d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..826a56dd30d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-groups-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..41d774cb81e3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..9477b3e0b932 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=false-resources=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..91df685b104b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..368edd156f8f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-layout-rtl=true-resources=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..1a1b6b50ebbf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec3f5065c7ba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/agenda-without-groups-adaptive-rtl=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/switch-to-agenda-without-appointments (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/switch-to-agenda-without-appointments (fluent-next.blue.light).png new file mode 100644 index 000000000000..303d67692919 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/agenda/etalons/switch-to-agenda-without-appointments (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/api/deleteRecurrence.ts b/e2e/testcafe-devextreme/tests/scheduler/common/api/deleteRecurrence.ts index 5f2de565c7db..947cf73aeb17 100644 --- a/e2e/testcafe-devextreme/tests/scheduler/common/api/deleteRecurrence.ts +++ b/e2e/testcafe-devextreme/tests/scheduler/common/api/deleteRecurrence.ts @@ -1,6 +1,7 @@ import Scheduler from 'devextreme-testcafe-models/scheduler'; import url from '../../../../helpers/getPageUrl'; import { createWidget } from '../../../../helpers/createWidget'; +import { getThemeName } from '../../../../helpers/themeUtils'; fixture.disablePageReloads`Scheduler API - deleteRecurrence` .page(url(__dirname, '../../../container.html')); @@ -63,19 +64,21 @@ test('should exclude from recurrence if mode is "occurrence"', async (t) => { .expect(scheduler.getAppointmentCount()) .eql(2); + const isFluentNext = getThemeName() === 'fluent-next'; + const rect0 = await appointment0.element.boundingClientRect; await t .expect(rect0.left) - .within(318, 319) + .within(isFluentNext ? 317 : 318, isFluentNext ? 318 : 319) .expect(rect0.top) - .within(140, 141); + .within(isFluentNext ? 142 : 140, isFluentNext ? 143 : 141); const rect1 = await appointment1.element.boundingClientRect; await t .expect(rect1.left) .within(562, 563) .expect(rect1.top) - .within(140, 141); + .within(isFluentNext ? 142 : 140, isFluentNext ? 143 : 141); }).before(async () => createWidget( 'dxScheduler', { diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7e11ac807319 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a5098a6eac1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=false,allDay=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6bb9cf4ab85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9c14677fd403 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form (recurring=true,allDay=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__icons-mode-none (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__icons-mode-none (fluent-next.blue.light).png new file mode 100644 index 000000000000..60ced385ab60 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__icons-mode-none (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__mobile (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__mobile (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd0203f6f2ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__mobile (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__readonly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__readonly (fluent-next.blue.light).png new file mode 100644 index 000000000000..504849a85ab5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__readonly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__resource-with-multiple-selection (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__resource-with-multiple-selection (fluent-next.blue.light).png new file mode 100644 index 000000000000..81ea4e62a8c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__resource-with-multiple-selection (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__startDate-calendar-opened (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__startDate-calendar-opened (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae341a81d159 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__startDate-calendar-opened (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-labelMode-static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-labelMode-static (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ee396e1b10c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-labelMode-static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..94118bad2678 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c8d3e27c600 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=false,allDay=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5003b76704a8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1514b8a9ad58 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-and-timezones (recurring=true,allDay=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-with-icons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-with-icons (fluent-next.blue.light).png new file mode 100644 index 000000000000..419ceb3c6c1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__main-form__with-resources-with-icons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light).png new file mode 100644 index 000000000000..5981b7e59b20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..35ea1968a61c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__daily (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light).png new file mode 100644 index 000000000000..5186aad333a7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..35ea1968a61c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__hourly (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light).png new file mode 100644 index 000000000000..11f64472faff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..02ad54490416 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__mobile (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light).png new file mode 100644 index 000000000000..8655b3b3b2bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..8b94200caf06 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__monthly (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad4ece5564c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..bf1f8ff5c902 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__readonly (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f87dbfb95c9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..bf1f8ff5c902 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__weekly (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light).png new file mode 100644 index 000000000000..82bc3109175a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..a05e78aa6f4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-icons (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb0a2b51ae46 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..444949756a45 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__with-labelMode-static (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light).png new file mode 100644 index 000000000000..f7cf14e06ccd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light)_mask.png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light)_mask.png new file mode 100644 index 000000000000..689c643dcbe8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-form__yearly (fluent-next.blue.light)_mask.png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-settings-button__focus-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-settings-button__focus-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e95fdb313bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentForm/etalons/scheduler__appointment__recurrence-settings-button__focus-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentOverlapping/basic.ts b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentOverlapping/basic.ts index 16cf33d07b93..d18ae9db14a9 100644 --- a/e2e/testcafe-devextreme/tests/scheduler/common/appointmentOverlapping/basic.ts +++ b/e2e/testcafe-devextreme/tests/scheduler/common/appointmentOverlapping/basic.ts @@ -2,6 +2,7 @@ import Scheduler from 'devextreme-testcafe-models/scheduler'; import url from '../../../../helpers/getPageUrl'; import { createWidget } from '../../../../helpers/createWidget'; import { Themes } from '../../../../helpers/themes'; +import { getThemeName } from '../../../../helpers/themeUtils'; fixture.disablePageReloads`Appointment overlapping in Scheduler` .page(url(__dirname, '../../../container.html')); @@ -93,7 +94,8 @@ test('Simple appointment should not overlap allDay appointment when specific wid await t .expect(scheduler.collectors.count).eql(1) - .expect(await element.getBoundingClientRectProperty('top')).eql(138.828125); + .expect(await element.getBoundingClientRectProperty('top')) + .eql(getThemeName() === 'fluent-next' ? 140.828125 : 138.828125); }).before(async () => createWidget('dxScheduler', { ...SCHEDULER_DEFAULT_OPTIONS, dataSource: ALL_DAY_DATA, diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/allDay-unsorted-datasource (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/allDay-unsorted-datasource (fluent-next.blue.light).png new file mode 100644 index 000000000000..a351c533ceda Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/allDay-unsorted-datasource (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_first (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_first (fluent-next.blue.light).png new file mode 100644 index 000000000000..4431dea6f1b0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_first (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_second (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_second (fluent-next.blue.light).png new file mode 100644 index 000000000000..8adca189001a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineDay_second (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_first (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_first (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bfb841709dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_first (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_second (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_second (fluent-next.blue.light).png new file mode 100644 index 000000000000..f907b55a9cfd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight-next-month_all-day-appt_view=timelineMonth_second (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0fde6901ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0fde6901ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=6_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0fde6901ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..f0fde6901ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=month_start=undefined_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8edfdee1d870 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..b6497560abb5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=6_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e64c3d4e9317 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe47bd21e913 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineDay_start=undefined_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5abf249d4d51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..5abf249d4d51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=6_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5abf249d4d51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..5abf249d4d51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=timelineMonth_start=undefined_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..209b892e49bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..d753ba7fe3cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=6_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..170c5003582d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=undefined (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=undefined (fluent-next.blue.light).png new file mode 100644 index 000000000000..05c424e23e05 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/midnight_all-day-appt_view=week_start=undefined_end=undefined (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/timeline-work-week_all-day_appointments_skip_weekend (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/timeline-work-week_all-day_appointments_skip_weekend (fluent-next.blue.light).png new file mode 100644 index 000000000000..0452d266a4ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/timeline-work-week_all-day_appointments_skip_weekend (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/workweek_all-day_appointments_skip_weekend (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/workweek_all-day_appointments_skip_weekend (fluent-next.blue.light).png new file mode 100644 index 000000000000..d9f09fad9564 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/allDay/etalons/workweek_all-day_appointments_skip_weekend (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-month (fluent-next.blue.light).png new file mode 100644 index 000000000000..53d9b20b235e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..53d9b20b235e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_appts_view-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_long-appts-without-all-day-panel_view-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_long-appts-without-all-day-panel_view-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..e21a4bcc40a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/adaptive_long-appts-without-all-day-panel_view-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_month (fluent-next.blue.light).png new file mode 100644 index 000000000000..d3ce3a58434b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..e608a38696a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_week (fluent-next.blue.light).png new file mode 100644 index 000000000000..c584d7c07c48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/multiday-appointment_week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timeline-overlapping-appointments (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timeline-overlapping-appointments (fluent-next.blue.light).png new file mode 100644 index 000000000000..00c1d1234584 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timeline-overlapping-appointments (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timelineMonth-appt-order (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timelineMonth-appt-order (fluent-next.blue.light).png new file mode 100644 index 000000000000..10a56c66fe9d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/etalons/timelineMonth-appt-order (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b0cdb9762053 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4bd0111a9ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0760c773919c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..b0cdb9762053 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png new file mode 100644 index 000000000000..3808df58d237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/all-day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d23fe87e474d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..330c8aec99d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..938761d8cb85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png new file mode 100644 index 000000000000..a29b1aa9bb93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/day-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8957d02cebdb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0dde3f80466b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0be0fd327693 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..0be0fd327693 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png new file mode 100644 index 000000000000..65e22ea135b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/month-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5bca20223604 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3359954d4bcf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=20 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=20 (fluent-next.blue.light).png new file mode 100644 index 000000000000..51d6e66826bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=20 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..812c0978e7ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..60d86c1c2e58 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png new file mode 100644 index 000000000000..86353e52a075 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/timeline-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1adcb1965f09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=10 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..26c9b6dac560 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png new file mode 100644 index 000000000000..1646e172d4ca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=auto (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png new file mode 100644 index 000000000000..5df5a10c0c72 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/maxAppointmentsPerCell/etalons/week-appointment-maxAppointmentsPerCell=unlimited (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/appointments/workWeek/etalons/work_week_interval-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/workWeek/etalons/work_week_interval-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eab9a82660be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/appointments/workWeek/etalons/work_week_interval-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/T1080232.ts b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/T1080232.ts index cfb8b4340c8a..fb40c5ed6e40 100644 --- a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/T1080232.ts +++ b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/T1080232.ts @@ -17,7 +17,7 @@ test('it should correctly drag external item to the appointment after drag appoi await t .dragToElement(appt01.element, cell01, { speed: 0.5 }) .expect((await appt01.element.boundingClientRect).top) - .eql(183) + .eql((await cell01.boundingClientRect).top + (await cell01.boundingClientRect).height) .dragToElement(dragItem, appt02.element, { speed: 0.5 }) .expect(appt02.element.find('.dx-item-content').getAttribute('data-status')) .eql('Added'); diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/basic.ts b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/basic.ts index 2eb3f38bc28a..8d3391c2b035 100644 --- a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/basic.ts +++ b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/basic.ts @@ -3,7 +3,7 @@ import Scheduler from 'devextreme-testcafe-models/scheduler'; import { dataSource } from './init/widget.data'; import createScheduler from './init/widget.setup'; import url from '../../../../helpers/getPageUrl'; -import { testScreenshot } from '../../../../helpers/themeUtils'; +import { testScreenshot, getThemeName } from '../../../../helpers/themeUtils'; fixture.disablePageReloads`Drag-and-drop appointments in the Scheduler basic views` .page(url(__dirname, '../../../container.html')); @@ -29,7 +29,8 @@ test('Drag-n-drop in the "month" view', async (t) => { await t .dragToElement(draggableAppointment.element, scheduler.getDateTableCell(0, 4)) - .expect(draggableAppointment.size.height).eql('23.8281px') + .expect(draggableAppointment.size.height) + .eql(getThemeName() === 'fluent-next' ? '23.75px' : '23.8281px') .expect(draggableAppointment.date.time) .eql('9:00 AM - 9:30 AM'); }).before(async () => createScheduler({ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-appointment-to-left-column (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-appointment-to-left-column (fluent-next.blue.light).png new file mode 100644 index 000000000000..d35547898dae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-appointment-to-left-column (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-previous-day-cell (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-previous-day-cell (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f0a7e32fca7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-previous-day-cell (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-left(T1017720) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-left(T1017720) (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe1019076361 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-left(T1017720) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-right(T1017720) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-right(T1017720) (fluent-next.blue.light).png new file mode 100644 index 000000000000..afa4fe1c140f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/etalons/drag-n-drop-to-right(T1017720) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 2'-from-tooltip-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 2'-from-tooltip-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..2f92e798286a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 2'-from-tooltip-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 3'-from-tooltip-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 3'-from-tooltip-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..d33158234384 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-'Appointment 3'-from-tooltip-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..aa1d8b582ff0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..d77d3f7fe3bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..1c040604ef03 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ca98965560e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-all-day-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-blue-group (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-blue-group (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a98b10d1132 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-blue-group (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ac5529f8fb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cde196a5856 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..67b796423595 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..9cde196a5856 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-long-appoint-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..f18126e76ba6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..f45f9155c760 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2ada021d7db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..22ea2f5192cb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-mouse-offset-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..e49c4270199b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..3bfa4dc9724b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..d78cc9f07588 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..3bfa4dc9724b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-small-appoint-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..38b28b998949 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..39f876db5c5c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineMonth-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..31ce6d01930e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea4b3f903086 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-timelineWeek-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..183ce1cf6f5d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom-in-shifted-container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom-in-shifted-container (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f417228493d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-bottom-in-shifted-container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..21273cb86e6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left-in-shifted-container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left-in-shifted-container (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2e56542f65b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-left-in-shifted-container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-orange-group (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-orange-group (fluent-next.blue.light).png new file mode 100644 index 000000000000..565eb5a696e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-orange-group (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..6fb12a1f6ec0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right-in-shifted-container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right-in-shifted-container (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c13f0617e09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-right-in-shifted-container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..223e85d26fa4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top-in-shifted-container (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top-in-shifted-container (fluent-next.blue.light).png new file mode 100644 index 000000000000..59d75bbaa54f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-to-top-in-shifted-container (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b0607db5d0b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..21273cb86e6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..21273cb86e6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-n-drop-within-cell-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-min-dist-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-min-dist-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..00f6ab30202a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-min-dist-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f0128b11d84 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right-on-next-cell (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right-on-next-cell (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c10699561b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/etalons/drag-short-app-to-right-on-next-cell (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..e35aacaf3d02 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..4473848b6644 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..7fa932162902 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-dxTabPanel-drag-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-bottom (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-bottom (fluent-next.blue.light).png new file mode 100644 index 000000000000..43321d1958ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-bottom (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-left (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-left (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a6c6eef735b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-left (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-right (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-right (fluent-next.blue.light).png new file mode 100644 index 000000000000..47592dc91843 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-right (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-top (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-top (fluent-next.blue.light).png new file mode 100644 index 000000000000..732a36703b78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/dragAndDrop/outlookDragging/schedulerInContainer/etalons/dxScheduler-placed-in-transform-container-drag-to-top (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/save-appointment-loading-panel-screenshot (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/save-appointment-loading-panel-screenshot (fluent-next.blue.light).png new file mode 100644 index 000000000000..b8a09fd67464 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/save-appointment-loading-panel-screenshot (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-after-hiding-and-resizing (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-after-hiding-and-resizing (fluent-next.blue.light).png new file mode 100644 index 000000000000..90182ab29ac2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-after-hiding-and-resizing (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-appointments-should-update-color (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-appointments-should-update-color (fluent-next.blue.light).png new file mode 100644 index 000000000000..0f8fce88fe9d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-appointments-should-update-color (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-active-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-active-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..42658bc9d1f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-active-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-hover-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-hover-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..b45964c5fdd3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scheduler-week-cell-hover-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scrollable-month-workspace (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scrollable-month-workspace (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec2a7f62cb2e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/etalons/scrollable-month-workspace (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-agenda-view-long-names (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-agenda-view-long-names (fluent-next.blue.light).png new file mode 100644 index 000000000000..aae888880858 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-agenda-view-long-names (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-group-by-date-long-names (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-group-by-date-long-names (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea0bf2a38ff5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-group-by-date-long-names (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-horizontal-grouping-long-names (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-horizontal-grouping-long-names (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4dee476f8a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-horizontal-grouping-long-names (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-vertical-grouping-long-names (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-vertical-grouping-long-names (fluent-next.blue.light).png new file mode 100644 index 000000000000..00466f714520 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-header-css-vertical-grouping-long-names (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4546891fe91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..77f14683ba01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-allDay-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4546891fe91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..77f14683ba01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-horizontal-hidden-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..126f51dbc764 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..58758907f653 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-allDay-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..126f51dbc764 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..58758907f653 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(month-vertical-hidden-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c8727a98ef1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..624e6ca29f3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-allDay-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c8727a98ef1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..624e6ca29f3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-horizontal-hidden-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bfab37ab55e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1ae781c3d968 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-allDay-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-0-24) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-0-24) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bfab37ab55e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-0-24) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-9-14) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-9-14) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1ae781c3d968 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/group-overflow-(week-vertical-hidden-9-14) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=agenda-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=agenda-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8df0be48d7f1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=agenda-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fb14b2a8d52 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal-rtl) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal-rtl) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b0bdd0bc3bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=horizontal-rtl) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..86891baa703b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical-rtl) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical-rtl) (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1d1ec6553d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=day-orientation=vertical-rtl) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5da1aeb185f1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b430aa727ea0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=month-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c179d5ae2764 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b411596c902c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1f0c6be5b942 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8e9585767711 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical-rtl) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical-rtl) (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7f79a6ab864 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=timelineWeek-orientation=vertical-rtl) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..54e4cc4b893d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e89f307b355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=week-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2614871939cb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0069aad04239 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/hierarchical-grouping(view=workWeek-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_fist-app-part_T1122185 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_fist-app-part_T1122185 (fluent-next.blue.light).png new file mode 100644 index 000000000000..27c59c7b6205 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_fist-app-part_T1122185 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_last-app-part_T1122185 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_last-app-part_T1122185 (fluent-next.blue.light).png new file mode 100644 index 000000000000..576d999207bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_last-app-part_T1122185 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_middle-app-part_T1122185 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_middle-app-part_T1122185 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca8747495a5d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/month-view_vertical-grouping_middle-app-part_T1122185 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/scrolling-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/scrolling-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..e9104bca8cfc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/grouping/etalons/scrolling-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__after (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__after (fluent-next.blue.light).png new file mode 100644 index 000000000000..655bb22ec3d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__after (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__before (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__before (fluent-next.blue.light).png new file mode 100644 index 000000000000..964861868474 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/T1306971__scheduler__horizontal-scrolling__before (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-next-button-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-next-button-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..a2054c02ffe8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-next-button-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-prev-button-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-prev-button-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..052cd55045ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/calendar-state-after-prev-button-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/initial-calendar-state (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/initial-calendar-state (fluent-next.blue.light).png new file mode 100644 index 000000000000..b37e5ab3f394 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/initial-calendar-state (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-next-button-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-next-button-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc8f70388b42 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-next-button-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-prev-button-click (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-prev-button-click (fluent-next.blue.light).png new file mode 100644 index 000000000000..51ac9867a775 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-calendar-prev-button-click (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-change-currentDate-option (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-change-currentDate-option (fluent-next.blue.light).png new file mode 100644 index 000000000000..a958031bcf9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/navigator-state-after-change-currentDate-option (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/right-calendar-appearance (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/right-calendar-appearance (fluent-next.blue.light).png new file mode 100644 index 000000000000..67a8de6eb68b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/right-calendar-appearance (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-custom toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-custom toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..28e513f46ace Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-custom toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-default toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-default toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..39e5f76fe794 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-default toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-disabled toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-disabled toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..cda60c48975b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-disabled toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-hidden-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-hidden-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..05258a36081c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-hidden-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-false-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-false-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..a9dbb3d53b1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-false-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-true-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-true-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..f2f6ddaa340a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-multiline-true-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar (fluent-next.blue.light).png new file mode 100644 index 000000000000..20356e31395f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar with today (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar with today (fluent-next.blue.light).png new file mode 100644 index 000000000000..b718673f93a2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar with today (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed (fluent-next.blue.light).png new file mode 100644 index 000000000000..e06f9a8f0d62 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed-2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed-2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a0fc250c977e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-changed-2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-item-option-changed (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-item-option-changed (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a462deb8419 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-item-option-changed (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-items-changed (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-items-changed (fluent-next.blue.light).png new file mode 100644 index 000000000000..a0fc250c977e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-items-changed (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-location-changed (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-location-changed (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c56f0a0db61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-location-changed (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-menu (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-menu (fluent-next.blue.light).png new file mode 100644 index 000000000000..373a6d96a873 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-menu (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-property-changed (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-property-changed (fluent-next.blue.light).png new file mode 100644 index 000000000000..377cb05ffa6a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/scheduler-toolbar-property-changed (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dc76ea850f94 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..dc76ea850f94 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/header/etalons/toolbar-without-view-switcher-(useDropDownViewSwitcher=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..4aef28e82805 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..f090118c140a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..79cc5cc7b0d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..331e3465f7b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..f23b6afafe20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..209f93661be7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..4aef28e82805 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..2d994deb4e07 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..4178f506c565 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b4fbd1385e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..241e5524fa9f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..3735059a749d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=day-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..79502bfe11a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..8484f2a97fe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..74cf6d18917b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a845b0e969f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa75a542edc3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..f3ca6e8cd7a0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa26b1b05308 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..a3bd0f37ff13 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c226732e6511 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..852b37b84583 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..46caaba44c7b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..20772cbacd78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=month-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..095ce491d03a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a589eb18e87 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..60f18445291a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c55b66fe212 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5b81f0ee498 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf8a5bddc673 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..095ce491d03a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a589eb18e87 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..60f18445291a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c55b66fe212 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5b81f0ee498 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf8a5bddc673 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineDay-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1560bb6aadb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc388b859910 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffff390d65cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..06061f5ec8d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..640e07130896 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..766ea887a212 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1560bb6aadb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc388b859910 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffff390d65cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..06061f5ec8d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..640e07130896 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..766ea887a212 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineMonth-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..114d34b37a26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..f86e7318d8e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..1430816f3223 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..965f22b279b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..9be73340186b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e4a47e15a3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..114d34b37a26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..f86e7318d8e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..1430816f3223 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..965f22b279b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..9be73340186b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5e4a47e15a3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=timelineWeek-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ff501288296 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..e99d8aa62532 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c122ec23746f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..7e4f3f88e1c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..35bdbfb06240 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e5e6d399af8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=false-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..12362cdd97c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal (fluent-next.blue.light).png new file mode 100644 index 000000000000..9644449ca08c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..604aa408cf51 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-horizontal-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c5790c0e5946 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical (fluent-next.blue.light).png new file mode 100644 index 000000000000..f30cad5daab8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..15eeb7b84b84 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/etalons/view=week-crossScrolling=true-vertical-rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..5a36abe2c805 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..404e5bd6c919 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=agenda-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..611721074aab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..5b8fbab6d080 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=day-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..75a08b0971c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..220039be605d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=month-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..2aa5ba87cbdc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..7989223bf615 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=timelineDay-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-after-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-after-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..6249e7b35f0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-after-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-before-resize (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-before-resize (fluent-next.blue.light).png new file mode 100644 index 000000000000..90e14fd6479c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/adaptive/resize/etalons/browser-resize-currentView=week-before-resize (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/21-27-march-week-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/21-27-march-week-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..b76f8b439e82 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/21-27-march-week-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/27-march-day-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/27-march-day-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e6339244284 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/27-march-day-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-3-apr-week-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-3-apr-week-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..f61f14d4c911 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-3-apr-week-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-day-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-day-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..25f73f0c4f85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/28-march-day-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/29-march-day-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/29-march-day-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8b90d928639 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/29-march-day-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/30-march-day-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/30-march-day-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e6339244284 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/30-march-day-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/4-10-apr-week-view (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/4-10-apr-week-view (fluent-next.blue.light).png new file mode 100644 index 000000000000..25723378d5d7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/allDay/etalons/4-10-apr-week-view (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/after-dragging(T1020820) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/after-dragging(T1020820) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cc366ba7dd6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/after-dragging(T1020820) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-adaptability-timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-adaptability-timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..135f9e6f9aea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-adaptability-timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bb32cad451a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..63d034214075 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-adapt(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-double-interval (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-double-interval (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f73a29185e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-double-interval (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bb32cad451a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..76a2cc3906fe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-month-rtl(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..445a9f16cf6f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f37a62479bfe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-adapt(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..445a9f16cf6f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..013c32a4ae83 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-timelineWeek-rtl(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef2675f2474c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a014df0c624 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-adapt(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef2675f2474c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f49ac8369926 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-collector-week-rtl(true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-agenda (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-agenda (fluent-next.blue.light).png new file mode 100644 index 000000000000..7cfa7cd1a045 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-agenda (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-day (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-day (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c9b047218cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-day (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-month (fluent-next.blue.light).png new file mode 100644 index 000000000000..041f3b8ab7d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineDay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineDay (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbc6c54f468b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineDay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..1491f407a5ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..57c72e4ffb7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWorkWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWorkWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..57c72e4ffb7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-timelineWorkWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..a862598f0669 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-workWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-workWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..60e3e17112f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/appointment-no-subject-workWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/before-dragging(T1020820) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/before-dragging(T1020820) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cdbe09b43912 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/before-dragging(T1020820) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointment (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointment (fluent-next.blue.light).png new file mode 100644 index 000000000000..71652e84dde8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointment (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointments-in-grid (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointments-in-grid (fluent-next.blue.light).png new file mode 100644 index 000000000000..4890caa89032 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-appointments-in-grid (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-by-function-appointment (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-by-function-appointment (fluent-next.blue.light).png new file mode 100644 index 000000000000..88e3a0f8dc28 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/disabled-by-function-appointment (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-appointment (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-appointment (fluent-next.blue.light).png new file mode 100644 index 000000000000..039bf29cfde5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-appointment (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-by-function-appointment (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-by-function-appointment (fluent-next.blue.light).png new file mode 100644 index 000000000000..e19686243679 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/enabled-by-function-appointment (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/exclude-appointment-from-series-via-form-editing (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/exclude-appointment-from-series-via-form-editing (fluent-next.blue.light).png new file mode 100644 index 000000000000..d5205f640e2f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/exclude-appointment-from-series-via-form-editing (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d34746ffb32b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d34746ffb32b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=false-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..275afe7088d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..41a29947fe55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=true-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..275afe7088d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..41a29947fe55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/filtering-visible=undefined-maxAppointmentsPerCell=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-day-view-T1086079 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-day-view-T1086079 (fluent-next.blue.light).png new file mode 100644 index 000000000000..390f287b9028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-day-view-T1086079 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-week-view-T1086079 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-week-view-T1086079 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b3731455362 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/long-appointment-week-view-T1086079 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..21aeee100af1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebae4479e7f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-agenda_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..0fe841423234 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b451d3e0a7c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-day_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..b718101c1b45 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..47b6540e803a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-month_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..e72d1fc1723f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..f16f57501799 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineDay_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..8c584f2d4900 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..48b8d0ef9b56 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineMonth_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..7479e0584f2e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..96717375af2e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWeek_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..a99ff212ee07 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..e5fd5036bc7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-timelineWorkWeek_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..5688c15c3c57 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..00f3854a28cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-week_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-non-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-non-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..0ed13b27152b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-non-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-rtl_mode (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-rtl_mode (fluent-next.blue.light).png new file mode 100644 index 000000000000..6114fc020ed6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/appointments/etalons/recurrent-appointment-in-workWeek_view-and-rtl_mode (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-month (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d2f9221c44a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..edad0864a5a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..2bcc7c7c7251 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-timelineWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..79a1674122ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-with-all-day-panel-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-with-all-day-panel-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab1c4019229e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-cell-sizes-with-all-day-panel-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..2684b8f812fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..8aa8bc03052f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d15d5669f09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d15d5669f09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..5b2b582c384f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..5b2b582c384f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce86ac4a9f3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f8f02915a80 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-group-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ce8af54b68e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4f8b6d0b7c0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-month-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..9541fdc9bfe0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..9541fdc9bfe0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineMonth-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..85e5f4c38a29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..85e5f4c38a29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-timelineWeek-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..e30b17042332 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..2922c469b411 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-header-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c6ce1b101b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c6ce1b101b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-agenda-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..10fc91570914 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..10fc91570914 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/customization/etalons/custom-time-panel-in-week-cross-scrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b87c0e91cfc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c0f2b295a5b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=agenda-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c5645b1c3ea6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..630937424145 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=day-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..5af2a2b5b003 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..73d23d25ec81 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=month-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb9b1aab444e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..31580be1bd3c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineDay-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bc8e932cbeea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..16ba38e8b5c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineMonth-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f88d56297c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..504e71560892 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWeek-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f0aeda1f6d3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c80d6e1430df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=timelineWorkWeek-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bd5d551a113c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1dd41d121991 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=week-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2ff1b27576b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbac446d1f52 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/base/etalons/resource(view=workWeek-resource=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bdba4a78a84d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..bdba4a78a84d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=agenda-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..c1095f839ce7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..24c783d61303 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=day-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8e857f23e2f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0f6b5d97a062 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=month-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..008876861812 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..873af50a2b44 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineDay-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f21638a350c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8da840698e46 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineMonth-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d252b1fdf68 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e139d9568db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWeek-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..a873eb310bcf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..83feef02fc86 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=timelineWorkWeek-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..fafb70c7c3ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d379476c7af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=week-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c6ca45a3b43 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=horizontal) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=vertical) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=vertical) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7afbd0976bf3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/resources/groups/etalons/groups(view=workWeek-orientation=vertical) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=agenda (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=agenda (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a48ec979faf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=agenda (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=day (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=day (fluent-next.blue.light).png new file mode 100644 index 000000000000..57b374f272f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=day (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=month (fluent-next.blue.light).png new file mode 100644 index 000000000000..301d32b099ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineDay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineDay (fluent-next.blue.light).png new file mode 100644 index 000000000000..46c724fc8ffe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineDay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineWorkWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineWorkWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..25b31d982c2a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=timelineWorkWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=workWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=workWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..f71d1d4d8694 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-template-currentView=workWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-tooltip-template (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-tooltip-template (fluent-next.blue.light).png new file mode 100644 index 000000000000..3b5e87aad86b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/appointment-tooltip-template (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=day (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=day (fluent-next.blue.light).png new file mode 100644 index 000000000000..cfd995cd0db7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=day (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=month (fluent-next.blue.light).png new file mode 100644 index 000000000000..c25f92f69d83 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineDay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineDay (fluent-next.blue.light).png new file mode 100644 index 000000000000..0aca168a948f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineDay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..64811ef66bb9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineWorkWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineWorkWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd102b1eb330 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=timelineWorkWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=workWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=workWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..5832184ae8c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/templates/etalons/data-cell-template-currentView=workWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-day-with-many-groups (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-day-with-many-groups (fluent-next.blue.light).png new file mode 100644 index 000000000000..dba99813ce24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-day-with-many-groups (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-week-with-many-groups (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-week-with-many-groups (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1541bfac55e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator-in-week-with-many-groups (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..72445b55289e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1dc9c24c191d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee68eb16d838 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1501f10ca22 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..90af916dbbc2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..17e87e74523c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..63cabebdd5be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f1f0d8cfa82 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d30a725ec82f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d489b99d80a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce2c41d71cf0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..135de8fce716 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7cc737fefce1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..882d2b33d892 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3089d0499c9a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..da0f17132603 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9d37a1b6004 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..121170dfd1ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f4691cdf20be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..99051788e550 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..75e91532c21f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ecafc0423e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f601272ee0a3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c813353cf9b8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..72feeb16a109 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..97f97e912028 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8a204bca4d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf3c185b6c83 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b44915a4477 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe142122335f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_day_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0b1bb0751567 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f33320256f73 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fac992a00f1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..15a0e4b8c11a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..70e56d8f28af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..42833c9d29c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d473cdcda2cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..38bfb172d156 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c3c4877b73d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..703df07f84cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..96915da0ca36 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f7af2ff0897 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1da319c1b7f3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..32674d269ad5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..efc922dacb7c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d15672cf476 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3707aa8daafa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..147abdef10d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..79c838b7cf6a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1df44d516ac0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineDay_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..06085b8b081f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b595d373f4e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3c05d115b666 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d866cec9fbad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ed207590b71f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e054d8d69b7f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eec0530e643a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cdf3a833228c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9d5f71f599c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineMonth_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a0136e85f763 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bb6492ec6e3a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1f89bdf64c0e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5a166fe6c8a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..98fcb9249565 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb1dad15e6aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e30a1bb1f208 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a405cb11706d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c16660e16a6e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c8063fa6e74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a7dcc086fa1b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2fd31ab6f6f5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbf62679aa20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0beefa97f1aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..17f307c85326 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e86aa0478cdf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac1bda43af48 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a039c9480f1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..135ca769ea19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..37096895b116 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_timelineWeek_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eaa2ca643188 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f4c41e6c5cb9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..811663d4cf2a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd3b921caed1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a03b43e13be6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3f61b659b9e1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T00-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4cdb15a2f20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d2be7622763 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f452be75292a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fe29e424373 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c0e707b0876 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..519641c4c23d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T06-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..327182c74851 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d73189d11524 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d3835cfc642e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a52a23020842 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0aa85bdb2641 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6877ba20d921 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T12-00-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf67a69f0c43 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a91ddd229bd8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b35dfcc8dcd8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b67723d801d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..603dd3383fca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca6bd30cb391 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T17-30-00_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f2bbfd9b270 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c113b0323bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-horizontal_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..98503bc04952 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9082b958242f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-none_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c4b3fb90be61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_0_24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..54edf7354f09 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/current-time-indicator_week_2023-12-03T23-59-59_g-vertical_6_18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..d011e1fa8120 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b82cf88ec13 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f4aee12710c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..d011e1fa8120 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b82cf88ec13 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..b09c7a82b430 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-day-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..b744a66d57d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..066ca1da59aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..066ca1da59aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..b744a66d57d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..066ca1da59aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..066ca1da59aa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineDay-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..11009b0dbf2d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d3c0d816880 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..50879a80fda5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..11009b0dbf2d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d3c0d816880 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..50879a80fda5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineMonth-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..166ebcacb2b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fd08a5598b7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ac4492e6bba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..166ebcacb2b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..9fd08a5598b7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ac4492e6bba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-timelineWeek-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd1c81ac59c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..46c69f68f073 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7e9b72f4e67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=false-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true (fluent-next.blue.light).png new file mode 100644 index 000000000000..dd1c81ac59c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..bcd1f87bb3a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4aa0c8333da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-in-week-crossScrolling=true-vertical-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e3ebcb276c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end-with-current-time-indicator (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end-with-current-time-indicator (fluent-next.blue.light).png new file mode 100644 index 000000000000..244fb8259b9c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-end-with-current-time-indicator (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..0473d58821e4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start-with-current-time-indicator (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start-with-current-time-indicator (fluent-next.blue.light).png new file mode 100644 index 000000000000..567c33b974c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/timeIndication/etalons/shader-virtual-scrolling-week-start-with-current-time-indicator (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..54939dafc5d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..25f983119111 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=false-interval=2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d44e105f67ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f3c7761a2b01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=horizontal-allDay=true-interval=2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..425d8634fbce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f1f4482b964 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=false-interval=2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e8bdbfb21a5c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6ccc8616c4e2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/day/etalons/day-orientation=vertical-allDay=true-interval=2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync (fluent-next.blue.light).png new file mode 100644 index 000000000000..32204fbf1339 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync-visibility (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync-visibility (fluent-next.blue.light).png new file mode 100644 index 000000000000..568a9047dca2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/cross-scrolling-sync-visibility (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/work-week-first-day-of-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/work-week-first-day-of-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..c3e51ece41d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/etalons/work-week-first-day-of-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..e093acae19dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWorkWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWorkWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..b0001b19b84c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-timelineWorkWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..46138c68047d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-workWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-workWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..83a24efe5f6a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/complex-start-date-in-workWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month (fluent-next.blue.light).png new file mode 100644 index 000000000000..be0e9700ab17 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..417685037d8d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-month-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay (fluent-next.blue.light).png new file mode 100644 index 000000000000..4f0127c558eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f65bb06cf34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineDay-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth (fluent-next.blue.light).png new file mode 100644 index 000000000000..365f13bece74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..4859ad6fdc45 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineMonth-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..915cc4c29acc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d16d949628b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWeek-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..275573bd3d90 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..91b8f3fd9cd2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-timelineWorkWeek-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ba7530c5b8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..033e0674e09d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-week-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek (fluent-next.blue.light).png new file mode 100644 index 000000000000..c361151ffa89 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek-with-form (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek-with-form (fluent-next.blue.light).png new file mode 100644 index 000000000000..57de55ee781e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/intervalCount/etalons/start-date-in-workWeek-with-form (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/material/etalons/week-without-all-day-panel (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/material/etalons/week-without-all-day-panel (fluent-next.blue.light).png new file mode 100644 index 000000000000..b8f9eff9c670 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/material/etalons/week-without-all-day-panel (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/timeline/etalons/timeline-month-change-current-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/timeline/etalons/timeline-month-change-current-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee3ceaa17716 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/layout/views/timeline/etalons/timeline-month-change-current-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-february-2021 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-february-2021 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1afbc1bc6ecb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-february-2021 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-interval-count-12 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-interval-count-12 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1038692bccde Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-interval-count-12 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 2 rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 2 rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..ee257b97d965 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 2 rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 3 rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 3 rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f1386e0ac00 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans 3 rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans all rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans all rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..1c6603b4b59c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=false, text=Appointment spans all rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 2 rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 2 rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b20cab441208 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 2 rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 3 rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 3 rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..9bd0e2c3bae2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans 3 rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans all rows) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans all rows) (fluent-next.blue.light).png new file mode 100644 index 000000000000..f02d2bba3335 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment(rtl=true, text=Appointment spans all rows) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3711e77f500 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..b48a83c89695 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-february(rtl=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..2ede1052a254 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd2ebf733d8b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-january(rtl=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=false) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=false) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ff9789a2f92 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=false) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=true) (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=true) (fluent-next.blue.light).png new file mode 100644 index 000000000000..8fd57994bf55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-appointment-several-months-march(rtl=true) (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-february (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-february (fluent-next.blue.light).png new file mode 100644 index 000000000000..31417f180e26 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-february (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-january (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-january (fluent-next.blue.light).png new file mode 100644 index 000000000000..2e8e135694f5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/month/etalons/month-long-recurrence-appointment-several-months-january (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-after-drag (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-after-drag (fluent-next.blue.light).png new file mode 100644 index 000000000000..43d5c5b57092 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-after-drag (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-init (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-init (fluent-next.blue.light).png new file mode 100644 index 000000000000..3edd41eb7a98 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/basic-recurrence-appointment-init (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-delete-dialog-screenshot (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-delete-dialog-screenshot (fluent-next.blue.light).png new file mode 100644 index 000000000000..32ef7d34c727 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-delete-dialog-screenshot (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-edit-dialog-screenshot (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-edit-dialog-screenshot (fluent-next.blue.light).png new file mode 100644 index 000000000000..358e44b635d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/recurrences/etalons/recurrence-edit-dialog-screenshot (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/rerenderOnResize.ts b/e2e/testcafe-devextreme/tests/scheduler/common/rerenderOnResize.ts index 3dc3756cfc03..a85a19c03832 100644 --- a/e2e/testcafe-devextreme/tests/scheduler/common/rerenderOnResize.ts +++ b/e2e/testcafe-devextreme/tests/scheduler/common/rerenderOnResize.ts @@ -2,6 +2,7 @@ import Scheduler from 'devextreme-testcafe-models/scheduler'; import { getStyleAttribute, setStyleAttribute } from '../../../helpers/domUtils'; import { createWidget } from '../../../helpers/createWidget'; import url from '../../../helpers/getPageUrl'; +import { getThemeName } from '../../../helpers/themeUtils'; fixture.disablePageReloads`Re-render on resize` .page(url(__dirname, '../../container.html')); @@ -60,5 +61,7 @@ test.meta({ browserSize: [300, 300] })('Appointment should not re-rendered on wi await setStyleAttribute(element, 'background-color: red;'); - await t.expect(await getStyleAttribute(element)).eql('transform: translate(0px, 30px); width: 200px; height: 61.7539px; background-color: red;'); + const height = getThemeName() === 'fluent-next' ? '61.2539px' : '61.7539px'; + + await t.expect(await getStyleAttribute(element)).eql(`transform: translate(0px, 30px); width: 200px; height: ${height}; background-color: red;`); }).before(async () => createScheduler('#container', { width: 600, height: 400 })); diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5130b6c7ab7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f69d7d380751 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/resizeAppointments/etalons/resize-all-day-workweek-weekend-1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__summer-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__summer-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..920ef4f0a784 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__summer-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__winter-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__winter-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c8f2e8bbf61 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-down__winter-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__summer-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__summer-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..a9e0e57709d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__summer-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__winter-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__winter-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..8aee42eb71dc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__drag-n-drop-up__winter-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__summer-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__summer-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..85347fedfd98 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__summer-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__winter-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__winter-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..72baa55753cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__popup__winter-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__summer-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__summer-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..578ae4f5ae15 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__summer-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__winter-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__winter-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..3b4d0329a7c6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-bottom__winter-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__summer-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__summer-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d43894ed1d5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__summer-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__winter-time (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__winter-time (fluent-next.blue.light).png new file mode 100644 index 000000000000..564d644bf185 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/T1102713/etalons/recurrent-appointment-timezone-dst__editing__resize-top__winter-time (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..def6edebb823 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..fb1e004b8046 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1845cd1dd4d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..e80690fd406d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6a7d75e7a3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..b01ec5b335ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..df7f6b1ec290 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-monthly-recurrent__same-date__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..91361df0bf14 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..ad823ce6b8be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f372eadef26f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__first-week__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..e450013f8939 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..28319d93111c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..895e7c5e92e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__multiple-appointment__second-week__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..b01ec5b335ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..a26349fa0f67 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__day-shift__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-negative-timezone-offset (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-negative-timezone-offset (fluent-next.blue.light).png new file mode 100644 index 000000000000..55c53b50e299 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-negative-timezone-offset (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-positive-timezone-offset (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-positive-timezone-offset (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce92b2849bf7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__first-week__max-positive-timezone-offset (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__first-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__first-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__first-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__second-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__second-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d51b364b25d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__next-view-shift__second-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__before-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__before-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..f3d978f638df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__before-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__first-week (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__first-week (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a55f7c15185 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__previous-view-shift__first-week (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-negative-timezone-offset (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-negative-timezone-offset (fluent-next.blue.light).png new file mode 100644 index 000000000000..014774307916 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-negative-timezone-offset (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-positive-timezone-offset (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-positive-timezone-offset (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8a52402d5a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__second-week__max-positive-timezone-offset (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..fcbb9dbd3164 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb2ec2f9190b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-appointment__week-shift__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-evening-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-evening-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..8cbce8c0c9c2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-evening-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-morning-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-morning-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5059872c1fa6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-weekly-recurrent__one-morning-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..a183a5cc60cc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__greater-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec6341e29b3d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__lower-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..b8dc43190c79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__next-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..12aa8365d355 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__greater-date__same-timezone__same-view-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..e80690fd406d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6a7d75e7a3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__lower-date__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..e80690fd406d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f6a7d75e7a3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/timezone-yearly-recurrent__same-date__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..901ade6dbdea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9d0101b353e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__monthly-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..901ade6dbdea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9d0101b353e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-corner-appointments__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-corner-appointments__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae5311e9aebb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-corner-appointments__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-morning-appointment__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-morning-appointment__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..649ec0c81290 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__weekly-morning-appointment__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__greater-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__greater-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..901ade6dbdea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__greater-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__lower-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__lower-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9d0101b353e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__lower-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__same-timezone (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__same-timezone (fluent-next.blue.light).png new file mode 100644 index 000000000000..5d6d9729aba4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/timezone/recurrence/etalons/without-timezone-recurrent__yearly-appointment__same-timezone (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-desktop-tooltip-screenshot (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-desktop-tooltip-screenshot (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e765084e050 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-desktop-tooltip-screenshot (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-mobile-tooltip-screenshot (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-mobile-tooltip-screenshot (fluent-next.blue.light).png new file mode 100644 index 000000000000..6ddeddcd9899 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/appointment-mobile-tooltip-screenshot (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/collector-tooltip-focused-list-item (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/collector-tooltip-focused-list-item (fluent-next.blue.light).png new file mode 100644 index 000000000000..2f16f35cea87 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/collector-tooltip-focused-list-item (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/tooltip-rendering-with-react (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/tooltip-rendering-with-react (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab1931a06165 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/tooltipBehaviour/etalons/tooltip-rendering-with-react (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/T1263428-virtual-scrolling-render-appointment (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/T1263428-virtual-scrolling-render-appointment (fluent-next.blue.light).png new file mode 100644 index 000000000000..1261f47f1b9d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/T1263428-virtual-scrolling-render-appointment (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..0ac48aa68ed1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..3021e9cbbf18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..d61469250c53 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-horizontal-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..d6cc36d76189 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..963e1facb016 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d0de46bdbd9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-month-vertical-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9d12384e44e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..740296107912 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..4592f11f454f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-horizontal-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a27baad0ef6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..acf7d026bc92 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..11c2fa862b24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-week-vertical-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c8841ec16ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..31cb2c4698cc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..312eaa3e2944 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-horizontal-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-end (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-end (fluent-next.blue.light).png new file mode 100644 index 000000000000..d10c4480308f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-end (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-middle (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-middle (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2348054f818 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-middle (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-start (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-start (fluent-next.blue.light).png new file mode 100644 index 000000000000..094905edbffc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-many-cells-workWeek-vertical-start (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..32aac05dabce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..9dd2bdab62e5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2147bd5d5b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..196f03546ef4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..32aac05dabce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4a8f8526ced Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..7e5617aa57ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..3fea83df76d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-month-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timeline-month-change-current-date-virtual (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timeline-month-change-current-date-virtual (fluent-next.blue.light).png new file mode 100644 index 000000000000..8254c997ad40 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timeline-month-change-current-date-virtual (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..20f5bf9e8c84 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ede847dd0d0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..01f1089d487b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..e7242ac00bb0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..561a96e2b238 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..3656bab9174e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce0086879db1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..887ada878a56 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineDay-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..39832693add6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a1dd2e5d066 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..76371b7704dc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..f74fefa31695 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a9da79421fa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..51093ab65455 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d97449d2d1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..9065db3d60bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineMonth-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4aec68fa29a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a90b4cf1116 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbd3b2425e1e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac17478ec61e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..2f7dc2a96c85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea3c4ac7aea3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..fc6917e21623 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..7d2fe14318d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-timelineWeek-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..6631d1745e35 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..d16998efa0bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..808122858804 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac5f0c6289c2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-after-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll (fluent-next.blue.light).png new file mode 100644 index 000000000000..70e57deb5f00 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-grouping-by-date (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-grouping-by-date (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f751d80be3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-grouping-by-date (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping (fluent-next.blue.light).png new file mode 100644 index 000000000000..5a0e3ac365c2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea13a8b5a8c8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual-scrolling-week-before-scroll-horizontal-grouping-scaling (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_cell_width (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_cell_width (fluent-next.blue.light).png new file mode 100644 index 000000000000..446856e834c1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_cell_width (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_timeline_3000 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_timeline_3000 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cc3f556bc5fa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/common/virtualScrolling/etalons/virtual_scroll_timeline_3000 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset--60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset--60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5c9aa3b61a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset--60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bdc6ca1e754 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..603b93c24899 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-summer_offset-60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset--60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset--60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a06cef9c7fa7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset--60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6e412ade3abc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fe6fb44ea3d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-America-Los_Angeles-winter_offset-60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset--60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset--60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5c9aa3b61a5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset--60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6bdc6ca1e754 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..603b93c24899 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-summer_offset-60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset--60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset--60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a515c3034b01 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset--60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bc13570f47d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-60 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-60 (fluent-next.blue.light).png new file mode 100644 index 000000000000..66d166dde67b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/day_usual-appts-start-cell-dts_t-Europe-Berlin-winter_offset-60 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..58802871f4ff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9da1176347bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5502ae379ed0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-local_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..713240fb99f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c97e49ab6ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..242dab59ce34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-summer-utc_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..68b2d5ab9c36 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..40e2bf28fb68 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f113c090c187 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-local_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e9ec035e0c76 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffb8b1d0a9ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..751df1dba6b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-America-Los_Angeles-winter-utc_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c173920a3f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4ad5a407af46 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..56e7b789f5c7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-local_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..37e2e73ca109 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..39a36ecf5711 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c9cba6f78498 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-summer-utc_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..168b6568b89a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..952b0e63fddf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3fdabad9ff76 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-local_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e894ad75364 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2631582581d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a2a5318e6e1d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_appts-render-cross-dts_t-Europe-Berlin-winter-utc_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3bf47f9ce79d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..457666d5ef49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ef01b00c1bfa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-summer_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8da265770188 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..284ec38a95e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..baf307f37714 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-America-Los_Angeles-winter_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..89e55769c187 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..807ab0b05d63 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ae44a4d261e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-summer_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset--360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset--360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b89c10bf3d94 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset--360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf339b032821 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-360 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-360 (fluent-next.blue.light).png new file mode 100644 index 000000000000..da3b2632e07b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/timezones/etalons/week_usual-appts-render-dts_t-Europe-Berlin-winter_offset-360 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset--240 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset--240 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b4b18b1b58b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset--240 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b4b18b1b58b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-240 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-240 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b4b18b1b58b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_agenda-not-affected_offset-240 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset--180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset--180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e90e9c8d9bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset--180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8775c07af21 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8b19250781fc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_drag-n-drop_week_offset-180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset--180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset--180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bdce00f361a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset--180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..283fb074a2e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..79640bf35e7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_resize_week_offset-180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset--180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset--180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d55ad7cba1df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset--180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e21ee877e090 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-180 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-180 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8bd2cdcc3dc1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_appt-expr_week_offset-180 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..64ee0a77af12 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c245b4d9bc20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d779d533ca8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_month_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a33f6bca2e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6979b34d9e8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e027010b1ec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_timelineMonth_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2d7d2de6d3e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..40693f513101 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..99a5c7522b1c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_all-day-appts_week_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..64ee0a77af12 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c245b4d9bc20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d779d533ca8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_month_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a33f6bca2e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6979b34d9e8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e027010b1ec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_timelineMonth_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..de5fceebb1ff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c21f447ce3eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8476431371ab Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_drag-n-drop_usual-appts_week_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4af072cf7738 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bfb5096487fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5024871b550 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_day_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..52cc9913f94b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..52cc9913f94b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..52cc9913f94b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_month_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..99cf6d134b91 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a267588cbcf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1cd58cbd653e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineDay_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cc5ed9e56b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cc5ed9e56b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cc5ed9e56b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_timelineMonth_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..802a900da9c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..73727fb09b14 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f101a976fa19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week-all-day_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ea163a228282 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c550bed79ef7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ee49a978e5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_keyboard_week_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..b60691f4c8f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..27dd88632071 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..b60691f4c8f7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..27dd88632071 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset--120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..7363285377d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..f632e631f313 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..7363285377d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..f632e631f313 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-0_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..18e4affab413 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..b171976bb4d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..18e4affab413 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..b171976bb4d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_day_offset-120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset--120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-0_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8e721184bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..482bc92dcfe4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_month_offset-120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d8cdae0fc70 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a81123a867a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..b24a831dcee2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b0ce08dad55 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset--120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..76f02a7793b7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbe23aa4bef0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..2372e11bf4e8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4e9fd03289f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-0_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..b7e991f3ca7a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..649a7c324757 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..97e3e033d743 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..e4eaa0490efa Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineDay_offset-120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset--120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-0_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_decrease_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase (fluent-next.blue.light).png new file mode 100644 index 000000000000..19ee2413ce9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..908772924e59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_timelineMonth_offset-120_increase_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..880605e6bf5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..880605e6bf5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset--120_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..222244861261 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..222244861261 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b2599bfd7a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..4b2599bfd7a9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week-all-day_offset-120_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3169c6d76e9b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c48d10d0775 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..142110df37ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..1899d0fe95e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..41bf3dad8cce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..2401e08bc1eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..66670a0c4933 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..e6a6209d239b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_decrease_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3169c6d76e9b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c48d10d0775 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..142110df37ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..1899d0fe95e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..41bf3dad8cce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..2401e08bc1eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..66670a0c4933 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..e6a6209d239b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset--120_increase_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6e0ccd0663d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c441c9a433f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d346df51d614 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..16cb3c739a56 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f54988ac6b34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8042014aa52 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0ad7818623b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..6086556f3e6c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_decrease_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6e0ccd0663d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c441c9a433f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d346df51d614 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..16cb3c739a56 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f54988ac6b34 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..c8042014aa52 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0ad7818623b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..6086556f3e6c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-0_increase_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fdbcf4bb126c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..66573025dc20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bbc74f2a128f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5133bb6c05d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2caf12659583 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b27500ff0c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..236b34a2c2f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2c74b66af11 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_decrease_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fdbcf4bb126c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..66573025dc20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_0_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bbc74f2a128f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..5133bb6c05d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_1_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2caf12659583 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b27500ff0c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_2_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..236b34a2c2f2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3_rtl (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3_rtl (fluent-next.blue.light).png new file mode 100644 index 000000000000..b2c74b66af11 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_multi-cell-select_week_offset-120_increase_3_rtl (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf83424899b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f685a93e6bd7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b5afbc94e3b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a96487cc315 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..89330dc46050 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..97340f417cdd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_end-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e24800be25ec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8b71e46efe2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf83424899b9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7a96487cc315 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..89330dc46050 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..97340f417cdd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_month_start-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a122dcfb6c41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a122dcfb6c41 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineDay_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6542fa9bf8ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..64ba60925392 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ddcd8a5604f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba986f335171 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..02fd0f6d00c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2d0699768b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_end-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fab39e86fe8c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..12726af8df18 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4277aaa3b966 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba986f335171 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..02fd0f6d00c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2d0699768b3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_timelineMonth_start-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..056fe34c3e40 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..22f5f87aafd3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..faefda932a49 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d79e25e83da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f51d666460ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..67ff613fc397 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_end-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8a2325243466 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset--720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9c91d88cb5ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_offset-720_startDayHour-10_endDayHour-12 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9f0a349cd9c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6a22d9537898 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d60203eb94f0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-minus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset--735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset--735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2232d47038ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset--735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..02423ed456d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-735 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-735 (fluent-next.blue.light).png new file mode 100644 index 000000000000..efb0835fe707 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_resize-appts_week_start-plus_offset-735 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..76d8c0052317 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8596225dd64a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a2f3bfa7e280 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba92de9af8e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a2f3bfa7e280 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba92de9af8e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..76d8c0052317 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8596225dd64a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-day_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c3c4877b73d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..703df07f84cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33852cefb45e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..98683145b688 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33852cefb45e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..98683145b688 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c3c4877b73d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..703df07f84cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineDay_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0ea552eb237 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineMonth_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c16660e16a6e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c8063fa6e74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-02T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4101ebb622f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d2f12c9a6bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-03T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4101ebb622f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8d2f12c9a6bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c16660e16a6e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7c8063fa6e74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-timelineWeek_now-2023-12-04T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ed2521f6a9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..61e8e3d47219 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-04T12-00-00_offset--1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..141e09e95d1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7bbd29ae34d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-05T00-00-00_offset--720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..141e09e95d1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7bbd29ae34d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T00-00-00_offset-720_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ed2521f6a9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png new file mode 100644 index 000000000000..61e8e3d47219 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/common/etalons/offset_time-indicator_view-week_now-2023-12-06T12-00-00_offset-1440_start-6_end-18 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3b34f7ed6690 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..31d379b2baf0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3b45a57de881 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..079d4aceb28e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..126f46ed6bb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b3a7a9e606f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e498628ef6f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4afab4d49cd3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..25747d4182af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2301c64a5e3d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3150a6165ec6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3150a6165ec6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..abbbc10f8b8d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9519f774ad69 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..18b3e0013ef7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..32cea36bb335 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a54d6526a43 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a54d6526a43 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b452216e80dd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..05d218f78584 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e0e41a9a745 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6960d16f8d37 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0e52579848be Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2fa64e0267ff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..68412f1b3efe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a31fbc52a797 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..510e2f3fff32 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4c4530388692 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..602186ec47e7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..516d568749c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..702546a86d93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..702546a86d93 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..208a10360fc8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..208a10360fc8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..34edf9e6eaff Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1732ab882f20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2aa4190e3da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c2aa4190e3da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..557f82ab05a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..557f82ab05a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..39132c846bd5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..008473bd5a24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..715f3e1b0a2f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2e240880514d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1cb9e1b9d6c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..34e6f230c9bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dae04c478773 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..afad135128da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dad1ca3b84bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..45e36616e636 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..52f77e9b90e7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9ea51aa6babd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..926665b12291 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f8a4f1889a17 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..86265f378b44 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b7d0b57c078c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f33818196207 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..981051924f3f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cb8cc13fd93f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4a27b91d98a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..93087a3bd346 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a7614e24026 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..863c1ecdd80d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1b1b3ab0aee0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..33a9eb59fad2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec1ee270396b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..85c681d6c2e5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c569b6733cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf3f5367a5ca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b103845cef3c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4dde365241ac Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a073169262f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6f9532020e88 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c2c19f8d670 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1f389b05b850 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..745371630627 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6ff5e36990ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..59ae46cb0a19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b3b9972a01fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3fd9a4c8fa95 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a54d0fbd233 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ccd6d6e3fcec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6e1ff0bf5b3e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7f4733bf8b81 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b579855a75e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..141d88f8d1bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..49cb573b6c33 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..070ce92a96c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4f6058327bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa07063d61f5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..357882eafb35 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3d8406b93578 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a67ef2eced60 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c92105e6ea5a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8c3a6e29fc24 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9b040d991ae2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f3c114b067bf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ffdc8ff6f035 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c70356b0165a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1414bc2fbb6b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_all-day_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_T1212573 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_T1212573 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9026eb70579d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_T1212573 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9db13ee69395 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2a2c26c1d9b4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9e986642854c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1276ac19d473 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset--735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..aca34b06fc78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..51d817197ff7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-0_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e0ed5eead73 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b007836230bb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..464b4ef6017e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..99f99934a5ec Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_month_offset-735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d714a2d76a7d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c501a10b0717 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..02dc5d26fb9f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9112fe3b3de6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..43899684fee4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8f22398b1360 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..aec846f7b670 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3624dd8040c3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..157f7f13af4f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..35306800d043 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_ordering-appts_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..20c65ca08d60 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0c696d7fd1ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..04d14cc9ae0a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d373607a423d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..504d4e15034a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d35114ba91df Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f5a8588bdf64 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2026814b0f4e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac5e8a2ef168 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac5e8a2ef168 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..822874864908 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0ee0b46b63a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..548ebb876fb1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..194842fc3db5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset--720_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a2bd2b06db99 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f3808a961934 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_day_offset-720_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..21e9d239a6dc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eca071dc810c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset--720_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec6d151ccfee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2c8a90d92ba7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_short-day-views_timelineDay_offset-720_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6d28422ca1f9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..22604ee4fcfb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2d561aa748db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..521fc1ae6dba Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3cf45765d186 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b32a306dda80 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ab514961f284 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d008ae448056 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e739c57bbad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e739c57bbad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..27280309742b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d008ae448056 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2397a41399af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1bb669ce16fb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cd33ccf99182 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8e1cf2145a5e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a3a97fe4b9af Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..366ac64b94bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b51b08d28ed2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d39b196ac904 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1708c9121d76 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f78402760736 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dfccdcb2e84e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..25e8f1774c29 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..672b594733bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8366ed7be802 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0bb6deab3df7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..581f72e6c08f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a1d3504268db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..05d4e19a31fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d90f1e2a3818 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8e5e28601240 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..070cced37e4c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ca479856d21a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ec0e1035f904 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d617259c6caf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ae95b8470c5f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f9a81097a330 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5ae2e2193b08 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5436adbdd781 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..1d3293a43198 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f43533f21ac3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a46b76b34d10 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e144dcc8813a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b9f796bb511d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0dd9819733fd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7ce33e3509a4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..766b4153c61d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_recurrent-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7528965a6e79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a41ac3d153a2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b41515a65ebd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5fe111dbd14a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b750e1429a19 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..26d542b3cc3b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..40a1e4e380d6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..428b936592d8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d112435e43ed Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..62ec965f187e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_day_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..407323e190ae Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a8ee9a2ac440 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce53e1465722 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ed330ec8495a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce53e1465722 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9d0ef7c302b1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce53e1465722 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..40f7d1137de6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ce53e1465722 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..318673bfe784 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_month_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4cab021e670c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..bf613523df1f Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c7a5808b0874 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d9e3e5ec421 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2d883daa5f0d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..42737239faf3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c3969ef9c515 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..755e3b5dacd0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba1640fc6f78 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c1b399a66174 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineDay_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d0eff34a6ef3 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b4baf73670f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ff917d737634 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbd32e9352f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4d5fc13cb5ee Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..25b12d0bb649 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..962e2b085446 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5779af7f37db Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7578b93e0241 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e1797d1bd068 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineMonth_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..28d5a6659bd9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e0f7e3a8e82a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cc158b0aaa98 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..231ffe510c38 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..84ab037c3f3d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5c358642d08a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fd085656f761 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e3396236e4e9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0a141722e4c7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b452050460c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9812e8bd83f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7fb56cc02e90 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a76ab642b022 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..84b72ed628d9 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..12e1381c1b1b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..343c4dc67286 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..75c6670cdb31 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e07be1ebd8c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..83aef398c56a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a54d8d392e1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..a9b15f69c5ea Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3e0c23edb4e7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d4db63025e75 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b1be9fb0c8cc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..8ce421fac9d4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4e330920dfd0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e76808c0db20 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..de8f062a1c1d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..13a53fc4ac79 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..03a5a6c769b2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_timelineWorkWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..12a852cb38d2 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..14fefaa86296 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e682da53495a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e19553de43ce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..028fe2fe1c17 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba559f99cea5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ba5541ad4f9e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5905651496e0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cce80778a475 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..045a9a808a59 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_week_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..b860ad9bbfca Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..62c3d7843b85 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6cb433e953c5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f537794191e7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e9ae497a323d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..9076e11879da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..dcf127be48cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..06197216c771 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset--735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..58e481e30d15 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7eb44f5544ef Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..858581c4a9bd Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..db3072d3231b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-0_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..697bb0bae4c4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..946d525bbab5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..df94b8777579 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fa3a3a68314e Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-1440_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..f23af1b1ecf5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c5f012b7e56a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-0_end-24_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c4a92186678b Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-0 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7023a3d2d4a6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_usual-appts_workWeek_offset-735_start-9_end-17_first-day-3 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..fceb29fdcb44 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..eb505a3bcecf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..4767ba316fb7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ebe90e3220f8 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset--735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6c56b3e759cf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..c6417a7755fe Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-0_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..0d9ab1e6d45a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e6367da58353 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cbef8841858d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d1443119188d Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_month_offset-735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6822d54a90d1 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..69be504506f6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..cf4130b90404 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..ac94fcce883a Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset--735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..483faa2841bc Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..7cea3811b5eb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-0_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2dc10ae98b46 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..546eae35c0ad Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..3a1069b76a84 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e76faffbfcdb Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_timelineMonth_offset-735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..78f5c80fbcce Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..529ba027ca74 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..2b89ae92cda0 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e2b46efed7f4 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset--735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..6b63b3d8e7e6 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..71dc0dd1d2b5 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-0_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..d84fc8083ee7 Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..5f43d2c88daf Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-1440_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-0_end-24 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-0_end-24 (fluent-next.blue.light).png new file mode 100644 index 000000000000..28136f2a01da Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-0_end-24 (fluent-next.blue.light).png differ diff --git a/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-9_end-17 (fluent-next.blue.light).png b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-9_end-17 (fluent-next.blue.light).png new file mode 100644 index 000000000000..e18033bd7b7c Binary files /dev/null and b/e2e/testcafe-devextreme/tests/scheduler/viewOffset/markup/etalons/view_markup_virtual-scrolling_week_offset-735_start-9_end-17 (fluent-next.blue.light).png differ diff --git a/packages/devextreme-angular/webpack.test.js b/packages/devextreme-angular/webpack.test.js index 16f9b4af773f..9b2eec1c9cc2 100644 --- a/packages/devextreme-angular/webpack.test.js +++ b/packages/devextreme-angular/webpack.test.js @@ -3,6 +3,7 @@ module.exports = { mode: 'development', plugins: [], resolve: { + alias: { stream: require.resolve('stream-browserify') }, fallback: { stream: require.resolve('stream-browserify') }, }, module: { @@ -24,5 +25,4 @@ module.exports = { ], }], }, - }; diff --git a/packages/devextreme-scss/.gitignore b/packages/devextreme-scss/.gitignore index 1cb872afbe1d..a140fd7101f4 100644 --- a/packages/devextreme-scss/.gitignore +++ b/packages/devextreme-scss/.gitignore @@ -1 +1,2 @@ scss/bundles +scss/_design-system diff --git a/packages/devextreme-scss/.stylelintrc.json b/packages/devextreme-scss/.stylelintrc.json index 52bbdc7712f3..8015effaeaea 100644 --- a/packages/devextreme-scss/.stylelintrc.json +++ b/packages/devextreme-scss/.stylelintrc.json @@ -20,7 +20,11 @@ "@stylistic/declaration-colon-space-after": "always-single-line", "@stylistic/declaration-colon-space-before": "never", "declaration-no-important": true, - "dx/module-variable-default": true, + "declaration-property-value-disallowed-list": [ + { "/.*/": ["/var\\(\\s*--dxds-/"] }, + { "message": "Read a design token through the ds bridge (ds.$name), not var(--dxds-…): the bridge fails the build on an unknown name, a raw custom property compiles and degrades silently." } + ], + "dx/module-variable-default": [true, { "exemptMarkersFrom": "tools/review/size-markers.json" }], "dx/no-identical-branch-declarations": true, "font-family-name-quotes": "always-unless-keyword", "@stylistic/function-comma-space-after": "always-single-line", @@ -57,8 +61,6 @@ "scss/at-if-closing-brace-newline-after": null, "scss/at-if-closing-brace-space-after": null, "scss/at-if-no-null": true, - "scss/at-import-no-partial-leading-underscore": true, - "scss/at-import-partial-extension": "never", "scss/at-mixin-argumentless-call-parentheses": "always", "scss/at-mixin-parentheses-space-before": "never", "scss/at-mixin-pattern": "^[a-z][0-9a-z-]*$", @@ -72,6 +74,8 @@ "scss/dollar-variable-pattern": "^[a-z][0-9a-z_-]*$", "scss/double-slash-comment-empty-line-before": "always", "scss/double-slash-comment-whitespace-inside": "always", + "scss/load-no-partial-leading-underscore": true, + "scss/load-partial-extension": "never", "scss/map-keys-quotes": "always", "scss/no-duplicate-dollar-variables": [true, { "ignoreInsideAtRules": ["if", "else"] }], "scss/no-duplicate-mixins": true, @@ -79,5 +83,39 @@ "scss/operator-no-newline-before": true, "scss/operator-no-unspaced": true, "scss/operator-no-newline-after": null - } + }, + "overrides": [ + { + "comment": "fluent-next follows the naming standard: strict kebab-case, no underscores and no BEM separators, so a variable name maps 1:1 onto a public --dx-* custom property. cardView is excluded because its own cross-theme BEM system is a documented exemption.", + "files": ["scss/widgets/fluent-next/**/*.scss"], + "ignoreFiles": ["scss/widgets/fluent-next/cardView/**/*.scss"], + "rules": { + "scss/dollar-variable-pattern": "^[a-z][a-z0-9]*(-[a-z0-9]+)*$" + } + }, + { + "comment": "A file that emits rules consumes the widget's own variables, so the token a value comes from is stated once, next to the other variables of that widget. Declaration files are exempted by the override below. `var(--dx-…)` is NOT banned as a form: the component tier is emitted (_public.scss projections, _public-links.scss links) and consumed (pilot rules) through it, and name validity is enforced by fluent-next-naming.test.ts against the declared tier — stylelint could only see the spelling, not whether the name exists. `@use … with ()` arguments are at-rule parameters and stay invisible to stylelint; the naming test covers that form too.", + "files": ["scss/widgets/fluent-next/**/*.scss"], + "rules": { + "declaration-property-value-disallowed-list": [ + { "/.*/": ["/var\\(\\s*--dxds-/", "/\\bds\\.\\$/"] }, + { "message": "Use the widget's own variable here: resolve the design token in _colors.scss or _sizes.scss. A custom property compiles even when its name is wrong." } + ] + } + }, + { + "comment": "Turning a token into a widget variable is what these files are for, so only the raw custom-property form stays banned here.", + "files": [ + "scss/widgets/fluent-next/**/_colors.scss", + "scss/widgets/fluent-next/**/_sizes.scss", + "scss/widgets/fluent-next/**/_variables.scss" + ], + "rules": { + "declaration-property-value-disallowed-list": [ + { "/.*/": ["/var\\(\\s*--dxds-/", "/var\\(\\s*--dx-/"] }, + { "message": "Read a design token through the ds bridge (ds.$name), not as a custom property: the bridge fails the build on an unknown name, a custom property compiles and degrades silently." } + ] + } + } + ] } diff --git a/packages/devextreme-scss/build/bundle-template.fluent-next.scss b/packages/devextreme-scss/build/bundle-template.fluent-next.scss new file mode 100644 index 000000000000..3e3ba462ebeb --- /dev/null +++ b/packages/devextreme-scss/build/bundle-template.fluent-next.scss @@ -0,0 +1,13 @@ +@use "../widgets/fluent-next/colors" with ($color: "$COLOR", $mode: "$MODE"); +@use "../widgets/fluent-next/sizes" with ($size: "$SIZE"); +@use "../widgets/fluent-next/design-system"; +@use "../widgets/fluent-next/typography"; +@use "../widgets/fluent-next/icons"; +@use "../widgets/fluent-next/widget"; +@use "../widgets/fluent-next/card"; +@use "../widgets/fluent-next/fieldset"; +@use "../widgets/fluent-next/common"; +@use "../widgets/base/resizable"; +@use "../widgets/base/draggable"; +@use "../widgets/base/ui"; +@use "../widgets/fluent-next"; diff --git a/packages/devextreme-scss/build/internal-scss-paths.json b/packages/devextreme-scss/build/internal-scss-paths.json new file mode 100644 index 000000000000..79b32f49e75f --- /dev/null +++ b/packages/devextreme-scss/build/internal-scss-paths.json @@ -0,0 +1,5 @@ +[ + "widgets/fluent-next/", + "_design-system/", + "bundles/dx.fluent-next." +] diff --git a/packages/devextreme-scss/build/theme-options.cjs b/packages/devextreme-scss/build/theme-options.cjs index 5e62a5f06563..47b2ff0c50a8 100644 --- a/packages/devextreme-scss/build/theme-options.cjs +++ b/packages/devextreme-scss/build/theme-options.cjs @@ -5,14 +5,17 @@ const materialColors = ['blue', 'lime', 'orange', 'purple', 'teal']; const materialModes = ['light', 'dark']; const fluentColors = ['blue', 'saas']; const fluentModes = ['light', 'dark']; +const fluentNextColors = ['blue']; +const fluentNextModes = ['light', 'dark']; const genericColors = ['carmine', 'contrast', 'dark', 'darkmoon', 'darkviolet', 'greenmist', 'light', 'softblue']; const getThemes = () => sizes.flatMap((size) => [ - ...materialModes.flatMap((mode) => materialColors.map((color) => ['material', size, color, mode])), - ...fluentModes.flatMap((mode) => fluentColors.map((color) => ['fluent', size, color, mode])), - ...genericColors.map((color) => ['generic', size, color]) + ...materialModes.flatMap((mode) => materialColors.map((color) => ['material', size, color, mode])), + ...fluentModes.flatMap((mode) => fluentColors.map((color) => ['fluent', size, color, mode])), + ...fluentNextModes.flatMap((mode) => fluentNextColors.map((color) => ['fluent-next', size, color, mode])), + ...genericColors.map((color) => ['generic', size, color]), ]); module.exports = { - getThemes + getThemes, }; diff --git a/packages/devextreme-scss/build/theme-options.d.cts b/packages/devextreme-scss/build/theme-options.d.cts new file mode 100644 index 000000000000..f0dd1d9c7d88 --- /dev/null +++ b/packages/devextreme-scss/build/theme-options.d.cts @@ -0,0 +1,3 @@ +export type Theme = [theme: string, size: string, color: string, mode?: string]; + +export declare function getThemes(): Theme[]; diff --git a/packages/devextreme-scss/build/tokens/build-tokens.mjs b/packages/devextreme-scss/build/tokens/build-tokens.mjs new file mode 100644 index 000000000000..32921a47e8b4 --- /dev/null +++ b/packages/devextreme-scss/build/tokens/build-tokens.mjs @@ -0,0 +1,579 @@ +import path from 'node:path'; +import url from 'node:url'; +import { createRequire } from 'node:module'; +import { + readdir, readFile, rm, writeFile, +} from 'node:fs/promises'; +import StyleDictionary from 'style-dictionary'; +import { fileHeader, formattedVariables } from 'style-dictionary/utils'; +import { registerTransforms } from './transforms.mjs'; +import { + THEME_NAME, THEME_FOLDER, getBridgeFiles, getModeFiles, +} from './sources.mjs'; +import { + buildAvailableNames, + collectCustomPropertyReferences, + collectTokenReferences, +} from './consumed-tokens.ts'; + +// Suppress ONE known noisy sd-transforms warning about unresolvable +// {font-weight…} references inside math expressions. Scoped to console.warn +// so legitimate errors/logs containing the substring are never swallowed. +// Remove when https://github.com/tokens-studio/sd-transforms/issues/218 is +// fixed in the (forked) sd-transforms we consume. +{ + const originalWarn = console.warn.bind(console); + console.warn = (message, ...args) => { + if (typeof message === 'string' && message.includes('Warning: could not resolve reference {font-weight')) { + return; + } + originalWarn(message, ...args); + }; +} + +registerTransforms(StyleDictionary); + +// The Figma export occasionally emits size-suffixed cross-component references +// (e.g. {text-content.typography.font-weight.small} in the *_small file) while +// only the unsuffixed token exists in that file. Rewrite such dangling +// references to the unsuffixed token, which carries the size-specific value. +const SIZE_SUFFIX_RE = /\.(small|medium|large)$/; + +const getTokenAtPath = (tokens, refPath) => { + let node = tokens; + + for (const part of refPath.split('.')) { + if (typeof node !== 'object' || node === null || !(part in node)) { + return undefined; + } + node = node[part]; + } + + return typeof node === 'object' && node !== null && '$value' in node ? node : undefined; +}; + +const hasTokenAtPath = (tokens, refPath) => getTokenAtPath(tokens, refPath) !== undefined; + +StyleDictionary.registerPreprocessor({ + name: 'dx/fix-dangling-size-references', + preprocessor: (tokens) => { + const visit = (node) => { + if (typeof node !== 'object' || node === null) { + return; + } + + if (typeof node.$value === 'string') { + node.$value = node.$value.replace(/\{([\w.-]+)\}/g, (match, refPath) => { + if (!SIZE_SUFFIX_RE.test(refPath) || hasTokenAtPath(tokens, refPath)) { + return match; + } + + const unsuffixed = refPath.replace(SIZE_SUFFIX_RE, ''); + + if (hasTokenAtPath(tokens, unsuffixed)) { + console.warn(`[design-tokens] Rewriting dangling reference {${refPath}} -> {${unsuffixed}}`); + + return `{${unsuffixed}}`; + } + + return match; + }); + + return; + } + + Object.values(node).forEach(visit); + }; + + visit(tokens); + + return tokens; + }, +}); + +// Composite shadow aliases are exported as $type "text" with a pure reference +// value (e.g. popup.box-shadow.composite = "{box-shadow.lg}"). Without a +// shadow type they get expanded into per-property sub-tokens; retyping keeps +// them as a single var() reference to the composite shadow variable. +const PURE_REFERENCE_RE = /^\{([\w.-]+)\}$/; + +StyleDictionary.registerPreprocessor({ + name: 'dx/fix-composite-shadow-references', + preprocessor: (tokens) => { + const visit = (node) => { + if (typeof node !== 'object' || node === null) { + return; + } + + if (typeof node.$value === 'string') { + const refPath = node.$value.match(PURE_REFERENCE_RE)?.[1]; + + if (node.$type === 'text' && refPath) { + const target = getTokenAtPath(tokens, refPath); + + if (target?.$type === 'boxShadow' || target?.$type === 'shadow') { + node.$type = 'shadow'; + } + } + + return; + } + + Object.values(node).forEach(visit); + }; + + visit(tokens); + + return tokens; + }, +}); + +/* + * WORKAROUND for a bug in @devexpress/design-tokens-internal, present since 262.13.0: that release + * dropped `color.shadow-none` from semantic/colors/*, but + * semantic/box-shadow/{fluent,material}.json still reference it from every layer of + * `box-shadow.none`, so Style Dictionary fails the whole build on three unresolvable references. + * The value the token carried up to 262.12.0 is substituted here, which keeps the output identical + * to that release: `box-shadow.none` is all-zero geometry in a fully transparent colour. + * + * Remove this once the package defines the token again or stops referencing it. The other two + * preprocessors above patch the same class of export defect. + */ +const REMOVED_REFERENCES = new Map([ + ['color.shadow-none', 'rgba(0,0,0,0)'], +]); + +StyleDictionary.registerPreprocessor({ + name: 'dx/substitute-removed-references', + preprocessor: (tokens) => { + const visit = (node) => { + if (typeof node !== 'object' || node === null) { + return; + } + + Object.entries(node).forEach(([key, value]) => { + if (typeof value === 'string') { + REMOVED_REFERENCES.forEach((replacement, refPath) => { + if (value.includes(`{${refPath}}`) && !hasTokenAtPath(tokens, refPath)) { + console.warn(`[design-tokens] Substituting removed reference {${refPath}} -> ${replacement}`); + node[key] = value.replaceAll(`{${refPath}}`, replacement); + } + }); + + return; + } + + visit(value); + }); + }; + + visit(tokens); + + return tokens; + }, +}); + +const dirname = import.meta.dirname || path.dirname(url.fileURLToPath(import.meta.url)); +const require = createRequire(import.meta.url); +const tokensDir = path.dirname(require.resolve('@devexpress/design-tokens-internal/package.json')); +const buildPath = `${path.resolve(dirname, '../../scss/_design-system')}/`; + +// Kept in step with the @includes in widgets/fluent-next/_design-system.scss. +const MODE_ROLES_MIXIN = 'roles'; +const MODE_ALIASES_MIXIN = 'aliases'; +const MODE_ALIASES_FILE = 'mode-aliases'; +const MODE_SHARED_FILE = 'mode-shared'; + +const themePath = path.resolve(dirname, `../../scss/widgets/${THEME_FOLDER}`); + +const FLUENT_PALETTES = [ + 'blue', + 'cool-blue', + 'desert', + 'mint', + 'moss', + 'orchid', + 'purple', + 'rose', + 'rust', + 'steel', + 'storm', +]; + +const FLUENT_MODES = [ + 'dark', + 'light', +]; + +const headerFormatting = ({ prefix, ...formatting } = {}) => formatting; + +StyleDictionary.registerFormat({ + name: 'dx/mode-scoped-mixin', + format: async ({ dictionary, file, options }) => { + const { + outputReferences, outputReferenceFallbacks, usesDtcg, formatting, sort, mixin, + } = options; + const header = await fileHeader({ file, formatting: headerFormatting(formatting), options }); + const variables = formattedVariables({ + format: 'css', + dictionary, + outputReferences, + outputReferenceFallbacks, + formatting: { ...formatting, indentation: ' ' }, + usesDtcg, + sort, + }); + + return `${header}@mixin ${mixin}() {\n${variables}\n}\n`; + }, +}); + +StyleDictionary.registerFormat({ + name: 'scssToCss', + format: ({ dictionary }) => dictionary.allTokens + .map((token) => `$${token.name.replace('dxds-', '')}: var(--${token.name});`) + .join('\n'), +}); + +const ACCENT_PROPERTY = '--dx-accent-color'; +const PRIMARY_STEP_DECLARATION = /^(\s*)--dxds-primary-(\d+):\s*([^;]+);$/gm; +const PRIMARY_STEP_TOKEN = /^dxds-primary-\d+$/; + +StyleDictionary.registerFormat({ + name: 'dx/accent-palette', + format: async (args) => { + const palette = await StyleDictionary.hooks.formats['css/variables'](args); + const stepsInDictionary = args.dictionary.allTokens + .filter(({ name }) => PRIMARY_STEP_TOKEN.test(name)).length; + let wrapped = 0; + const withAccentFallback = palette.replace( + PRIMARY_STEP_DECLARATION, + (line, indent, step, value) => { + wrapped += 1; + + return `${indent}--dxds-primary-${step}: var(${ACCENT_PROPERTY}-${step}, ${value});`; + }, + ); + + if (!stepsInDictionary || wrapped !== stepsInDictionary) { + throw new Error(`An accent palette with ${stepsInDictionary} --dxds-primary-* steps, ` + + `${wrapped} of them wrapped into ${ACCENT_PROPERTY}-*`); + } + + return withAccentFallback; + }, +}); + +const FILE_OPTIONS = { + outputReferences: true, + themeable: true, + formatting: { commentStyle: 'none' }, +}; + +const customExpand = { + exclude: ['shadow', 'text'], +}; + +const normalizeFilePath = (token) => token.filePath.split(path.sep).join('/'); + +const getPlatformSettings = (files) => ({ + 'scss/category': { + transformGroup: 'css', + buildPath, + transforms: [ + 'attribute/cti', + 'color/css', + 'name/kebab', + 'typography/css/shorthand', + 'border/css/shorthand', + 'shadow/css/shorthand', + 'dx/ds-name', + 'dx/fix-transparent-color', + 'dx/fix-drop-shadow', + ], + files, + }, +}); + +const createConfig = (name, files, platformFiles) => ({ + theme: THEME_NAME, + name, + source: files.map((src) => path.resolve(tokensDir, `tokens/${src}.json`)), + preprocessors: [ + 'dx/fix-dangling-size-references', + 'dx/fix-composite-shadow-references', + 'dx/substitute-removed-references', + 'tokens-studio', + ], + expand: customExpand, + platforms: getPlatformSettings(platformFiles), +}); + +const createPaletteConfig = (palette) => createConfig(palette, [`base/colors/palettes/${THEME_NAME}/${palette}`], [ + { + destination: `${THEME_NAME}/accents/${palette}.scss`, + format: 'dx/accent-palette', + filter: (token) => normalizeFilePath(token).includes(`${THEME_NAME}/${palette}.json`), + options: FILE_OPTIONS, + }, +]); + +const createModeConfig = (mode) => createConfig(mode, getModeFiles(mode), [ + { + destination: 'base.scss', + format: 'css/variables', + filter: (token) => { + const filePath = normalizeFilePath(token); + + return filePath.includes('base/borders.json') + || filePath.includes('base/opacity.json') + || filePath.includes('base/spacing.json') + || filePath.includes('base/typography/'); + }, + options: FILE_OPTIONS, + }, + { + destination: `${THEME_NAME}/base.scss`, + format: 'css/variables', + filter: (token) => { + const filePath = normalizeFilePath(token); + + return filePath.includes(`base/colors/utility/${THEME_NAME}.json`) + || filePath.includes(`figma-utils/icon/set/${THEME_NAME}.json`); + }, + options: FILE_OPTIONS, + }, + { + destination: `${THEME_NAME}/semantic/typography.scss`, + format: 'css/variables', + filter: (token) => normalizeFilePath(token).includes(`semantic/typography/${THEME_NAME}`), + options: FILE_OPTIONS, + }, + { + destination: `${THEME_NAME}/semantic/colors/${mode}.scss`, + format: 'dx/mode-scoped-mixin', + filter: (token) => { + const filePath = normalizeFilePath(token); + + return filePath.includes(`semantic/colors/${THEME_NAME}/${mode}.json`) + || filePath.includes(`icons/${THEME_NAME}/${mode}.json`); + }, + options: { ...FILE_OPTIONS, mixin: MODE_ROLES_MIXIN }, + }, + { + destination: `${THEME_NAME}/${MODE_ALIASES_FILE}.scss`, + format: 'dx/mode-scoped-mixin', + filter: (token) => { + const filePath = normalizeFilePath(token); + + return filePath.includes(`semantic/box-shadow/${THEME_NAME}.json`) + || filePath.includes(`global/${THEME_NAME}.json`) + || filePath.includes(`figma-utils/box-shadow/semantic/${THEME_NAME}.json`); + }, + options: { ...FILE_OPTIONS, mixin: MODE_ALIASES_MIXIN }, + }, +]); + +const createDsConfig = () => createConfig('ds', getBridgeFiles(), [ + { + destination: 'variables/_ds.scss', + format: 'scssToCss', + }, +]); + +const configs = [ + ...FLUENT_PALETTES.map(createPaletteConfig), + ...FLUENT_MODES.map(createModeConfig), + createDsConfig(), +]; + +async function collectGeneratedFiles(dir) { + const entries = await readdir(dir, { withFileTypes: true, recursive: true }); + + return entries + .filter((entry) => entry.isFile()) + .map((entry) => path.join(entry.parentPath, entry.name)); +} + +async function validateReferences() { + const files = await collectGeneratedFiles(buildPath); + const defined = new Set(); + const used = new Map(); + + const contents = await Promise.all(files.map((file) => readFile(file, 'utf-8'))); + + for (const [index, file] of files.entries()) { + const content = contents[index]; + + for (const [, name] of content.matchAll(/--(dxds-[\w-]+)\s*:/g)) { + defined.add(name); + } + + for (const [, name] of content.matchAll(/var\(--(dxds-[\w-]+)/g)) { + if (!used.has(name)) { + used.set(name, file); + } + } + } + + const missing = [...used].filter(([name]) => !defined.has(name)); + + if (missing.length > 0) { + const details = missing + .map(([name, file]) => ` --${name} (first used in ${path.relative(buildPath, file)})`) + .join('\n'); + + throw new Error(`Design token references without a definition in the generated output:\n${details}`); + } + + return files.length; +} + +async function collectThemeStyleSheets() { + const entries = await readdir(themePath, { withFileTypes: true, recursive: true }); + + return entries + .filter((entry) => entry.isFile() && entry.name.endsWith('.scss')) + .map((entry) => path.join(entry.parentPath, entry.name)); +} + +const DECLARATION = /^(\s*)(--[\w-]+)\s*:\s*([^;]+);\s*$/; + +const parseDeclarations = (content) => content.split('\n').reduce((declarations, line) => { + const match = DECLARATION.exec(line); + + return match ? declarations.set(match[2], match[3].trim()) : declarations; +}, new Map()); + +const readsOf = (value) => [...value.matchAll(/var\(\s*(--[\w-]+)/g)].map(([, name]) => name); + +const modeDependentNames = (light, dark, aliases) => { + const tainted = new Set([...light.keys(), ...dark.keys()] + .filter((name) => light.get(name) !== dark.get(name))); + + for (let grew = true; grew;) { + grew = false; + + for (const source of [light, aliases]) { + for (const [name, value] of source) { + if (!tainted.has(name) && readsOf(value).some((read) => tainted.has(read))) { + tainted.add(name); + grew = true; + } + } + } + } + + return tainted; +}; + +const withBody = (content, keep) => content.replace( + /(\{\n)([\s\S]*)(\n\})/, + (whole, open, body, close) => { + const lines = body.split('\n').filter((line) => { + const match = DECLARATION.exec(line); + + return !match || keep(match[2]); + }); + + return `${open}${lines.join('\n')}${close}`; + }, +); + +async function splitModeScopedLayers() { + const modeFile = (mode) => path.join(buildPath, THEME_NAME, 'semantic', 'colors', `${mode}.scss`); + const aliasesFile = path.join(buildPath, THEME_NAME, `${MODE_ALIASES_FILE}.scss`); + const sharedFile = path.join(buildPath, THEME_NAME, `${MODE_SHARED_FILE}.scss`); + + const sources = Object.fromEntries(await Promise.all( + [['light', modeFile('light')], ['dark', modeFile('dark')], ['aliases', aliasesFile]] + .map(async ([key, file]) => [key, { file, content: await readFile(file, 'utf-8') }]), + )); + const parsed = Object.fromEntries( + Object.entries(sources).map(([key, { content }]) => [key, parseDeclarations(content)]), + ); + const dependent = modeDependentNames(parsed.light, parsed.dark, parsed.aliases); + + await Promise.all(Object.values(sources).map(({ file, content }) => writeFile( + file, + withBody(content, (name) => dependent.has(name)), + 'utf-8', + ))); + + const shared = [...parsed.light, ...parsed.aliases].filter(([name]) => !dependent.has(name)); + const header = sources.light.content.slice(0, sources.light.content.indexOf('@mixin')); + const body = shared.map(([name, value]) => ` ${name}: ${value};`).join('\n'); + + await writeFile(sharedFile, `${header}:root {\n${body}\n}\n`, 'utf-8'); + + return { dependent: dependent.size, shared: shared.length }; +} + +async function validateConsumedTokens() { + const { version, tokens } = JSON.parse( + await readFile(path.join(tokensDir, 'tokens.flat.json'), 'utf-8'), + ); + const availableNames = buildAvailableNames( + Object.keys(tokens), + new Set(getBridgeFiles()), + ); + + const referenced = new Map(); + + const styleSheets = await collectThemeStyleSheets(); + const styleSheetContents = await Promise.all(styleSheets.map((file) => readFile(file, 'utf-8'))); + + for (const [index, file] of styleSheets.entries()) { + const content = styleSheetContents[index]; + const source = path.relative(themePath, file); + const found = [ + ...collectTokenReferences(content, source).map((name) => [name, `ds.$${name}`]), + ...collectCustomPropertyReferences(content, source).map((name) => [name, `var(--dxds-${name})`]), + ]; + + for (const [name, reference] of found) { + if (!referenced.has(name)) { + referenced.set(name, { file, reference }); + } + } + } + + const missing = [...referenced].filter(([name]) => !availableNames.has(name)); + + if (missing.length > 0) { + const details = missing + .map(([, { file, reference }]) => ` ${reference} (first used in ${path.relative(themePath, file)})`) + .join('\n'); + + throw new Error( + `Tokens used by ${THEME_FOLDER} but absent from @devexpress/design-tokens-internal ${version}:\n${details}`, + ); + } + + return referenced.size; +} + +async function build() { + await rm(buildPath, { recursive: true, force: true }); + + for (const config of configs) { + console.log(`Generating design tokens "${THEME_NAME}-${config.name}"`); + + const sd = new StyleDictionary(config); + + // eslint-disable-next-line no-await-in-loop + await sd.hasInitialized; + // eslint-disable-next-line no-await-in-loop + await sd.buildAllPlatforms(); + } + + const split = await splitModeScopedLayers(); + const fileCount = await validateReferences(); + const consumedCount = await validateConsumedTokens(); + + console.log(`Design tokens generated: ${fileCount} files in ${buildPath}`); + console.log(`Mode-scoped declarations: ${split.dependent} depend on the mode, ${split.shared} moved to :root`); + console.log(`Design tokens consumed by ${THEME_FOLDER}: ${consumedCount} verified against the package`); +} + +await build(); diff --git a/packages/devextreme-scss/build/tokens/consumed-tokens.ts b/packages/devextreme-scss/build/tokens/consumed-tokens.ts new file mode 100644 index 000000000000..ea8e86dc9392 --- /dev/null +++ b/packages/devextreme-scss/build/tokens/consumed-tokens.ts @@ -0,0 +1,40 @@ +export const stripScssComments = (content: string, source: string): string => { + const delimiters = content.replace(/\/\/[^\n\r]*/g, '').match(/\/\*|\*\//g) ?? []; + const paired = delimiters.length % 2 === 0 + && delimiters.every((delimiter, index) => delimiter === (index % 2 === 0 ? '/*' : '*/')); + + if (!paired) { + throw new Error(`Unpaired block comment delimiter in ${source}: code cannot be told from comment`); + } + + return content + .replace(/\/\/[^\n\r]*/g, '') + .split(/\/\*|\*\//) + .filter((_, index) => index % 2 === 0) + .join(''); +}; + +export const collectTokenReferences = (content: string, source: string): string[] => [ + ...stripScssComments(content, source).matchAll(/\bds\.\$([\w-]+)/g), +].map(([, name]) => name); + +export const collectCustomPropertyReferences = (content: string, source: string): string[] => [ + ...stripScssComments(content, source).matchAll(/var\(\s*--dxds-([\w-]+)/g), +].map(([, name]) => name); + +export const collectMarkupCustomPropertyReferences = (content: string): string[] => [ + ...content + .replace(/\/\*[\s\S]*?\*\//g, ' ') + .replace(//g, ' ') + .matchAll(/var\(\s*--dxds-([\w-]+)/g), +].map(([, name]) => name); + +export const buildAvailableNames = ( + flatTokenKeys: Iterable, + consumedSourceFiles: ReadonlySet, +): Set => new Set( + [...flatTokenKeys] + .map((key) => key.split(':')) + .filter(([sourceFile]) => consumedSourceFiles.has(sourceFile)) + .map(([, tokenPath]) => tokenPath.replace(/\//g, '-')), +); diff --git a/packages/devextreme-scss/build/tokens/sources.mjs b/packages/devextreme-scss/build/tokens/sources.mjs new file mode 100644 index 000000000000..1e98b2015f7f --- /dev/null +++ b/packages/devextreme-scss/build/tokens/sources.mjs @@ -0,0 +1,45 @@ +/* + * Which files of @devexpress/design-tokens-internal the theme is built from. Shared by the token + * build and by tools/tokens/update.mjs, which reports what a package bump does to exactly these — + * two copies of this list would drift and the report would quietly describe the wrong package. + */ + +export const THEME_NAME = 'fluent'; +export const THEME_FOLDER = 'fluent-next'; + +export const getThemeCommonFiles = () => [ + 'base/borders', + 'base/opacity', + 'base/spacing', + 'base/typography/font-family', + 'base/typography/font-weight', + 'base/typography/font-size', + 'base/typography/letter-spacing', + 'base/typography/line-height', + 'base/typography/text-case', + 'base/typography/text-decoration', + `base/colors/utility/${THEME_NAME}`, + `semantic/box-shadow/${THEME_NAME}`, + `semantic/typography/${THEME_NAME}/font-family`, + `semantic/typography/${THEME_NAME}/font-size`, + `semantic/typography/${THEME_NAME}/font-weight`, + `semantic/typography/${THEME_NAME}/letter-spacing`, + `semantic/typography/${THEME_NAME}/line-height`, + `global/${THEME_NAME}`, + `figma-utils/box-shadow/semantic/${THEME_NAME}`, + `figma-utils/icon/set/${THEME_NAME}`, +]; + +export const getModeFiles = (mode) => [ + ...getThemeCommonFiles(), + `base/colors/icons/${THEME_NAME}/${mode}`, + `base/colors/palettes/${THEME_NAME}/blue`, + `semantic/colors/${THEME_NAME}/${mode}`, +]; + +/* + * Source files behind the SCSS bridge. The component tier is absent on purpose: its tokens only + * alias the semantic roles the theme already reads, so emitting them added unreferenced custom + * properties. Absent from the bridge, `ds.$button-color-bg-rest` is now a Sass error. + */ +export const getBridgeFiles = () => getModeFiles('light'); diff --git a/packages/devextreme-scss/build/tokens/transforms.mjs b/packages/devextreme-scss/build/tokens/transforms.mjs new file mode 100644 index 000000000000..e8437503ebce --- /dev/null +++ b/packages/devextreme-scss/build/tokens/transforms.mjs @@ -0,0 +1,50 @@ +import { register } from 'safe-ts-transforms-fork'; + +function hexToPercent(hex) { + if (typeof hex !== 'string') throw new TypeError('hex must be a string'); + if (hex.length !== 2) throw new Error('hex must be two characters long'); + + const value = parseInt(hex, 16); + const percent = Math.round((value / 255) * 100); + + return percent; +} + +export function registerTransforms(StyleDictionary) { + register(StyleDictionary, {}); + + StyleDictionary.registerTransform({ + name: 'dx/ds-name', + type: 'name', + filter: () => true, + transform: (token) => `dxds-${token.name}`, + }); + + const REFERENCE_WITH_ALPHA_RE = /^(\{[\w.-]+\})([0-9a-fA-F]{2})$/; + + StyleDictionary.registerTransform({ + name: 'dx/fix-transparent-color', + type: 'value', + transitive: true, + filter: (token) => typeof token.original.$value === 'string' + && REFERENCE_WITH_ALPHA_RE.test(token.original.$value), + transform: (token) => { + const [, reference, alpha] = token.original.$value.match(REFERENCE_WITH_ALPHA_RE); + const newValue = `rgb(from ${reference} r g b / ${hexToPercent(alpha)}%)`; + + token.original.$value = newValue; + + return newValue; + }, + }); + + StyleDictionary.registerTransform({ + name: 'dx/fix-drop-shadow', + type: 'value', + transitive: true, + filter: (token) => token.$type === 'shadow', + transform: (token) => token.$value + .replace(/dropShadow\s/g, '') + .replace(/innerShadow\s/g, 'inset '), + }); +} diff --git a/packages/devextreme-scss/eslint.config.mjs b/packages/devextreme-scss/eslint.config.mjs new file mode 100644 index 000000000000..62dfb9ae7251 --- /dev/null +++ b/packages/devextreme-scss/eslint.config.mjs @@ -0,0 +1,123 @@ +import globals from 'globals'; +import stylistic from '@stylistic/eslint-plugin'; +import tsParser from '@typescript-eslint/parser'; +import { changeRulesToStylistic } from 'eslint-migration-utils'; +import javascriptConfig from 'eslint-config-devextreme/javascript'; +import typescriptConfig from 'eslint-config-devextreme/typescript'; +import jestConfig from 'eslint-config-devextreme/jest'; + +const configDir = import.meta.dirname; + +const toStylistic = (config, files) => { + const newConfig = { ...config, files }; + + if (config.rules) { + newConfig.rules = changeRulesToStylistic(config.rules); + } + + return newConfig; +}; + +const typescriptFor = (files, project) => [ + ...typescriptConfig.map((config) => toStylistic(config, files)), + { + files, + plugins: { + '@stylistic': stylistic, + }, + languageOptions: { + parser: tsParser, + parserOptions: { + project, + tsconfigRootDir: configDir, + }, + }, + }, +]; + +export default [ + { + ignores: ['node_modules/**', 'scss/**'], + }, + + ...javascriptConfig.map((config) => ({ ...config, files: ['**/*.mjs'] })), + { + files: ['**/*.mjs'], + languageOptions: { + ecmaVersion: 2023, + sourceType: 'module', + globals: globals.node, + }, + }, + + ...javascriptConfig.map((config) => ({ ...config, files: ['**/*.cjs'] })), + { + files: ['**/*.cjs'], + languageOptions: { + ecmaVersion: 2023, + sourceType: 'commonjs', + globals: globals.node, + }, + rules: { + strict: ['error', 'safe'], + }, + }, + + ...typescriptFor(['build/**/*.ts', 'tools/**/*.ts'], './tsconfig.json'), + + ...typescriptFor(['tests/**/*.ts'], './tsconfig.json'), + ...jestConfig.map((config) => ({ ...config, files: ['tests/**/*.ts'] })), + + { + files: ['**/*.{mjs,cjs,ts}'], + rules: { + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + }, + }, + + { + files: ['**/*.mjs'], + rules: { + 'import/extensions': ['error', 'ignorePackages', { mjs: 'always' }], + 'import/no-unresolved': ['error', { + ignore: ['^style-dictionary(/|$)', '^safe-ts-transforms-fork$', '^@typescript-eslint/'], + }], + 'no-restricted-syntax': [ + 'error', + { + selector: 'ForInStatement', + message: 'for..in loops iterate over the entire prototype chain, which is virtually never what you want. Use Object.{keys,values,entries}, and iterate over the resulting array.', + }, + { + selector: 'LabeledStatement', + message: 'Labels are a form of GOTO; using them makes code confusing and hard to maintain and understand.', + }, + { + selector: 'WithStatement', + message: '`with` is disallowed in strict mode because it makes code impossible to predict and optimize.', + }, + ], + }, + }, + + { + files: ['tools/**/*.mjs', 'build/**/*.{mjs,cjs}'], + rules: { + 'no-console': 'off', + }, + }, + + { + files: [ + 'tools/stylelint/*.mjs', + 'build/tokens/transforms.mjs', + 'build/tokens/build-tokens.mjs', + ], + rules: { + 'no-param-reassign': ['error', { + props: true, + ignorePropertyModificationsFor: ['decl', 'branch', 'token', 'node'], + }], + }, + }, +]; diff --git a/packages/devextreme-scss/images/widgets/fluent-next/grid/text-stub.png b/packages/devextreme-scss/images/widgets/fluent-next/grid/text-stub.png new file mode 100644 index 000000000000..5c93776f712b Binary files /dev/null and b/packages/devextreme-scss/images/widgets/fluent-next/grid/text-stub.png differ diff --git a/packages/devextreme-scss/package.json b/packages/devextreme-scss/package.json index 691142e43582..f46e0ffd987c 100644 --- a/packages/devextreme-scss/package.json +++ b/packages/devextreme-scss/package.json @@ -4,21 +4,47 @@ "author": "Developer Express Inc.", "license": "SEE LICENSE IN LICENSE.md", "devDependencies": { + "@devexpress/design-tokens-internal": "262.26.0", + "@eslint/eslintrc": "catalog:", + "@stylistic/eslint-plugin": "catalog:", "@stylistic/stylelint-plugin": "3.1.3", + "@typescript-eslint/eslint-plugin": "catalog:", + "@typescript-eslint/parser": "catalog:", "autoprefixer": "10.5.0", "clean-css": "5.3.3", + "eslint": "catalog:", + "eslint-config-devextreme": "catalog:", + "eslint-migration-utils": "workspace:*", + "eslint-plugin-import": "catalog:", + "eslint-plugin-jest": "29.15.2", + "globals": "catalog:", "opentype.js": "1.3.4", "postcss": "^8.5.23", + "safe-ts-transforms-fork": "0.0.1", "sass-embedded": "1.93.3", + "style-dictionary": "5.4.4", "stylelint": "catalog:", "stylelint-config-standard-scss": "14.0.0", "stylelint-scss": "6.10.0", - "ts-jest": "29.4.12" + "ts-jest": "29.4.12", + "typescript": "catalog:tools" }, "scripts": { "build": "pnpm --workspace-root nx build devextreme-scss", - "lint": "stylelint scss/widgets", + "check-naming-registries": "pnpm run naming:check", + "lint": "pnpm run lint-css && pnpm run lint-js", + "lint-css": "stylelint scss/widgets build", + "lint-js": "eslint", + "naming:baseline": "UPDATE_NAMING_BASELINE=1 jest --no-coverage --runInBand --config=./tests/jest.config.json", + "naming:check": "node tools/naming/rename.mjs --check && node tools/naming/rename.mjs --residue && node tools/naming/derive-registries.mjs --check && node tools/naming/publish.mjs --check && node tools/review/reachability.mjs", + "naming:propose": "node tools/naming/propose.mjs", + "naming:publish": "node tools/naming/publish.mjs", + "naming:registries": "node tools/naming/derive-registries.mjs", + "naming:residue": "node tools/naming/rename.mjs --residue", + "review:evidence": "node tools/review/evidence.mjs", "test": "jest --no-coverage --runInBand --config=./tests/jest.config.json", + "tokens:update": "node tools/tokens/update.mjs", + "typecheck": "tsc -p tsconfig.json", "watch": "pnpm --workspace-root nx run devextreme-scss --target=watch" }, "version": "26.2.0" diff --git a/packages/devextreme-scss/project.json b/packages/devextreme-scss/project.json index 9b1be44607cd..e4513518c251 100644 --- a/packages/devextreme-scss/project.json +++ b/packages/devextreme-scss/project.json @@ -16,16 +16,39 @@ "targetDirectory": "./scss/bundles" } }, + "clean:tokens": { + "executor": "devextreme-nx-infra-plugin:clean", + "options": { + "targetDirectory": "./scss/_design-system" + } + }, "clean": { "executor": "nx:run-commands", "options": { "commands": [ "pnpm nx clean:artifacts devextreme-scss", - "pnpm nx clean:bundles devextreme-scss" + "pnpm nx clean:bundles devextreme-scss", + "pnpm nx clean:tokens devextreme-scss" ], "parallel": false } }, + "build:tokens": { + "executor": "nx:run-commands", + "options": { + "command": "node build/tokens/build-tokens.mjs", + "cwd": "packages/devextreme-scss" + }, + "inputs": [ + "{projectRoot}/build/tokens/**/*", + "{projectRoot}/scss/widgets/fluent-next/**/*", + "{workspaceRoot}/pnpm-lock.yaml" + ], + "outputs": [ + "{projectRoot}/scss/_design-system" + ], + "cache": true + }, "copy:assets": { "executor": "devextreme-nx-infra-plugin:copy-files", "options": { @@ -47,21 +70,27 @@ }, "build:themes": { "executor": "devextreme-nx-infra-plugin:scss-build", + "parallelism": false, "options": { "mode": "all" }, + "dependsOn": [ + "build:tokens" + ], "inputs": [ "{projectRoot}/build/**/*", "{projectRoot}/fonts/**/*", "{projectRoot}/icons/**/*", "{projectRoot}/images/**/*", "{projectRoot}/scss/**/*", + "!{projectRoot}/scss/_design-system/**/*", "{workspaceRoot}/packages/devextreme/package.json", "{workspaceRoot}/pnpm-lock.yaml" ], "outputs": [ "{projectRoot}/scss/bundles", - "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css" + "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css", + "{workspaceRoot}/packages/devextreme/artifacts/css/accents" ], "cache": true }, @@ -70,19 +99,24 @@ "options": { "mode": "ci" }, + "dependsOn": [ + "build:tokens" + ], "inputs": [ "{projectRoot}/build/**/*", "{projectRoot}/fonts/**/*", "{projectRoot}/icons/**/*", "{projectRoot}/images/**/*", "{projectRoot}/scss/**/*", + "!{projectRoot}/scss/_design-system/**/*", "{workspaceRoot}/packages/devextreme/package.json", "{workspaceRoot}/pnpm-lock.yaml", "{workspaceRoot}/packages/devextreme-themebuilder/src/data/clean-css-options.json" ], "outputs": [ "{projectRoot}/scss/bundles", - "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css" + "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css", + "{workspaceRoot}/packages/devextreme/artifacts/css/accents" ], "cache": true }, @@ -101,12 +135,14 @@ "{projectRoot}/icons/**/*", "{projectRoot}/images/**/*", "{projectRoot}/scss/**/*", + "!{projectRoot}/scss/_design-system/**/*", "{workspaceRoot}/packages/devextreme/package.json", "{workspaceRoot}/pnpm-lock.yaml" ], "outputs": [ "{projectRoot}/scss/bundles", "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css", + "{workspaceRoot}/packages/devextreme/artifacts/css/accents", "{workspaceRoot}/packages/devextreme/artifacts/css/fonts", "{workspaceRoot}/packages/devextreme/artifacts/css/icons" ], @@ -127,6 +163,7 @@ "{projectRoot}/icons/**/*", "{projectRoot}/images/**/*", "{projectRoot}/scss/**/*", + "!{projectRoot}/scss/_design-system/**/*", "{workspaceRoot}/packages/devextreme/package.json", "{workspaceRoot}/pnpm-lock.yaml", "{workspaceRoot}/packages/devextreme-themebuilder/src/data/clean-css-options.json" @@ -134,6 +171,7 @@ "outputs": [ "{projectRoot}/scss/bundles", "{workspaceRoot}/packages/devextreme/artifacts/css/dx.*.css", + "{workspaceRoot}/packages/devextreme/artifacts/css/accents", "{workspaceRoot}/packages/devextreme/artifacts/css/fonts", "{workspaceRoot}/packages/devextreme/artifacts/css/icons" ], @@ -145,12 +183,16 @@ "mode": "all", "watch": true }, + "dependsOn": [ + "build:tokens" + ], "inputs": [ "{projectRoot}/build/**/*", "{projectRoot}/fonts/**/*", "{projectRoot}/icons/**/*", "{projectRoot}/images/**/*", - "{projectRoot}/scss/**/*" + "{projectRoot}/scss/**/*", + "!{projectRoot}/scss/_design-system/**/*" ], "cache": false }, @@ -162,6 +204,47 @@ "inputs": [ "{projectRoot}/**/*" ] + }, + "naming:check": { + "executor": "nx:run-script", + "options": { + "script": "naming:check" + }, + "dependsOn": [ + "build:themes" + ], + "inputs": [ + "{projectRoot}/**/*" + ], + "cache": true + }, + "test": { + "executor": "nx:run-script", + "options": { + "script": "test" + }, + "dependsOn": [ + "build:tokens", + "build:themes", + "typecheck" + ], + "inputs": [ + "{projectRoot}/**/*" + ] + }, + "typecheck": { + "executor": "nx:run-script", + "options": { + "script": "typecheck" + }, + "inputs": [ + "{projectRoot}/build/tokens/**/*.ts", + "{projectRoot}/tools/naming/**/*.ts", + "{projectRoot}/tools/tokens/**/*.ts", + "{projectRoot}/tests/**/*.ts", + "{projectRoot}/tsconfig.json" + ], + "cache": true } }, "tags": [] diff --git a/packages/devextreme-scss/scss/widgets/base/_contextMenu.scss b/packages/devextreme-scss/scss/widgets/base/_contextMenu.scss index 242dd3de7ce5..df4f274b3318 100644 --- a/packages/devextreme-scss/scss/widgets/base/_contextMenu.scss +++ b/packages/devextreme-scss/scss/widgets/base/_contextMenu.scss @@ -1,3 +1,7 @@ +$contextmenu-menu-items-container-padding: 1px !default; +$contextmenu-menu-separator-height: 1px !default; +$contextmenu-menu-separator-margin: 5px 0 !default; + .dx-context-menu { &.dx-overlay-content { overflow: inherit; @@ -5,7 +9,9 @@ } .dx-menu-items-container { - padding: 1px; + @if $contextmenu-menu-items-container-padding { + padding: $contextmenu-menu-items-container-padding; + } } .dx-menu-item .dx-submenu { @@ -14,7 +20,7 @@ } .dx-menu-separator { - height: 1px; - margin: 5px 0; + height: $contextmenu-menu-separator-height; + margin: $contextmenu-menu-separator-margin; } } diff --git a/packages/devextreme-scss/scss/widgets/base/_dateBox.scss b/packages/devextreme-scss/scss/widgets/base/_dateBox.scss index ae825e41684b..a7ec620d2b34 100644 --- a/packages/devextreme-scss/scss/widgets/base/_dateBox.scss +++ b/packages/devextreme-scss/scss/widgets/base/_dateBox.scss @@ -1,9 +1,15 @@ @use "./mixins" as *; +$datebox-texteditor-height: 20px !default; +$datebox-popup-content-padding-top: 20px !default; +$datebox-popup-content-padding-bottom: 20px !default; +$datebox-button-min-width: 90px !default; +$datebox-apply-button-margin-right: 10px !default; + .dx-texteditor { input[type="date"] { &::-webkit-inner-spin-button { - height: 20px; + height: $datebox-texteditor-height; } } } @@ -42,8 +48,8 @@ } .dx-popup-content { - padding-top: 20px; - padding-bottom: 20px; + padding-top: $datebox-popup-content-padding-top; + padding-bottom: $datebox-popup-content-padding-bottom; } } @@ -55,10 +61,10 @@ .dx-datebox-button-cell { .dx-button { - min-width: 90px; + min-width: $datebox-button-min-width; &.dx-datebox-apply-button { - margin-right: 10px; + margin-right: $datebox-apply-button-margin-right; margin-left: 0; } diff --git a/packages/devextreme-scss/scss/widgets/base/_fieldset.scss b/packages/devextreme-scss/scss/widgets/base/_fieldset.scss index 86f0b8931665..577faeb8684a 100644 --- a/packages/devextreme-scss/scss/widgets/base/_fieldset.scss +++ b/packages/devextreme-scss/scss/widgets/base/_fieldset.scss @@ -1,7 +1,11 @@ @use "./mixins" as *; +$fieldset-root-margin-bottom: 20px !default; + +$fieldset-label-width: 40% !default; // dx-relative-% +$fieldset-datebox-value-min-width: 60% !default; // dx-relative-% .dx-fieldset { - margin-bottom: 20px; + margin-bottom: $fieldset-root-margin-bottom; .dx-field-value { margin: 0; @@ -25,7 +29,7 @@ .dx-field-label { float: left; - width: 40%; + width: $fieldset-label-width; @include dx-overflow(); } @@ -40,7 +44,7 @@ } .dx-field-value.dx-datebox { - min-width: 60%; + min-width: $fieldset-datebox-value-min-width; } .dx-field-value:not(.dx-widget) > .dx-datebox { diff --git a/packages/devextreme-scss/scss/widgets/base/_fileUploader.scss b/packages/devextreme-scss/scss/widgets/base/_fileUploader.scss index 4da499e464b1..df740cdf01a0 100644 --- a/packages/devextreme-scss/scss/widgets/base/_fileUploader.scss +++ b/packages/devextreme-scss/scss/widgets/base/_fileUploader.scss @@ -1,5 +1,27 @@ @use "./mixins" as *; +$fileuploader-button-margin-left: 12px !default; +$fileuploader-upload-button-margin-top: 10px !default; +$fileuploader-show-file-list-padding-top: 22px !default; +$fileuploader-file-container-padding: 4px 0 4px !default; +$fileuploader-button-width: 28px !default; +$fileuploader-button-height: 28px !default; +$fileuploader-button-margin-right: 10px !default; +$fileuploader-cancel-button-position-end-margin-left: 4px !default; +$fileuploader-file-status-message-height: 16px !default; +$fileuploader-progressbar-height: 22px !default; +$fileuploader-file-size-padding-left: 4px !default; +$fileuploader-file-icon-padding-right: 6px !default; +$fileuploader-file-container-button-margin-left: 10px !default; +$fileuploader-cancel-button-position-end-margin-right: 4px !default; +$fileuploader-file-size-padding-right: 4px !default; +$fileuploader-file-status-message-line-margin-bottom: 2px !default; +$fileuploader-cancel-button-margin-top: 5px !default; + +$fileuploader-status-message-font-size: 12px !default; +$fileuploader-file-size-font-size: 10px !default; + +$fileuploader-input-wrapper-vertical-padding: 1em !default; // dx-relative .dx-fileuploader { &.dx-state-disabled .dx-fileuploader-input { display: none; @@ -28,12 +50,12 @@ } &::before { - padding-top: 1em; + padding-top: $fileuploader-input-wrapper-vertical-padding; margin-top: -1em; } &::after { - padding-bottom: 1em; + padding-bottom: $fileuploader-input-wrapper-vertical-padding; margin-bottom: -1em; } @@ -42,7 +64,7 @@ } .dx-button + .dx-button { - margin-left: 12px; + margin-left: $fileuploader-button-margin-left; } } @@ -74,7 +96,7 @@ vertical-align: middle; & > .dx-fileuploader-upload-button { - margin-top: 10px; + margin-top: $fileuploader-upload-button-margin-top; } } @@ -92,7 +114,7 @@ width: 100%; .dx-fileuploader-show-file-list & { - padding-top: 22px; + padding-top: $fileuploader-show-file-list-padding-top; } } @@ -100,16 +122,19 @@ display: flex; align-items: center; width: 100%; - padding: 4px 0 4px; + + @if $fileuploader-file-container-padding { + padding: $fileuploader-file-container-padding; + } .dx-button { - width: 28px; - height: 28px; - margin-right: 10px; + width: $fileuploader-button-width; + height: $fileuploader-button-height; + margin-right: $fileuploader-button-margin-right; &.dx-fileuploader-cancel-button-position-end { margin-right: 0; - margin-left: 4px; + margin-left: $fileuploader-cancel-button-position-end-margin-left; } &.dx-state-invisible { @@ -175,15 +200,15 @@ .dx-fileuploader-file-status-message { float: left; - font-size: 12px; - height: 16px; + font-size: $fileuploader-status-message-font-size; + height: $fileuploader-file-status-message-height; } .dx-fileuploader .dx-progressbar { float: left; width: 100%; - height: 22px; - margin-top: -6px; + height: $fileuploader-progressbar-height; + margin-top: -6px; // dx-fixed-size: pulls the status text onto the progress line } .dx-fileuploader-file-name { @@ -194,17 +219,17 @@ } .dx-fileuploader-file-size { - padding-left: 4px; + padding-left: $fileuploader-file-size-padding-left; float: left; vertical-align: super; - font-size: 10px; + font-size: $fileuploader-file-size-font-size; } .dx-fileuploader-file-icon { display: flex; justify-content: center; align-items: center; - padding-right: 6px; + padding-right: $fileuploader-file-icon-padding-right; } .dx-rtl { @@ -215,12 +240,12 @@ } .dx-fileuploader-file-container .dx-fileuploader-button { - margin-left: 10px; + margin-left: $fileuploader-file-container-button-margin-left; margin-right: 0; &.dx-fileuploader-cancel-button-position-end { margin-left: 0; - margin-right: 4px; + margin-right: $fileuploader-cancel-button-position-end-margin-right; } } @@ -231,7 +256,7 @@ } .dx-fileuploader-file-size { - padding-right: 4px; + padding-right: $fileuploader-file-size-padding-right; } } } @@ -242,7 +267,7 @@ span { display: block; - margin-bottom: 2px; + margin-bottom: $fileuploader-file-status-message-line-margin-bottom; &:last-child { margin-bottom: 0; @@ -255,6 +280,6 @@ } .dx-fileuploader-cancel-button { - margin-top: 5px; + margin-top: $fileuploader-cancel-button-margin-top; } } diff --git a/packages/devextreme-scss/scss/widgets/base/_form.scss b/packages/devextreme-scss/scss/widgets/base/_form.scss index 25535be7a954..a466c84f303a 100644 --- a/packages/devextreme-scss/scss/widgets/base/_form.scss +++ b/packages/devextreme-scss/scss/widgets/base/_form.scss @@ -1,6 +1,15 @@ +$form-first-row-padding-top: 10px !default; +$form-switch-margin-top: 7px !default; +$form-switch-margin-bottom: 4px !default; +$form-multiview-item-content-padding: 20px !default; +$form-group-content-padding-top: 19px !default; +$form-group-content-margin-top: 6px !default; +$form-field-item-label-location-left-padding-inline-end: 10px !default; +$form-field-item-label-location-right-padding-inline-start: 10px !default; + .dx-layout-manager { .dx-field-item:not(.dx-first-row) { - padding-top: 10px; + padding-top: $form-first-row-padding-top; } .dx-field-empty-item { @@ -79,8 +88,8 @@ // TODO: form layout manager should not contain settings with checkbox/switch classes .dx-checkbox, .dx-switch { - margin-top: 7px; - margin-bottom: 4px; + margin-top: $form-switch-margin-top; + margin-bottom: $form-switch-margin-bottom; } } @@ -93,7 +102,7 @@ .dx-tabpanel { .dx-multiview-item-content { - padding: 20px; + padding: $form-multiview-item-content-padding; } } } @@ -123,8 +132,8 @@ .dx-form-group-with-caption { & > .dx-form-group-content { - padding-top: 19px; - margin-top: 6px; + padding-top: $form-group-content-padding-top; + margin-top: $form-group-content-margin-top; } } @@ -140,11 +149,11 @@ } .dx-field-item-label-location-left { - padding-inline-end: 10px; + padding-inline-end: $form-field-item-label-location-left-padding-inline-end; } .dx-field-item-label-location-right { - padding-inline-start: 10px; + padding-inline-start: $form-field-item-label-location-right-padding-inline-start; } .dx-field-item-required, diff --git a/packages/devextreme-scss/scss/widgets/base/_gallery.scss b/packages/devextreme-scss/scss/widgets/base/_gallery.scss index 51670a7492f1..a33e88397361 100644 --- a/packages/devextreme-scss/scss/widgets/base/_gallery.scss +++ b/packages/devextreme-scss/scss/widgets/base/_gallery.scss @@ -1,9 +1,14 @@ @use "./mixins" as *; +$gallery-root-border-width: 1px !default; +$gallery-indicator-bottom: 10px !default; +$gallery-indicator-height: 10px !default; +$gallery-indicator-item-margin: 0 2px !default; + .dx-gallery { width: 100%; height: 100%; - border-width: 1px; + border-width: $gallery-root-border-width; border-style: solid; border-color: transparent; @@ -94,15 +99,15 @@ .dx-gallery-indicator { position: absolute; - bottom: 10px; + bottom: $gallery-indicator-bottom; width: 100%; - height: 10px; + height: $gallery-indicator-height; font-size: 0; } .dx-gallery-indicator-item { display: inline-block; - margin: 0 2px; + margin: $gallery-indicator-item-margin; cursor: pointer; } diff --git a/packages/devextreme-scss/scss/widgets/base/_htmlEditor.scss b/packages/devextreme-scss/scss/widgets/base/_htmlEditor.scss index 1ff81b5fddf8..c09c2d5973bc 100644 --- a/packages/devextreme-scss/scss/widgets/base/_htmlEditor.scss +++ b/packages/devextreme-scss/scss/widgets/base/_htmlEditor.scss @@ -1,18 +1,41 @@ @use "sass:list"; @use "sass:math"; +@use "sass:meta"; @use "sass:selector"; +$htmleditor-code-block-bg: rgba(191, 191, 191, 0.15) !default; +$htmleditor-aidialog-title-font-weight: 600 !default; + $list-style: decimal lower-alpha lower-roman !default; $list-style-width: 1.2em !default; $list-style-margin: 0.3em !default; $list-style-outer-width: $list-style-margin + $list-style-width !default; $max-indent: 9 !default; -$resize-handle-size: 11px !default; -$touch-resize-handle-size: 15px !default; + +/* + * dx-fixed-size: the drag handle's size; its half is negated at twenty positions, so feeding a + * var() here would trade one knob nobody retunes for twenty calc() in the bundle. + */ +$resize-handle-size: 11px; +$touch-resize-handle-size: 15px; // dx-fixed-size: the touch variant of the same handle $half-resize-handle-size: math.div($resize-handle-size, 2) !default; $half-touch-resize-handle-size: math.div($touch-resize-handle-size, 2) !default; -$transparent-border: 1px solid transparent !default; +$htmleditor-border-width: 1px !default; +$transparent-border: $htmleditor-border-width solid transparent !default; + +$variable-padding: 3px 6px !default; +$variable-border-radius: 8px !default; +$blockquote-padding-inline-start: 12px !default; +$blockquote-border-inline-start-width: 4px !default; +$table-cell-padding: 2px 5px !default; +$placeholder-inset-inline: 15px !default; +$htmleditor-content-padding: 12px 15px !default; +$mention-padding-block: 1px !default; +$mention-border-radius: 2px !default; +$mention-margin-inline: 2px !default; +$table-resizer-thickness: 5px !default; +$table-resizer-highlight-thickness: 3px !default; @function add-counter-reset($counter, $start: 1) { @if $counter > $start { @@ -126,15 +149,15 @@ $transparent-border: 1px solid transparent !default; display: flex; flex: 1; flex-basis: auto; - min-height: 1px; + min-height: 1px; // dx-structural: lets the flex item shrink below its content, not a designed height margin: 0; position: relative; overflow: hidden; } .ql-clipboard { // stylelint-disable-line selector-class-pattern - left: -100000px; - height: 1px; + left: -100000px; // dx-structural: parks Quill's clipboard element off-screen + height: 1px; // dx-structural: collapses the off-screen clipboard element, not a designed height overflow-y: hidden; position: absolute; top: 50%; @@ -151,14 +174,14 @@ $transparent-border: 1px solid transparent !default; width: 100%; outline: none; overflow-y: auto; - padding: 12px 15px; + padding: $htmleditor-content-padding; white-space: pre-wrap; word-wrap: break-word; .dx-variable { & > span { - padding: 3px 6px; - border-radius: 8px; + padding: $variable-padding; + border-radius: $variable-border-radius; } } @@ -198,8 +221,8 @@ $transparent-border: 1px solid transparent !default; td, th { - border: 1px solid #000; - padding: 2px 5px; + border: 1px solid #000; // dx-line-width: a table hairline; the colour beside it is hard-coded too + padding: $table-cell-padding; } ol { @@ -281,7 +304,7 @@ $transparent-border: 1px solid transparent !default; code, .ql-code-block-container { - background-color: rgba(191, 191, 191, 0.15); + background-color: $htmleditor-code-block-bg; } .ql-video { @@ -314,10 +337,10 @@ $transparent-border: 1px solid transparent !default; &::before { content: attr(data-placeholder); font-style: italic; - left: 15px; + left: $placeholder-inset-inline; pointer-events: none; position: absolute; - right: 15px; + right: $placeholder-inset-inline; } &::after { @@ -327,15 +350,15 @@ $transparent-border: 1px solid transparent !default; } &[data-placeholder] > p { - height: 0.1px; + height: 0.1px; // dx-structural: a non-zero height the placeholder needs, not a designed size } } // stylelint-enable selector-class-pattern blockquote { - padding-inline-start: 12px; - border-inline-start: 4px solid; + padding-inline-start: $blockquote-padding-inline-start; + border-inline-start: $blockquote-border-inline-start-width solid; } } @@ -348,7 +371,7 @@ $transparent-border: 1px solid transparent !default; } .dx-suggestion-list { - min-width: 50px; + min-width: 50px; // dx-fixed-size: the narrowest the mention suggestion list may get .dx-list-item { display: block; @@ -361,7 +384,7 @@ $transparent-border: 1px solid transparent !default; } .dx-formdialog-form { - min-width: 360px; + min-width: 360px; // dx-fixed-size: the link/image dialog form width } .dx-aidialog { @@ -386,14 +409,14 @@ $transparent-border: 1px solid transparent !default; .dx-aidialog-title { display: flex; align-items: center; - gap: 6px; - font-weight: 600; + gap: 6px; // dx-fixed-size: gap between the AI dialog title icon and its text + font-weight: $htmleditor-aidialog-title-font-weight; } .dx-overlay-content { &.dx-popup-fullscreen { .dx-formdialog-form { - min-width: 240px; + min-width: 240px; // dx-fixed-size: the same dialog form once the popup goes fullscreen } } } @@ -406,7 +429,7 @@ $transparent-border: 1px solid transparent !default; .dx-background-format { .dx-icon-color, .dx-icon-background { - border-bottom: 3px solid transparent; + border-bottom: 3px solid transparent; // dx-line-width: the strip under the colour-format icon that shows the picked colour } } @@ -426,7 +449,7 @@ $transparent-border: 1px solid transparent !default; .dx-resize-frame { position: absolute; box-sizing: content-box; - border: 1px dashed lightslategrey; + border: 1px dashed lightslategrey; // dx-line-width: hairline of the image resize frame pointer-events: none; .dx-resizable-handle { @@ -437,7 +460,7 @@ $transparent-border: 1px solid transparent !default; .dx-resizable-handle-corner-top-left, .dx-resizable-handle-corner-bottom-right, .dx-resizable-handle-corner-bottom-left { - border: 1px solid white; + border: 1px solid white; // dx-line-width: hairline around a resize handle width: $resize-handle-size; height: $resize-handle-size; border-radius: 0; @@ -493,7 +516,7 @@ $transparent-border: 1px solid transparent !default; position: absolute; width: $resize-handle-size; height: $resize-handle-size; - border: 1px solid white; + border: 1px solid white; // dx-line-width: hairline around a resize handle @at-root #{selector.append(".dx-touch-device", &)} { width: $touch-resize-handle-size; @@ -558,8 +581,8 @@ $transparent-border: 1px solid transparent !default; } .dx-mention { - padding: 1px 0; - border-radius: 2px; + padding: $mention-padding-block 0; + border-radius: $mention-border-radius; .dx-template-wrapper { white-space: nowrap; @@ -567,7 +590,7 @@ $transparent-border: 1px solid transparent !default; } & > span { - margin: 0 2px; + margin: 0 $mention-margin-inline; } } @@ -582,27 +605,27 @@ $transparent-border: 1px solid transparent !default; } .dx-htmleditor-column-resizer { - width: 5px; + width: $table-resizer-thickness; top: 0; height: 100%; cursor: col-resize; } .dx-htmleditor-highlighted-column { - width: 3px; + width: $table-resizer-highlight-thickness; top: 0; height: 100%; } .dx-htmleditor-row-resizer { - height: 5px; + height: $table-resizer-thickness; left: 0; width: 100%; cursor: row-resize; } .dx-htmleditor-highlighted-row { - height: 3px; + height: $table-resizer-highlight-thickness; left: 0; width: 100%; } diff --git a/packages/devextreme-scss/scss/widgets/base/_icon_fonts.scss b/packages/devextreme-scss/scss/widgets/base/_icon_fonts.scss index 2bc650a5f1c8..8d2c8985e1c2 100644 --- a/packages/devextreme-scss/scss/widgets/base/_icon_fonts.scss +++ b/packages/devextreme-scss/scss/widgets/base/_icon_fonts.scss @@ -1,5 +1,6 @@ @use "sass:math"; @use "sass:map"; +@use "sass:meta"; @use "sass:selector"; .dx-icon-plus, @@ -213,9 +214,25 @@ } @mixin dx-icon-sizing($icon-size, $container-size: $icon-size, $borders-size: 0) { - $icon-paddings-dirty: $container-size - $icon-size; - $icon-paddings: $icon-paddings-dirty - $borders-size; - $icon-padding: math.floor(math.div($icon-paddings, 2)); + $icon-padding: null; + $icon-line-height: null; + + @if meta.type-of($icon-size) == number and meta.type-of($container-size) == number and meta.type-of($borders-size) == number { + $icon-paddings-dirty: $container-size - $icon-size; + $icon-paddings: $icon-paddings-dirty - $borders-size; + $icon-padding: math.floor(math.div($icon-paddings, 2)); + $icon-line-height: $container-size - $icon-paddings-dirty; + } @else { + @if $container-size == $icon-size and $borders-size == 0 { + $icon-padding: 0; + } @else if $borders-size == 0 { + $icon-padding: calc((#{$container-size} - #{$icon-size}) / 2); + } @else { + $icon-padding: calc((#{$container-size} - #{$icon-size} - #{$borders-size}) / 2); + } + + $icon-line-height: $icon-size; + } // Geometry width: $container-size; @@ -231,10 +248,19 @@ // Icon as font font-size: $icon-size; text-align: center; - line-height: $container-size - $icon-paddings-dirty; + line-height: $icon-line-height; } @mixin dx-icon-font-centered-sizing($icon-size, $position: absolute) { + $icon-center-offset: null; + + @if meta.type-of($icon-size) == number { + $icon-center-offset: math.div(-$icon-size, 2); + } @else { + + $icon-center-offset: calc(#{$icon-size} / -2); + } + font-size: $icon-size; text-align: center; line-height: $icon-size; @@ -244,9 +270,9 @@ display: block; width: $icon-size; top: 50%; - margin-top: math.div(-$icon-size, 2); + margin-top: $icon-center-offset; left: 50%; - margin-left: math.div(-$icon-size, 2); + margin-left: $icon-center-offset; } @if $position == relative { @@ -275,7 +301,7 @@ } @mixin dx-font-icon($glyph) { - font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes + font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes -- dx-icon-glyph-size: the icon font's own size, no icon scale in the package &::before { content: $glyph; @@ -643,7 +669,7 @@ $icons: ( } %icon-font { - font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes + font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes -- dx-icon-glyph-size: the icon font's own size, no icon scale in the package } @each $key, $glyph in $icons { diff --git a/packages/devextreme-scss/scss/widgets/base/_loadIndicator.scss b/packages/devextreme-scss/scss/widgets/base/_loadIndicator.scss index eafdf848b572..b4bc7ff51593 100644 --- a/packages/devextreme-scss/scss/widgets/base/_loadIndicator.scss +++ b/packages/devextreme-scss/scss/widgets/base/_loadIndicator.scss @@ -1,4 +1,5 @@ @use "sass:math"; +@use "sass:meta"; $loadindicator-width: 32px !default; $loadindicator-height: 32px !default; @@ -49,13 +50,7 @@ $loadindicator-height: 32px !default; top: 50%; left: 50%; position: absolute; - margin-top: math.div(-1 * $loadindicator-height, 2); - margin-left: math.div(-1 * $loadindicator-width, 2); - - &.dx-loadindicator { - margin-top: math.div(-1 * $loadindicator-height, 2); - margin-left: math.div(-1 * $loadindicator-width, 2); - } + transform: translate(-50%, -50%); } } diff --git a/packages/devextreme-scss/scss/widgets/base/_loadPanel.scss b/packages/devextreme-scss/scss/widgets/base/_loadPanel.scss index a04c0c8c48c8..d8f7c8e529ca 100644 --- a/packages/devextreme-scss/scss/widgets/base/_loadPanel.scss +++ b/packages/devextreme-scss/scss/widgets/base/_loadPanel.scss @@ -1,7 +1,9 @@ @use "./mixins" as *; +$loadpanel-content-padding: 10px !default; + .dx-loadpanel-content { - padding: 10px; + padding: $loadpanel-content-padding; text-align: center; @include user-select(none); diff --git a/packages/devextreme-scss/scss/widgets/base/_map.scss b/packages/devextreme-scss/scss/widgets/base/_map.scss index 0f61d97cd58d..1818a5aed423 100644 --- a/packages/devextreme-scss/scss/widgets/base/_map.scss +++ b/packages/devextreme-scss/scss/widgets/base/_map.scss @@ -1,3 +1,5 @@ +$map-marker-tooltip-margin: 10px !default; + .dx-map-container, .dx-map-shield { position: relative; @@ -19,5 +21,5 @@ } .dx-map-marker-tooltip { - margin: 10px; + margin: $map-marker-tooltip-margin; } diff --git a/packages/devextreme-scss/scss/widgets/base/_mask.scss b/packages/devextreme-scss/scss/widgets/base/_mask.scss new file mode 100644 index 000000000000..d0e744455f9d --- /dev/null +++ b/packages/devextreme-scss/scss/widgets/base/_mask.scss @@ -0,0 +1,7 @@ +@mixin masked-glyph-paint($color: currentColor) { + background-color: $color; + + @media (forced-colors: active) { + background-color: CanvasText; + } +} diff --git a/packages/devextreme-scss/scss/widgets/base/_menu.scss b/packages/devextreme-scss/scss/widgets/base/_menu.scss index a11dfd9b4d86..f5ce4e384c9a 100644 --- a/packages/devextreme-scss/scss/widgets/base/_menu.scss +++ b/packages/devextreme-scss/scss/widgets/base/_menu.scss @@ -1,5 +1,10 @@ @use "./mixins" as *; +$menu-separator-margin-inline-end: 15px !default; +$menu-separator-margin-bottom: 15px !default; +$menu-treeview-node-padding: 1px !default; +$menu-item-content-padding-inline-start: 15px !default; + .dx-menu { position: relative; } @@ -14,7 +19,7 @@ .dx-menu-separator { display: inline-block; - margin-inline-end: 15px; + margin-inline-end: $menu-separator-margin-inline-end; } } @@ -26,7 +31,7 @@ } .dx-menu-separator { - margin-bottom: 15px; + margin-bottom: $menu-separator-margin-bottom; } } @@ -60,10 +65,10 @@ } .dx-treeview-node-container:first-child > .dx-treeview-node { - padding: 1px; + padding: $menu-treeview-node-padding; .dx-item-content { - padding-inline-start: 15px; + padding-inline-start: $menu-item-content-padding-inline-start; } &:last-child { diff --git a/packages/devextreme-scss/scss/widgets/base/_menuBase.scss b/packages/devextreme-scss/scss/widgets/base/_menuBase.scss index 90ce0ecb4ba6..f0d953a3b3c4 100644 --- a/packages/devextreme-scss/scss/widgets/base/_menuBase.scss +++ b/packages/devextreme-scss/scss/widgets/base/_menuBase.scss @@ -1,5 +1,6 @@ @use "./mixins" as *; +$menubase-expand-arrow-container-width: 2em !default; // dx-relative .dx-menu-base { @include user-select(none); @@ -64,7 +65,7 @@ top: 0; inset-inline-end: 0; bottom: 0; - width: 2em; + width: $menubase-expand-arrow-container-width; .dx-menu-item-popout { height: 100%; diff --git a/packages/devextreme-scss/scss/widgets/base/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/_mixins.scss index 5a37174c9974..0b68aba1f8aa 100644 --- a/packages/devextreme-scss/scss/widgets/base/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/_mixins.scss @@ -1,5 +1,3 @@ -@use "sass:math"; - // stylelint-disable selector-class-pattern @mixin dx-clearfix-mixin() { @@ -127,7 +125,7 @@ pointer-events: none; position: absolute; top: 50%; - margin-top: math.div(-$indicator-size, 2); + transform: translateY(-50%); width: $indicator-size; height: $indicator-size; } diff --git a/packages/devextreme-scss/scss/widgets/base/_multiView.scss b/packages/devextreme-scss/scss/widgets/base/_multiView.scss index 286801aa0075..9633d2c97644 100644 --- a/packages/devextreme-scss/scss/widgets/base/_multiView.scss +++ b/packages/devextreme-scss/scss/widgets/base/_multiView.scss @@ -36,8 +36,8 @@ } .dx-multiview-item-hidden { - top: -9999px; - left: -9999px; + top: -9999px; // dx-structural: parks the hidden slide off-screen + left: -9999px; // dx-structural: parks the hidden slide off-screen visibility: hidden; .dx-accordion-item-opened .dx-accordion-item-body { diff --git a/packages/devextreme-scss/scss/widgets/base/_numberBox.scss b/packages/devextreme-scss/scss/widgets/base/_numberBox.scss index 5176a554a562..f5e5aa072dd0 100644 --- a/packages/devextreme-scss/scss/widgets/base/_numberBox.scss +++ b/packages/devextreme-scss/scss/widgets/base/_numberBox.scss @@ -1,5 +1,7 @@ @use "./mixins" as *; +$numberbox-spin-idle-opacity: 0.2 !default; + .dx-numberbox { position: relative; @@ -45,6 +47,8 @@ .dx-state-disabled { .dx-numberbox-spin-container { - opacity: 0.2; + @if $numberbox-spin-idle-opacity { + opacity: $numberbox-spin-idle-opacity; + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/_pagination.scss b/packages/devextreme-scss/scss/widgets/base/_pagination.scss index 9d27ee338ee5..6dff868a00e5 100644 --- a/packages/devextreme-scss/scss/widgets/base/_pagination.scss +++ b/packages/devextreme-scss/scss/widgets/base/_pagination.scss @@ -1,14 +1,34 @@ @use "./mixins" as *; -$pagination-paddings: 8px !default; +$pagination-page-margin-left: 5px !default; +$pagination-page-margin-right: 1px !default; +$pagination-first-child-margin-left: 1px !default; +$pagination-first-child-padding-left: 10px !default; +$pagination-first-child-padding-right: 9px !default; +$pagination-first-child-padding-top: 7px !default; +$pagination-first-child-padding-bottom: 8px !default; +$pagination-page-size-margin-left: 4px !default; +$pagination-page-index-width: 40px !default; +$pagination-pages-count-padding-left: 6px !default; + +$pagination-info-opacity: 0.7 !default; +$pagination-nav-disabled-opacity: 0.3 !default; + +$pagination-paddings: 8px; // dx-fixed-size: the shared source of the two fallbacks below $pagination-info-paddings: 9px !default; +$pagination-padding-block-fallback: $pagination-paddings !default; + .dx-pager, .dx-pagination { overflow: hidden; width: 100%; - padding-top: $pagination-paddings; - padding-bottom: $pagination-paddings; + + @if $pagination-padding-block-fallback { + padding-top: $pagination-padding-block-fallback; + padding-bottom: $pagination-padding-block-fallback; + } + line-height: normal; @include user-select(none); @@ -24,8 +44,8 @@ $pagination-info-paddings: 9px !default; .dx-page { display: inline-block; cursor: pointer; - margin-left: 5px; - margin-right: 1px; + margin-left: $pagination-page-margin-left; + margin-right: $pagination-page-margin-right; } .dx-separator { @@ -35,7 +55,10 @@ $pagination-info-paddings: 9px !default; .dx-info { display: inline-block; margin-right: $pagination-info-paddings; - opacity: 0.7; + + @if $pagination-info-opacity { + opacity: $pagination-info-opacity; + } } .dx-navigate-button { @@ -45,7 +68,10 @@ $pagination-info-paddings: 9px !default; box-sizing: content-box; &.dx-button-disable { - opacity: 0.3; + @if $pagination-nav-disabled-opacity { + opacity: $pagination-nav-disabled-opacity; + } + cursor: inherit; } } @@ -62,17 +88,17 @@ $pagination-info-paddings: 9px !default; .dx-page-size { &:first-child, &.dx-first-child { - margin-left: 1px; + margin-left: $pagination-first-child-margin-left; } display: inline-block; cursor: pointer; - padding-left: 10px; - padding-right: 9px; - padding-top: 7px; - padding-bottom: 8px; - margin-left: 4px; - margin-right: 1px; + padding-left: $pagination-first-child-padding-left; + padding-right: $pagination-first-child-padding-right; + padding-top: $pagination-first-child-padding-top; + padding-bottom: $pagination-first-child-padding-bottom; + margin-left: $pagination-page-size-margin-left; + margin-right: $pagination-page-margin-right; } } @@ -88,7 +114,7 @@ $pagination-info-paddings: 9px !default; display: inline-block; .dx-page-index { - width: 40px; + width: $pagination-page-index-width; } .dx-pages-count { @@ -97,7 +123,7 @@ $pagination-info-paddings: 9px !default; .dx-info-text, .dx-pages-count { - padding-left: 6px; + padding-left: $pagination-pages-count-padding-left; } .dx-page-index, @@ -120,7 +146,7 @@ $pagination-info-paddings: 9px !default; direction: ltr; &:first-child { - margin-left: 1px; + margin-left: $pagination-first-child-margin-left; } } diff --git a/packages/devextreme-scss/scss/widgets/base/_popup.scss b/packages/devextreme-scss/scss/widgets/base/_popup.scss index 449365910f36..980bdcc9a297 100644 --- a/packages/devextreme-scss/scss/widgets/base/_popup.scss +++ b/packages/devextreme-scss/scss/widgets/base/_popup.scss @@ -1,8 +1,12 @@ @use "sass:selector"; @use "./mixins" as *; +$popup-dialog-shader-color: #444 !default; + +$popup-title-padding: 10px !default; + .dx-popup-title { - padding: 10px; + padding: $popup-title-padding; -webkit-user-drag: none; @include user-select(none); @@ -92,7 +96,7 @@ .dx-dialog-root { .dx-overlay-shader { - background-color: #444; + background-color: $popup-dialog-shader-color; } } diff --git a/packages/devextreme-scss/scss/widgets/base/_progressBar.scss b/packages/devextreme-scss/scss/widgets/base/_progressBar.scss index 91604f6e9cc0..b04ab4a8bd1e 100644 --- a/packages/devextreme-scss/scss/widgets/base/_progressBar.scss +++ b/packages/devextreme-scss/scss/widgets/base/_progressBar.scss @@ -1,5 +1,10 @@ @use "./mixins" as *; +$progressbar-status-font-size: 12px !default; + +$progressbar-status-padding-right: 8px !default; +$progressbar-status-padding-left: 8px !default; + .dx-progressbar { .dx-position-left, .dx-position-right { @@ -34,11 +39,11 @@ } .dx-position-left .dx-progressbar-status { - padding-right: 8px; + padding-right: $progressbar-status-padding-right; } .dx-position-right .dx-progressbar-status { - padding-left: 8px; + padding-left: $progressbar-status-padding-left; } &::before { @@ -78,7 +83,7 @@ top: 0; left: 0; width: auto; - font-size: 12px; + font-size: $progressbar-status-font-size; } .dx-progressbar-animating-segment { diff --git a/packages/devextreme-scss/scss/widgets/base/_resizable.scss b/packages/devextreme-scss/scss/widgets/base/_resizable.scss index a7635864fec7..03f52ad0136e 100644 --- a/packages/devextreme-scss/scss/widgets/base/_resizable.scss +++ b/packages/devextreme-scss/scss/widgets/base/_resizable.scss @@ -1,6 +1,6 @@ $handle-offset: 0 !default; -$one-side-handle-size: 3px + $handle-offset !default; -$two-side-handle-size: 6px + $handle-offset !default; +$one-side-handle-size: 3px + $handle-offset; // dx-fixed-size: handle thickness ($handle-offset is 0) +$two-side-handle-size: 6px + $handle-offset; // dx-fixed-size: handle thickness ($handle-offset is 0) .dx-resizable { display: block; diff --git a/packages/devextreme-scss/scss/widgets/base/_scrollView.scss b/packages/devextreme-scss/scss/widgets/base/_scrollView.scss index 920800bdf699..21f44e241441 100644 --- a/packages/devextreme-scss/scss/widgets/base/_scrollView.scss +++ b/packages/devextreme-scss/scss/widgets/base/_scrollView.scss @@ -1,8 +1,27 @@ +@use "sass:meta"; @use "./mixins" as *; +$scrollview-top-pocket-width: 40px !default; +$scrollview-top-pocket-height: 40px !default; +$scrollview-pull-down-indicator-padding: 4px !default; +$scrollview-icon-pulldown-padding: 8px !default; +$scrollview-pull-down-indicator-width: 20px !default; +$scrollview-pull-down-image-margin: 0 20px !default; +$scrollview-pull-down-image-height: 50px !default; +$scrollview-scrollbottom-padding: 10px 0 !default; +$scrollview-scrollbottom-indicator-margin: 0 10px 0 0 !default; +$scrollview-scrollbottom-indicator-margin-rtl: 0 0 0 10px !default; + +$scrollview-pulldown-icon-font-size: 24px !default; $pulldown-height: 50px !default; $pulldown-padding: 15px !default; +$pulldown-top-offset: if( + meta.type-of($pulldown-height) == number and meta.type-of($pulldown-padding) == number, + -($pulldown-height + $pulldown-padding * 2), + calc(-1 * (#{$pulldown-height} + #{$pulldown-padding} * 2)) +) !default; + .dx-scrollable-native { &.dx-scrollable-native-generic { .dx-scrollview-top-pocket { @@ -13,8 +32,8 @@ $pulldown-padding: 15px !default; &.dx-scrollable-native-android { .dx-scrollview-top-pocket { - width: 40px; - height: 40px; + width: $scrollview-top-pocket-width; + height: $scrollview-top-pocket-height; left: 50%; position: absolute; z-index: 1; @@ -26,7 +45,7 @@ $pulldown-padding: 15px !default; height: 100%; width: 100%; left: -50%; - margin-left: -20px; + margin-left: -20px; // dx-fixed-size: centres the android pull-down on the pocket padding: 0; border-radius: 50%; @@ -37,7 +56,7 @@ $pulldown-padding: 15px !default; .dx-scrollview-pull-down-indicator { position: relative; top: 0; - padding: 4px; + padding: $scrollview-pull-down-indicator-padding; margin: 0; height: 100%; width: 100%; @@ -53,8 +72,8 @@ $pulldown-padding: 15px !default; .dx-icon-pulldown { width: 100%; height: 100%; - padding: 8px; - font-size: 24px; + padding: $scrollview-icon-pulldown-padding; + font-size: $scrollview-pulldown-icon-font-size; box-sizing: border-box; transition: opacity 0.2s; } @@ -106,7 +125,7 @@ $pulldown-padding: 15px !default; width: 100%; height: $pulldown-height; padding: $pulldown-padding 0; - top: -($pulldown-height + $pulldown-padding * 2); + top: $pulldown-top-offset; overflow: hidden; transform: translate(0, 0); -webkit-user-drag: none; @@ -125,17 +144,17 @@ $pulldown-padding: 15px !default; left: 0; top: 50%; display: inline-block; - margin: -15px 20px 0 15px; - width: 20px; + margin: -15px 20px 0 15px; // dx-fixed-size: centres the indicator on its own half-height + width: $scrollview-pull-down-indicator-width; -webkit-user-drag: none; } .dx-scrollview-pull-down-image { display: inline-block; vertical-align: middle; - margin: 0 20px; - width: 20px; - height: 50px; + margin: $scrollview-pull-down-image-margin; + width: $scrollview-pull-down-indicator-width; + height: $scrollview-pull-down-image-height; background-size: contain; -webkit-user-drag: none; @@ -185,7 +204,7 @@ $pulldown-padding: 15px !default; .dx-scrollview-scrollbottom { width: 100%; - padding: 10px 0; + padding: $scrollview-scrollbottom-padding; overflow: hidden; text-align: center; transform: translate(0, 0); @@ -200,13 +219,13 @@ $pulldown-padding: 15px !default; .dx-scrollview-scrollbottom-indicator { display: inline-block; - margin: 0 10px 0 0; + margin: $scrollview-scrollbottom-indicator-margin; -webkit-user-drag: none; } .dx-scrollview-scrollbottom-text { display: inline-block; - margin-top: -20px; + margin-top: -20px; // dx-fixed-size: pulls the text onto the indicator's line vertical-align: middle; -webkit-user-drag: none; } @@ -242,5 +261,5 @@ $pulldown-padding: 15px !default; } .dx-rtl .dx-scrollview-scrollbottom-indicator { - margin: 0 0 0 10px; + margin: $scrollview-scrollbottom-indicator-margin-rtl; } diff --git a/packages/devextreme-scss/scss/widgets/base/_slider.scss b/packages/devextreme-scss/scss/widgets/base/_slider.scss index f5fb5912d7c2..f8e4cf55d6a2 100644 --- a/packages/devextreme-scss/scss/widgets/base/_slider.scss +++ b/packages/devextreme-scss/scss/widgets/base/_slider.scss @@ -2,11 +2,15 @@ @use "./popover/mixins" as *; $slider-tooltip-content-height: 28px !default; -$slider-tooltip-arrow-height: 7px !default; +$slider-tooltip-arrow-height: 7px; // dx-fixed-size: feeds dx-popover-arrow-size, which divides by sqrt(2) +$slider-label-position-bottom-padding-bottom: 14px !default; +$slider-label-position-top-padding-top: 14px !default; + +$slider-label-font-size: 0.85em !default; // dx-relative .dx-slider-label { position: absolute; - font-size: 0.85em; + font-size: $slider-label-font-size; &:last-child { inset-inline-end: 0; @@ -14,11 +18,11 @@ $slider-tooltip-arrow-height: 7px !default; } .dx-slider-label-position-bottom { - padding-bottom: 14px; + padding-bottom: $slider-label-position-bottom-padding-bottom; } .dx-slider-label-position-top { - padding-top: 14px; + padding-top: $slider-label-position-top-padding-top; } .dx-slider { diff --git a/packages/devextreme-scss/scss/widgets/base/_sortable.scss b/packages/devextreme-scss/scss/widgets/base/_sortable.scss index 85a3551bb66b..ec040841672c 100644 --- a/packages/devextreme-scss/scss/widgets/base/_sortable.scss +++ b/packages/devextreme-scss/scss/widgets/base/_sortable.scss @@ -1,8 +1,27 @@ @use "sass:color"; +@use "sass:meta"; @use "./mixins" as *; +$sortable-clone-shadow-color-first: rgba(0, 0, 0, 0.1) !default; +$sortable-clone-shadow-color-second: rgba(0, 0, 0, 0.2) !default; + +/* + * dx-shadow-geometry: the whole shadow, so a theme can hand over a design-system role instead of + * two colours for a geometry frozen here. The default keeps the two-layer lift the older themes + * were built on. + */ +$sortable-clone-shadow: + 0 1px 3px $sortable-clone-shadow-color-first, + 0 6px 8px $sortable-clone-shadow-color-second !default; + +$sortable-clone-opacity: 0.9 !default; +$sortable-source-opacity: 0.5 !default; + $base-accent: null !default; +$sortable-placeholder-border: 1px solid !default; +$sortable-placeholder-inside-border-width: 2px !default; + .dx-sortable { overflow: hidden; } @@ -12,7 +31,7 @@ $base-accent: null !default; top: 0; left: 0; box-sizing: border-box; - opacity: 0.9; + opacity: $sortable-clone-opacity; z-index: $max-integer; .dx-inkripple { @@ -25,7 +44,7 @@ $base-accent: null !default; } .dx-sortable-source { - opacity: 0.5; + opacity: $sortable-source-opacity; } .dx-sortable-source-hidden { @@ -36,17 +55,17 @@ $base-accent: null !default; position: absolute; top: 0; left: 0; - border: 1px solid; + border: $sortable-placeholder-border; border-color: $base-accent; box-sizing: border-box; z-index: $max-integer; } .dx-sortable-placeholder-inside { - border-width: 2px; + border-width: $sortable-placeholder-inside-border-width; } .dx-sortable-dragging > * { - border-color: color.change($base-accent, $alpha: 0.5); - box-shadow: 0 1px 3px color.change(#000, $alpha: 0.1), 0 6px 8px color.change(#000, $alpha: 0.2); + border-color: if(meta.type-of($base-accent) == color, color.change($base-accent, $alpha: 0.5), rgb(from #{$base-accent} r g b / 0.5)); + box-shadow: $sortable-clone-shadow; } diff --git a/packages/devextreme-scss/scss/widgets/base/_speedDialAction.scss b/packages/devextreme-scss/scss/widgets/base/_speedDialAction.scss index 54d89276659b..7396cdf65ecd 100644 --- a/packages/devextreme-scss/scss/widgets/base/_speedDialAction.scss +++ b/packages/devextreme-scss/scss/widgets/base/_speedDialAction.scss @@ -1,6 +1,9 @@ @use "sass:math"; +@use "sass:meta"; @use "sass:color"; +$speeddialaction-fa-button-label-border-radius: 4px !default; + .dx-fa-button .dx-overlay-content { border-radius: 50%; cursor: pointer; @@ -21,8 +24,15 @@ $speed-dial-action-active-bg, $speed-dial-action-label-shadow, $button-default-bg, - $button-default-color + $button-default-color, + $button-default-hover-bg: null, + $button-default-active-bg: null ) { + $fa-main-radius: if(meta.type-of($main-action-button-size) == number, math.div($main-action-button-size, 2), calc(#{$main-action-button-size} / 2)); + $fa-action-radius: if(meta.type-of($action-button-size) == number, math.div($action-button-size, 2), calc(#{$action-button-size} / 2)); + $fa-main-icon-padding: if(meta.type-of($main-action-button-size) == number and meta.type-of($icon-size) == number, math.div($main-action-button-size - $icon-size, 2), calc((#{$main-action-button-size} - #{$icon-size}) / 2)); + $fa-action-icon-padding: if(meta.type-of($action-button-size) == number and meta.type-of($icon-size) == number, math.div($action-button-size - $icon-size, 2), calc((#{$action-button-size} - #{$icon-size}) / 2)); + .dx-fa-button { &.dx-fa-button-main { .dx-overlay-shader { @@ -35,11 +45,11 @@ background-color: $button-default-bg; color: $button-default-color; overflow: visible; - border-radius: math.div($main-action-button-size, 2); + border-radius: $fa-main-radius; box-shadow: $speed-dial-action-shadow; &.dx-state-hover { - background-color: color.adjust($button-default-bg, $lightness: -10%, $space: hsl); + background-color: if($button-default-hover-bg != null, $button-default-hover-bg, color.adjust($button-default-bg, $lightness: -10%, $space: hsl)); .dx-fa-button-icon { background-color: transparent; @@ -47,7 +57,7 @@ } &.dx-state-active { - background-color: color.adjust($button-default-bg, $lightness: -15%, $space: hsl); + background-color: if($button-default-active-bg != null, $button-default-active-bg, color.adjust($button-default-bg, $lightness: -15%, $space: hsl)); .dx-fa-button-icon { background-color: transparent; @@ -56,7 +66,7 @@ .dx-fa-button-icon, .dx-fa-button-icon-close { - padding: math.div($main-action-button-size - $icon-size, 2); + padding: $fa-main-icon-padding; box-shadow: none; background-color: transparent; } @@ -74,7 +84,7 @@ } .dx-inkripple { - border-radius: math.div($main-action-button-size, 2); + border-radius: $fa-main-radius; } } @@ -85,7 +95,7 @@ .dx-fa-button-icon, .dx-fa-button-icon-close { - padding: math.div($main-action-button-size - $icon-size, 2) 0 math.div($main-action-button-size - $icon-size, 2) math.div($main-action-button-size - $icon-size, 2); + padding: $fa-main-icon-padding 0 $fa-main-icon-padding $fa-main-icon-padding; } } } @@ -99,7 +109,7 @@ .dx-fa-button-icon, .dx-fa-button-icon-close { - padding: math.div($action-button-size - $icon-size, 2); + padding: $fa-action-icon-padding; width: $icon-size; height: $icon-size; box-sizing: content-box; @@ -158,7 +168,7 @@ background-color: $speed-dial-action-bg; color: $speed-dial-action-color; white-space: nowrap; - border-radius: 4px; + border-radius: $speeddialaction-fa-button-label-border-radius; padding: $label-padding; margin-right: $label-offset; box-shadow: $speed-dial-action-label-shadow; @@ -175,7 +185,7 @@ .dx-inkripple { overflow: hidden; - border-radius: math.div($action-button-size, 2); + border-radius: $fa-action-radius; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/_splitterBar.scss b/packages/devextreme-scss/scss/widgets/base/_splitterBar.scss index d4ef6e4c4b44..c993f2defe5f 100644 --- a/packages/devextreme-scss/scss/widgets/base/_splitterBar.scss +++ b/packages/devextreme-scss/scss/widgets/base/_splitterBar.scss @@ -1,5 +1,8 @@ @use "./mixins" as *; +$splitterbar-splitter-border-width: 7px !default; +$splitterbar-splitter-bar-width: 1px !default; + .dx-splitter-wrapper { height: 100%; width: 0; @@ -10,12 +13,12 @@ .dx-splitter-border { z-index: 997; height: 100%; - width: 7px; + width: $splitterbar-splitter-border-width; cursor: col-resize; .dx-splitter-bar { height: 100%; - width: 1px; + width: $splitterbar-splitter-bar-width; display: block; cursor: col-resize; z-index: $overlay-zindex - 1; diff --git a/packages/devextreme-scss/scss/widgets/base/_tagBox.scss b/packages/devextreme-scss/scss/widgets/base/_tagBox.scss index ab4d70eb717d..37426af9b186 100644 --- a/packages/devextreme-scss/scss/widgets/base/_tagBox.scss +++ b/packages/devextreme-scss/scss/widgets/base/_tagBox.scss @@ -12,7 +12,7 @@ @include hide-input-cursor(); // T278002 min-width: 0; - width: 0.1px; // T393423, T437866 + width: 0.1px; // T393423, T437866 -- dx-structural: a non-zero width the browsers need, not a designed size padding-left: 0; padding-right: 0; margin-left: 0; @@ -40,7 +40,7 @@ } .dx-tag { - max-width: calc(100% - 1px); + max-width: calc(100% - 1px); // dx-px-nudge: a pixel off the full width so the tag never overflows display: inline-flex; align-self: flex-start; } diff --git a/packages/devextreme-scss/scss/widgets/base/_tileView.scss b/packages/devextreme-scss/scss/widgets/base/_tileView.scss index e0a3cb00073f..4b79d1496073 100644 --- a/packages/devextreme-scss/scss/widgets/base/_tileView.scss +++ b/packages/devextreme-scss/scss/widgets/base/_tileView.scss @@ -1,3 +1,5 @@ +$tileview-wrapper-height: 1px !default; + .dx-tileview { div.dx-scrollable-container { overflow-y: hidden; // anyway, tagName added for increase priorities @@ -21,5 +23,5 @@ .dx-tileview-wrapper { position: relative; - height: 1px; + height: $tileview-wrapper-height; } diff --git a/packages/devextreme-scss/scss/widgets/base/_toast.scss b/packages/devextreme-scss/scss/widgets/base/_toast.scss index 1b472104f022..37a6100c527a 100644 --- a/packages/devextreme-scss/scss/widgets/base/_toast.scss +++ b/packages/devextreme-scss/scss/widgets/base/_toast.scss @@ -1,3 +1,9 @@ +$toast-icon-width: 35px !default; +$toast-icon-height: 35px !default; +$toast-icon-margin-right: 10px !default; +$toast-icon-margin-left: 10px !default; +$toast-stack-gap: 3px !default; + .dx-toast-content { display: flex; align-items: center; @@ -6,11 +12,11 @@ .dx-toast-icon { display: inline-flex; background-size: contain; - width: 35px; - height: 35px; + width: $toast-icon-width; + height: $toast-icon-height; background-position: left center; background-repeat: no-repeat; - margin-right: 10px; + margin-right: $toast-icon-margin-right; } .dx-toast-message { @@ -19,7 +25,7 @@ .dx-rtl { .dx-toast-icon { - margin-left: 10px; + margin-left: $toast-icon-margin-left; margin-right: 0; } } @@ -27,7 +33,7 @@ .dx-toast-stack { position: fixed; display: flex; - gap: 3px; + gap: $toast-stack-gap; align-items: center; z-index: 9500; diff --git a/packages/devextreme-scss/scss/widgets/base/_tooltip.scss b/packages/devextreme-scss/scss/widgets/base/_tooltip.scss index c808a6f38222..d51f1dc3936d 100644 --- a/packages/devextreme-scss/scss/widgets/base/_tooltip.scss +++ b/packages/devextreme-scss/scss/widgets/base/_tooltip.scss @@ -1,7 +1,12 @@ +$tooltip-overlay-content-min-width: 34px !default; +$tooltip-overlay-content-min-height: 26px !default; +$tooltip-popup-content-padding: 12px 17px !default; + +$tooltip-content-font-size: 0.85em !default; // dx-relative .dx-tooltip-wrapper { .dx-overlay-content { - min-width: 34px; - min-height: 26px; + min-width: $tooltip-overlay-content-min-width; + min-height: $tooltip-overlay-content-min-height; text-align: center; line-height: 0; @@ -14,8 +19,8 @@ .dx-popup-content { display: inline-block; - padding: 12px 17px; - font-size: 0.85em; + padding: $tooltip-popup-content-padding; + font-size: $tooltip-content-font-size; line-height: normal; white-space: nowrap; } diff --git a/packages/devextreme-scss/scss/widgets/base/_ui.scss b/packages/devextreme-scss/scss/widgets/base/_ui.scss index 01861bbd9f96..79113adfd114 100644 --- a/packages/devextreme-scss/scss/widgets/base/_ui.scss +++ b/packages/devextreme-scss/scss/widgets/base/_ui.scss @@ -10,8 +10,8 @@ .dx-hidden-input { position: fixed; - top: -10px; - left: -10px; + top: -10px; // dx-structural: parks the hidden input off-screen + left: -10px; // dx-structural: parks the hidden input off-screen width: 0; height: 0; } @@ -38,8 +38,8 @@ .dx-screen-reader-only { position: absolute; - height: 1px; - width: 1px; + height: 1px; // dx-structural: the screen-reader-only clipping box, not a designed size + width: 1px; // dx-structural: the screen-reader-only clipping box, not a designed size overflow: hidden; white-space: nowrap; clip: rect(0 0 0 0); @@ -223,7 +223,7 @@ .dx-android-pop-animation { &.dx-enter.dx-forward, &.dx-leave.dx-leave-active.dx-backward { - transform: translate3d(0, 150px, 0); + transform: translate3d(0, 150px, 0); // dx-fixed-size: how far the android pop animation travels opacity: 0; } @@ -345,7 +345,7 @@ .dx-3d-drop-animation { &.dx-enter, &.dx-leave.dx-leave-active { - transform: rotate3d(1, 0, 0, 10deg) translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); + transform: rotate3d(1, 0, 0, 10deg) translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the 3d drop animation travels opacity: 0; } @@ -359,7 +359,7 @@ .dx-fade-drop-animation { &.dx-enter, &.dx-leave.dx-leave-active { - transform: translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); + transform: translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the fade drop animation travels opacity: 0; } @@ -373,7 +373,7 @@ .dx-fade-rise-animation { &.dx-enter, &.dx-leave.dx-leave-active { - transform: translate3d(0, 10px, 0) scale3d(1.1, 1.1, 1.1); + transform: translate3d(0, 10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the fade rise animation travels opacity: 0; } diff --git a/packages/devextreme-scss/scss/widgets/base/_validation.scss b/packages/devextreme-scss/scss/widgets/base/_validation.scss index 14a4c5cdb0a9..24b6e0b2657a 100644 --- a/packages/devextreme-scss/scss/widgets/base/_validation.scss +++ b/packages/devextreme-scss/scss/widgets/base/_validation.scss @@ -1,3 +1,9 @@ +$validation-summary-margin-top: 20px !default; +$validation-message-content-padding: 10px !default; + +$validation-message-font-size: 0.85em !default; // dx-relative +$validation-summary-item-border-bottom-width: 1px !default; + @mixin dx-base-validation($summary-color, $message-color, $message-bg-color, $border-radius) { .dx-validationsummary-item { color: $summary-color; @@ -38,7 +44,7 @@ } .dx-form-validation-summary { - margin-top: 20px; + margin-top: $validation-summary-margin-top; } } @@ -60,8 +66,8 @@ & > .dx-overlay-content { display: inline-block; border-width: 0; - padding: 10px; - font-size: 0.85em; + padding: $validation-message-content-padding; + font-size: $validation-message-font-size; line-height: normal; word-wrap: break-word; } @@ -76,7 +82,7 @@ } .dx-validationsummary-item-content { - border-bottom: 1px dashed; + border-bottom: $validation-summary-item-border-bottom-width dashed; display: inline-block; line-height: normal; } diff --git a/packages/devextreme-scss/scss/widgets/base/buttonGroup/_index.scss b/packages/devextreme-scss/scss/widgets/base/buttonGroup/_index.scss index a37fb6e1add9..574699f42005 100644 --- a/packages/devextreme-scss/scss/widgets/base/buttonGroup/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/buttonGroup/_index.scss @@ -1,5 +1,7 @@ @use "../mixins" as *; +$buttongroup-mode-text-column-gap: 1px !default; + .dx-buttongroup { display: inline-block; } @@ -11,7 +13,7 @@ width: 100%; .dx-buttongroup-mode-text & { - column-gap: 1px; + column-gap: $buttongroup-mode-text-column-gap; } } diff --git a/packages/devextreme-scss/scss/widgets/base/calendar/_calendar.scss b/packages/devextreme-scss/scss/widgets/base/calendar/_calendar.scss index 7174d09e7497..0355d20ca15d 100644 --- a/packages/devextreme-scss/scss/widgets/base/calendar/_calendar.scss +++ b/packages/devextreme-scss/scss/widgets/base/calendar/_calendar.scss @@ -1,5 +1,12 @@ @use "../mixins" as *; +$calendar-border-width: 1px !default; +$calendar-multiview-table-padding: 0 10px !default; + +$calendar-week-day-header-font-size: 10px !default; +$calendar-week-day-header-font-weight: 500 !default; + +$calendar-week-number-cell-width: 2em !default; // dx-relative .dx-calendar { @include user-select(none); @@ -8,7 +15,7 @@ direction: ltr; flex-direction: column; justify-content: space-between; - border: 1px solid transparent; + border: $calendar-border-width solid transparent; &.dx-rtl { direction: rtl; @@ -68,8 +75,8 @@ } thead th { - font-weight: 500; - font-size: 10px; + font-weight: $calendar-week-day-header-font-weight; + font-size: $calendar-week-day-header-font-size; @include dx-overflow(); } @@ -88,7 +95,7 @@ align-items: center; justify-content: center; text-align: center; - width: 2em; + width: $calendar-week-number-cell-width; inset: 0; } } @@ -131,7 +138,7 @@ } table { - padding: 0 10px; + padding: $calendar-multiview-table-padding; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/calendar/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/calendar/_mixins.scss index 76cd504fcd1c..1e615a4fd848 100644 --- a/packages/devextreme-scss/scss/widgets/base/calendar/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/calendar/_mixins.scss @@ -1,4 +1,5 @@ @use "sass:color"; +@use "sass:meta"; @mixin dx-calendar-mixin( $calendar-bg, @@ -16,7 +17,7 @@ gap: $calendar-element-padding; &.dx-calendar-with-footer { - height: $calendar-height + $calendar-element-padding + $footer-button-height; + height: if(meta.type-of($calendar-height) == number and meta.type-of($calendar-element-padding) == number and meta.type-of($footer-button-height) == number, $calendar-height + $calendar-element-padding + $footer-button-height, calc(#{$calendar-height} + #{$calendar-element-padding} + #{$footer-button-height})); } &.dx-calendar-multiview { @@ -128,6 +129,8 @@ $calendar-cell-other-hover-color, $calendar-cell-hover-border-color, $calendar-cell-range-border-radius, + $cell-today-border-width: 2px, + $cell-contoured-ring-width: 2px, ) { .dx-calendar-cell { color: $cell-text-color; @@ -152,7 +155,7 @@ &.dx-calendar-today { span { - border: 2px solid; + border: $cell-today-border-width solid; border-color: $base-accent; } } @@ -179,7 +182,7 @@ &.dx-calendar-contoured-date { span { - box-shadow: 0 0 0 2px $cell-contoured-border-color; + box-shadow: 0 0 0 $cell-contoured-ring-width $cell-contoured-border-color; } } @@ -239,7 +242,7 @@ &.dx-calendar-empty-cell { cursor: default; - color: color.change($cell-text-color, $alpha: 0.24); + color: if(meta.type-of($cell-text-color) == color, color.change($cell-text-color, $alpha: 0.24), rgb(from #{$cell-text-color} r g b / 0.24)); &.dx-state-hover, &.dx-state-active { diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/_index.scss b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/_index.scss index f3e094c5aff3..1fdee364b285 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/_index.scss @@ -19,9 +19,9 @@ } &:focus-visible { - outline: 2px solid; + outline: 2px solid; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with outline-color: $cardview-card--focused-outline-color; - outline-offset: -2px; + outline-offset: -2px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with } } diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/header/_index.scss b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/header/_index.scss index ae28a7e5f713..70216956dd1e 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/header/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/content/card/header/_index.scss @@ -7,7 +7,7 @@ height: $cardview-card__header-height; .dx-toolbar { - padding: 0 12px; + padding: 0 12px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with border-radius: $cardview-card-border-radius $cardview-card-border-radius 0 0; background-color: transparent; @@ -39,8 +39,8 @@ .dx-toolbar-item-content::before { content: ""; - width: 20px; - height: 20px; + width: 20px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with + height: 20px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with display: inline-block; pointer-events: none; } diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/no_data/_index.scss b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/no_data/_index.scss index 945055c5aaab..8fdc113f1420 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/content_view/no_data/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/content_view/no_data/_index.scss @@ -7,7 +7,7 @@ align-items: center; justify-content: center; background-color: $cardview-nodata-view__icon-bg-color; - border-radius: 999px; + border-radius: 999px; // dx-fixed-size: a pill radius; the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with margin: $cardview-nodata-view__icon-container-margin; .dx-icon { diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/_index.scss b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/_index.scss index f03e72471f49..83db04979e65 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/_index.scss @@ -1,3 +1,4 @@ +@use "sass:meta"; @use "./item"; @use "./variables" as *; @@ -6,7 +7,7 @@ 2px maximal right header item padding + 4px maximal dxSortable placeholder (drop indicator) width We can increase this number up to the CardView root padding without issues */ -$sortable-side-offset: 6px !default; +$sortable-side-offset: 6px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with .dx-cardview-header-item-sorting { display: flex; @@ -46,7 +47,7 @@ $sortable-side-offset: 6px !default; display: flex; align-items: center; justify-content: center; - gap: 4px; + gap: 4px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with .dx-icon { color: $cardview-header-panel__dropzone__icon-color; @@ -75,7 +76,7 @@ $sortable-side-offset: 6px !default; Please note, that header-item-container paddings taken into account here */ &--with-header-items { - margin: 0 ($sortable-side-offset - $cardview-header-item__right-padding) 0 ($sortable-side-offset - $cardview-header-item__left-padding); + margin: 0 if(meta.type-of($sortable-side-offset) == number and meta.type-of($cardview-header-item__right-padding) == number, ($sortable-side-offset - $cardview-header-item__right-padding), calc(#{$sortable-side-offset} - #{$cardview-header-item__right-padding})) 0 if(meta.type-of($sortable-side-offset) == number and meta.type-of($cardview-header-item__left-padding) == number, ($sortable-side-offset - $cardview-header-item__left-padding), calc(#{$sortable-side-offset} - #{$cardview-header-item__left-padding})); } &--empty { diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_index.scss b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_index.scss index 6e341df7730b..190ac09490a8 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_index.scss @@ -6,7 +6,7 @@ align-items: center; padding: $cardview-header-panel__item-padding-vertical $cardview-header-panel__item-padding-horizontal; user-select: none; - gap: 4px; + gap: 4px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with border: solid $cardview-header-panel__item-border-width; border-radius: $cardview-header-panel__item-border-radius; line-height: $cardview-header-panel__item-line-height; @@ -52,9 +52,9 @@ } &:focus-visible { - outline: 2px solid; + outline: 2px solid; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with outline-color: $cardview-header-panel__item--focused-outline-color; - outline-offset: -2px; + outline-offset: -2px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with } &.dx-sortable-source { @@ -83,9 +83,16 @@ border-color: $cardview-header-panel__item--dragged-border-color; color: $cardview-header-panel__item--dragged-text-color; font-weight: $cardview-header-panel__item--dragged-text-weight; - box-shadow: - 0 1px 3px $cardview-header-panel__item--dragged-box-shadow-color, - 0 6px 8px $cardview-header-panel__item--dragged-box-shadow-color; + + // dx-shadow-geometry: the two-layer lift older themes were built on, for a theme passing none + box-shadow: if( + $cardview-header-panel__item--dragged-box-shadow, + $cardview-header-panel__item--dragged-box-shadow, + ( + 0 1px 3px $cardview-header-panel__item--dragged-box-shadow-color, + 0 6px 8px $cardview-header-panel__item--dragged-box-shadow-color + ) + ); .dx-icon { color: $cardview-header-panel__item--dragged__allowance-icon-color; diff --git a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_variables.scss b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_variables.scss index ededf0c36a7a..f2604a112264 100644 --- a/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_variables.scss +++ b/packages/devextreme-scss/scss/widgets/base/cardView/header_panel/item/_variables.scss @@ -41,3 +41,5 @@ $cardview-header-panel__item--dragged-text-weight: null !default; $cardview-header-panel__item--dragged__allowance-icon-color: null !default; $cardview-header-panel__item--dragged__prohibition-icon-color: null !default; $cardview-header-panel__item--dragged-box-shadow-color: null !default; + +$cardview-header-panel__item--dragged-box-shadow: null !default; diff --git a/packages/devextreme-scss/scss/widgets/base/chat/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/_index.scss index a937dbfbf9bb..0677a81192c2 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/_index.scss @@ -1,11 +1,34 @@ +$chat-disabled-opacity: 0.5 !default; +$chat-file-name-font-weight: 600 !default; +$chat-editing-preview-caption-font-weight: 500 !default; + +$chat-messagebox-border-block-start-width: 1px !default; +$chat-messagebubble-padding-image: 4px !default; +$chat-messagebubble-border-radius-image: 8px !default; +$chat-messagebubble-max-width-image: 400px !default; +$chat-messagebubble-max-height-image: 400px !default; + @use "../mixins" as *; -@use "layout/chat" as *; +@use "layout/chat" as * with ( + $disabled-opacity: $chat-disabled-opacity, +); @use "layout/chat-avatar" as *; -@use "layout/chat-fileview" as *; +@use "layout/chat-fileview" as * with ( + $file-name-font-weight: $chat-file-name-font-weight, +); @use "layout/chat-alertlist" as *; -@use "layout/chat-messagebox" as *; -@use "layout/chat-messagebox-editing-preview" as *; -@use "layout/chat-messagebubble" as *; +@use "layout/chat-messagebox" as * with ( + $messagebox-border-block-start-width: $chat-messagebox-border-block-start-width, +); +@use "layout/chat-messagebox-editing-preview" as * with ( + $editing-preview-caption-font-weight: $chat-editing-preview-caption-font-weight, +); +@use "layout/chat-messagebubble" as * with ( + $messagebubble-padding-image: $chat-messagebubble-padding-image, + $messagebubble-border-radius-image: $chat-messagebubble-border-radius-image, + $messagebubble-max-width-image: $chat-messagebubble-max-width-image, + $messagebubble-max-height-image: $chat-messagebubble-max-height-image, +); @use "layout/chat-confirmationpopup" as *; @use "layout/chat-messagegroup" as *; @use "layout/chat-messagelist" as *; diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_index.scss index dab10e4c6c92..159eeef58c57 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_index.scss @@ -1,3 +1,5 @@ +$file-name-font-weight: null !default; + @use "../../../mixins" as *; .dx-chat-file { @@ -18,7 +20,7 @@ display: block; flex: 1 1 auto; min-width: 0; - font-weight: 600; + font-weight: $file-name-font-weight; line-height: 1.2857; @include dx-overflow(); diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_mixins.scss index 0371918942f6..58ad56c6c93f 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-fileview/_mixins.scss @@ -1,3 +1,5 @@ +@use "sass:meta"; + @mixin chat-file( $chat-file-container-width, $chat-file-container-padding, @@ -31,7 +33,7 @@ } .dx-chat-file-name { - margin-inline-end: $chat-file-base-section-gap * 2; + margin-inline-end: if(meta.type-of($chat-file-base-section-gap) == number, $chat-file-base-section-gap * 2, calc(#{$chat-file-base-section-gap} * 2)); margin-inline-start: $chat-file-base-section-gap; } diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_index.scss index b836460cb3be..224304b6de11 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_index.scss @@ -1,3 +1,5 @@ +$editing-preview-caption-font-weight: null !default; + @use "../chat" as *; .dx-chat-editing-preview { @@ -27,7 +29,7 @@ } .dx-chat-editing-preview-caption { - font-weight: 500; + font-weight: $editing-preview-caption-font-weight; } .dx-chat-editing-preview-text { diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_mixins.scss index 261b766cfb84..82cc6d97dc36 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox-editing-preview/_mixins.scss @@ -1,3 +1,5 @@ +@use "sass:meta"; + @mixin message-editing-preview( $preview-padding, $message-row-gap, @@ -14,7 +16,7 @@ .dx-chat-editing-preview-content { gap: $message-row-gap; - padding-inline-start: $preview-padding + $border-width; + padding-inline-start: if(meta.type-of($preview-padding) == number and meta.type-of($border-width) == number, $preview-padding + $border-width, calc(#{$preview-padding} + #{$border-width})); padding-inline-end: $preview-padding; } diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox/_index.scss index 020268c74563..b7397cca0ded 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebox/_index.scss @@ -1,7 +1,9 @@ +$messagebox-border-block-start-width: null !default; + .dx-chat-messagebox { display: flex; flex-direction: column; - border-top-width: 1px; + border-top-width: $messagebox-border-block-start-width; border-top-style: solid; } diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_index.scss index ac7c4e3b5365..dbf27065bd7d 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagebubble/_index.scss @@ -1,7 +1,8 @@ -$chat-messagebubble-padding-image: 4px !default; -$chat-messagebubble-border-radius-image: 8px !default; -$chat-messagebubble-max-width-image: 400px !default; -$chat-messagebubble-max-height-image: 400px !default; +$messagebubble-padding-image: null !default; +$messagebubble-border-radius-image: null !default; +$messagebubble-max-width-image: null !default; +$messagebubble-max-height-image: null !default; +$chat-messagebubble-content-max-width: 82.5% !default; // dx-relative-% .dx-chat-messagegroup-content { display: flex; @@ -24,7 +25,7 @@ $chat-messagebubble-max-height-image: 400px !default; } &.dx-has-image { - padding: $chat-messagebubble-padding-image; + padding: $messagebubble-padding-image; } .dx-chat-messagebubble-content:empty { @@ -47,7 +48,7 @@ $chat-messagebubble-max-height-image: 400px !default; .dx-chat-messagegroup-alignment-end { .dx-chat-messagegroup-content { align-items: flex-end; - max-width: 82.5%; + max-width: $chat-messagebubble-content-max-width; } .dx-chat-messagebubble { @@ -57,9 +58,9 @@ $chat-messagebubble-max-height-image: 400px !default; } .dx-chat-messagebubble-image { - border-radius: $chat-messagebubble-border-radius-image; - max-width: $chat-messagebubble-max-width-image; - max-height: $chat-messagebubble-max-height-image; + border-radius: $messagebubble-border-radius-image; + max-width: $messagebubble-max-width-image; + max-height: $messagebubble-max-height-image; width: 100%; display: block; } diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagelist/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagelist/_mixins.scss index 612aaaad8857..f70805be28b6 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagelist/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat-messagelist/_mixins.scss @@ -1,4 +1,5 @@ @use "sass:math"; +@use "sass:meta"; @mixin chat-messagelist( $padding, @@ -51,7 +52,7 @@ .dx-chat-messagelist-empty-image { color: $messagelist-empty-icon-color; background-color: $messagelist-empty-icon-background-color; - padding: math.div($messagelist-empty-icon-box-size - $messagelist-empty-icon-size, 2); + padding: if(meta.type-of($messagelist-empty-icon-box-size) == number and meta.type-of($messagelist-empty-icon-size) == number, math.div($messagelist-empty-icon-box-size - $messagelist-empty-icon-size, 2), calc((#{$messagelist-empty-icon-box-size} - #{$messagelist-empty-icon-size}) / 2)); margin-bottom: $messagelist-empty-icon-margin-bottom; &::before { diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_index.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_index.scss index f5856d5dbfee..a88c7cd5d0f0 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_index.scss @@ -1,3 +1,5 @@ +$disabled-opacity: 0.5 !default; + .dx-chat { display: flex; flex-direction: column; @@ -8,7 +10,9 @@ overflow-y: auto; &.dx-state-disabled { - opacity: 0.5; + @if $disabled-opacity { + opacity: $disabled-opacity; + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_mixins.scss index bc3fc147187e..0120d523ae63 100644 --- a/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/chat/layout/chat/_mixins.scss @@ -1,11 +1,12 @@ @mixin chat( $background-color, $border-color, - $border-radius + $border-radius, + $border-width: 1px, ) { .dx-chat { background-color: $background-color; - border: 1px solid; + border: $border-width solid; border-color: $border-color; border-radius: $border-radius; } diff --git a/packages/devextreme-scss/scss/widgets/base/checkBox/_index.scss b/packages/devextreme-scss/scss/widgets/base/checkBox/_index.scss index 6db158b49da9..bdb74c99b68e 100644 --- a/packages/devextreme-scss/scss/widgets/base/checkBox/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/checkBox/_index.scss @@ -1,6 +1,8 @@ @use "../mixins" as *; @use "./mixins" as *; +$checkbox-text-padding-inline-start: 5px !default; + .dx-checkbox { display: inline-block; cursor: pointer; @@ -38,7 +40,10 @@ white-space: pre-wrap; word-wrap: break-word; line-height: normal; - padding-inline-start: 5px; + + @if $checkbox-text-padding-inline-start { + padding-inline-start: $checkbox-text-padding-inline-start; + } } .dx-state-disabled { diff --git a/packages/devextreme-scss/scss/widgets/base/colorBox/_index.scss b/packages/devextreme-scss/scss/widgets/base/colorBox/_index.scss index 634e06924b07..6ddecb9caec1 100644 --- a/packages/devextreme-scss/scss/widgets/base/colorBox/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/colorBox/_index.scss @@ -4,6 +4,12 @@ $colorbox-input-left-padding: 40px !default; +$colorbox-texteditor-input-container-width: 15px !default; +$colorbox-texteditor-input-container-height: 15px !default; +$colorbox-texteditor-input-container-inset-inline-start: 14px !default; + +$colorbox-toolbar-item-padding-right: 10px !default; + .dx-colorbox-input-container { &.dx-colorbox-color-is-not-defined { .dx-colorbox-color-result-preview { @@ -12,7 +18,7 @@ $colorbox-input-left-padding: 40px !default; } .dx-placeholder { - max-width: calc(100% - 25px); + max-width: calc(100% - 25px); // dx-fixed-size: room the colour preview and its gap take from the placeholder } } @@ -24,10 +30,10 @@ $colorbox-input-left-padding: 40px !default; position: absolute; top: 50%; z-index: 1; - width: 15px; - height: 15px; - margin-top: -7.5px; - inset-inline-start: 14px; + width: $colorbox-texteditor-input-container-width; + height: $colorbox-texteditor-input-container-height; + transform: translateY(-50%); + inset-inline-start: $colorbox-texteditor-input-container-inset-inline-start; } } @@ -53,7 +59,7 @@ $colorbox-input-left-padding: 40px !default; .dx-popup-bottom { .dx-toolbar-item:first-child { - padding-right: 10px; + padding-right: $colorbox-toolbar-item-padding-right; } } diff --git a/packages/devextreme-scss/scss/widgets/base/colorView/_index.scss b/packages/devextreme-scss/scss/widgets/base/colorView/_index.scss index 9eb36c7c7061..6f58d25fd630 100644 --- a/packages/devextreme-scss/scss/widgets/base/colorView/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/colorView/_index.scss @@ -3,15 +3,33 @@ $color-view-container-width: 450px !default; $color-view-palette-width: 288px !default; $color-view-palette-height: 299px !default; -$color-view-alpha-width: 292px !default; +$color-view-alpha-cell-width: 292px !default; $color-view-hue-scale-width: 18px !default; $color-view-hue-scale-height: $color-view-palette-height !default; +$color-view-hue-scale-wrapper-height: $color-view-hue-scale-height + 2 !default; -$colorview-palette-handle-size: 28px !default; +$colorview-palette-handle-size: 28px; // dx-fixed-size: diameter of the round palette handle, drawn as rings at 6/7/12/13px $colorview-transparent-background-color: #ccc !default; -$colorview-handle-first-side-size: 36px !default; -$colorview-handle-second-side-size: 17px !default; +$colorview-handle-first-side-size: 36px; // dx-fixed-size: long side of the scale handles, drawn by the inset shadows +$colorview-handle-second-side-size: 17px; // dx-fixed-size: short side of the scale handles, drawn by the inset shadows + +$color-view-label-hex-margin: 10px 0 0 0 !default; +$color-view-alpha-label-margin-inline-start: 43px !default; +$color-view-alpha-label-margin-inline-start-rtl: 41px !default; +$color-view-alpha-label-width: 115px !default; +$color-view-textbox-width: 69px !default; +$color-view-textbox-margin: 1px 1px 10px 0 !default; +$color-view-alpha-row-margin-block-start: 10px !default; +$color-view-hue-scale-cell-margin-inline-start: 19px !default; +$color-view-controls-width: 90px !default; +$color-view-controls-margin-inline-start: 27px !default; +$color-view-controls-margin-inline-start-rtl: 25px !default; +$color-view-color-preview-width: 86px !default; +$color-view-color-preview-height: 40px !default; +$color-view-alpha-scale-height: 20px !default; +$color-view-alpha-cell-margin-block: 6px !default; +$color-view-apply-button-margin-inline-end: 10px !default; .dx-colorview-container { width: $color-view-container-width; @@ -24,18 +42,18 @@ $colorview-handle-second-side-size: 17px !default; white-space: normal; &.dx-colorview-label-hex { - margin: 10px 0 0 0; + margin: $color-view-label-hex-margin; } &.dx-colorview-alpha-channel-label { - margin-left: 43px; - width: 115px; + margin-left: $color-view-alpha-label-margin-inline-start; + width: $color-view-alpha-label-width; } .dx-texteditor { - width: 69px; + width: $color-view-textbox-width; float: right; - margin: 1px 1px 10px 0; + margin: $color-view-textbox-margin; } } @@ -44,7 +62,7 @@ $colorview-handle-second-side-size: 17px !default; margin-bottom: 0; &.dx-colorview-apply-button { - margin-right: 10px; + margin-right: $color-view-apply-button-margin-inline-end; margin-left: 0; } @@ -57,14 +75,14 @@ $colorview-handle-second-side-size: 17px !default; .dx-colorview-container-row { overflow: hidden; - padding: 1px 0; + padding: 1px 0; // dx-line-width: room for the 1px hairline ring the cells inside carry, which overflow: hidden would clip &:first-child { margin-top: 0; } &.dx-colorview-alpha-channel-row { - margin-top: 10px; + margin-top: $color-view-alpha-row-margin-block-start; } } @@ -93,13 +111,13 @@ $colorview-handle-second-side-size: 17px !default; width: $colorview-handle-first-side-size; height: $colorview-handle-second-side-size; top: 0; - left: -7px; + left: -7px; // dx-px-nudge: centres the handle across the hue scale, counting its own border } .dx-colorview-alpha-channel-handle { width: $colorview-handle-second-side-size; height: $colorview-handle-first-side-size; - top: -6px; + top: -6px; // dx-px-nudge: centres the handle across the alpha scale, counting its own border left: 0; } @@ -117,12 +135,12 @@ $colorview-handle-second-side-size: 17px !default; .dx-colorview-alpha-channel-wrapper, .dx-colorbox-input-container::after { background-image: linear-gradient(45deg, $colorview-transparent-background-color 25%, transparent 25%, transparent 74%, $colorview-transparent-background-color 75%, $colorview-transparent-background-color), linear-gradient(45deg, $colorview-transparent-background-color 25%, transparent 25%, transparent 74%, $colorview-transparent-background-color 75%, $colorview-transparent-background-color); - background-size: 16px 16px; - background-position: 0 0, 8px 8px; + background-size: 16px 16px; // dx-fixed-size: tile of the transparency checkerboard, drawn by two offset gradients + background-position: 0 0, 8px 8px; // dx-fixed-size: half the tile, which is what makes the two gradients read as a checkerboard } .dx-colorview-alpha-channel-wrapper { - background-position: 0 6px, 8px 14px; + background-position: 0 6px, 8px 14px; // dx-fixed-size: the same checkerboard, shifted to sit inside the alpha scale } .dx-colorbox-input-container { @@ -159,37 +177,37 @@ $colorview-handle-second-side-size: 17px !default; .dx-colorview-alpha-channel-scale { width: $color-view-palette-width; - height: 20px; + height: $color-view-alpha-scale-height; position: relative; } .dx-colorview-hue-scale-cell { - margin-left: 19px; + margin-left: $color-view-hue-scale-cell-margin-inline-start; position: relative; } .dx-colorview-hue-scale-wrapper { - height: $color-view-hue-scale-height + 2; + height: $color-view-hue-scale-wrapper-height; } .dx-colorview-controls-container { position: relative; - width: 90px; - margin-left: 27px; + width: $color-view-controls-width; + margin-left: $color-view-controls-margin-inline-start; } .dx-colorview-color-preview { - width: 86px; - height: 40px; + width: $color-view-color-preview-width; + height: $color-view-color-preview-height; } .dx-colorview-alpha-channel-cell { - margin: 6px 0; + margin: $color-view-alpha-cell-margin-block 0; position: relative; - width: $color-view-alpha-width; + width: $color-view-alpha-cell-width; .dx-button { - width: 90px; + width: $color-view-controls-width; } } @@ -201,14 +219,14 @@ $colorview-handle-second-side-size: 17px !default; } .dx-colorview-hue-scale-cell { - margin-right: 19px; + margin-right: $color-view-hue-scale-cell-margin-inline-start; margin-left: 0; } .dx-colorview-container { label { &.dx-colorview-alpha-channel-label { - margin-right: 41px; + margin-right: $color-view-alpha-label-margin-inline-start-rtl; margin-left: 0; } @@ -219,7 +237,7 @@ $colorview-handle-second-side-size: 17px !default; } .dx-colorview-controls-container { - margin-right: 25px; + margin-right: $color-view-controls-margin-inline-start-rtl; margin-left: 0; } diff --git a/packages/devextreme-scss/scss/widgets/base/colorView/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/colorView/_mixins.scss index 3c01a4e7d145..632c56c5c286 100644 --- a/packages/devextreme-scss/scss/widgets/base/colorView/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/colorView/_mixins.scss @@ -1,18 +1,18 @@ @mixin dx-base-colorview-styles($handle-color, $handle-border-color) { .dx-colorview-palette-handle { - background: radial-gradient(transparent 5px, $handle-border-color 6px, $handle-color 7px, $handle-color 12px, $handle-border-color 13px); - box-shadow: 0 1px 1px 0 $handle-border-color; + background: radial-gradient(transparent 5px, $handle-border-color 6px, $handle-color 7px, $handle-color 12px, $handle-border-color 13px); // dx-fixed-size: the handle is drawn, not laid out — a transparent core to 5px, a 1px ring at 6px, fill to 12px and a 1px ring at 13px, inside the 28px diameter + box-shadow: 0 1px 1px 0 $handle-border-color; // dx-shadow-geometry: lifts the round handle off the palette } .dx-colorview-hue-scale-handle { - border: 1px solid; + border: 1px solid; // dx-line-width: hairline outline of the handle border-color: $handle-border-color; - box-shadow: inset -5px 0 0 3px $handle-color, inset 5px 0 0 3px $handle-color, inset -6px 0 1px 4px $handle-border-color, inset 6px 0 1px 4px $handle-border-color; + box-shadow: inset -5px 0 0 3px $handle-color, inset 5px 0 0 3px $handle-color, inset -6px 0 1px 4px $handle-border-color, inset 6px 0 1px 4px $handle-border-color; // dx-shadow-geometry: the grip is drawn entirely with inset shadows — 5px bars inset from both sides, each edged by a 1px ring at 6px } .dx-colorview-alpha-channel-handle { - border: 1px solid; + border: 1px solid; // dx-line-width: hairline outline of the handle border-color: $handle-border-color; - box-shadow: inset 0 -5px 0 3px $handle-color, inset 0 5px 0 3px $handle-color, inset 0 -6px 1px 4px $handle-border-color, inset 0 6px 1px 4px $handle-border-color; + box-shadow: inset 0 -5px 0 3px $handle-color, inset 0 5px 0 3px $handle-color, inset 0 -6px 1px 4px $handle-border-color, inset 0 6px 1px 4px $handle-border-color; // dx-shadow-geometry: the same grip turned 90deg for the horizontal scale } } diff --git a/packages/devextreme-scss/scss/widgets/base/dataGrid/_common.scss b/packages/devextreme-scss/scss/widgets/base/dataGrid/_common.scss index 6b4cbe915806..972d15dd9788 100644 --- a/packages/devextreme-scss/scss/widgets/base/dataGrid/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/dataGrid/_common.scss @@ -1,6 +1,15 @@ @use "../mixins" as *; @use "../gridBase" as *; -@include grid-base(datagrid); + +$datagrid-common-group-min-width: null !default; +$datagrid-common-addrow-margin-left: null !default; +$datagrid-common-form-buttons-border-radius: null !default; +$datagrid-common-form-buttons-margin-right: null !default; + +$datagrid-draggable-column-opacity: 0.5 !default; +$datagrid-column-chooser-item-opacity: 0.5 !default; + +@include grid-base(datagrid, $datagrid-draggable-column-opacity, $datagrid-column-chooser-item-opacity); .dx-datagrid { position: relative; @@ -10,11 +19,11 @@ @mixin dx-group-panel-item() { display: inline-block; - min-width: 30px; + min-width: $datagrid-common-group-min-width; white-space: nowrap; .dx-sort { - margin-left: 6px; + margin-left: $datagrid-common-addrow-margin-left; } } @@ -33,7 +42,7 @@ .dx-block-separator { position: relative; - border-radius: 3px; + border-radius: $datagrid-common-form-buttons-border-radius; } } @@ -77,7 +86,7 @@ .dx-sort { margin-left: 0; - margin-right: 6px; + margin-right: $datagrid-common-form-buttons-margin-right; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/dataGrid/_index.scss b/packages/devextreme-scss/scss/widgets/base/dataGrid/_index.scss index 021aaec45db5..ba7415643451 100644 --- a/packages/devextreme-scss/scss/widgets/base/dataGrid/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/dataGrid/_index.scss @@ -10,11 +10,32 @@ $header-filter-color: null !default; $header-filter-color-empty: null !default; $base-focus-color: null !default; $datagrid-text-stub-background-image-path: null !default; +$datagrid-text-stub-mask-image: null !default; +$datagrid-text-stub-bg: null !default; +$datagrid-group-row-border: 1px solid !default; +$datagrid-sticky-column-border: 2px solid !default; +$datagrid-cell-focus-outline: 2px solid !default; @use "sass:color"; +@use "sass:meta"; @use "../mixins" as *; @use "../icon_fonts" as *; -@use "./common"; +$datagrid-common-group-min-width: 30px !default; +$datagrid-common-addrow-margin-left: 6px !default; +$datagrid-common-form-buttons-border-radius: 3px !default; +$datagrid-common-form-buttons-margin-right: 6px !default; + +$datagrid-draggable-column-opacity: 0.5 !default; +$datagrid-column-chooser-item-opacity: 0.5 !default; + +@use "./common" with ( + $datagrid-draggable-column-opacity: $datagrid-draggable-column-opacity, + $datagrid-column-chooser-item-opacity: $datagrid-column-chooser-item-opacity, + $datagrid-common-group-min-width: $datagrid-common-group-min-width, + $datagrid-common-addrow-margin-left: $datagrid-common-addrow-margin-left, + $datagrid-common-form-buttons-border-radius: $datagrid-common-form-buttons-border-radius, + $datagrid-common-form-buttons-margin-right: $datagrid-common-form-buttons-margin-right, +); @use "./variables" as *; @use "layout/cell" with ( $datagrid-border: $datagrid-border, @@ -22,8 +43,19 @@ $datagrid-text-stub-background-image-path: null !default; $datagrid-base-background-color: $datagrid-base-background-color, $datagrid-row-error-color: $datagrid-row-error-color, $datagrid-focused-border-color: $datagrid-focused-border-color, + $datagrid-group-row-border: $datagrid-group-row-border, + $datagrid-sticky-column-border: $datagrid-sticky-column-border, + $datagrid-cell-focus-outline: $datagrid-cell-focus-outline, ); +$datagrid-header-filter-outline: 2px solid !default; +$datagrid-header-filter-outline-offset: 2px !default; +$datagrid-filter-panel-clear-filter-outline-offset: 3px !default; +$datagrid-button-margin-left: 10px !default; +$datagrid-button-margin-top: 10px !default; +$datagrid-error-message-margin-bottom: 20px !default; +$datagrid-button-margin-right: 10px !default; + .dx-datagrid-borders { > .dx-datagrid-headers, > .dx-datagrid-rowsview, @@ -111,13 +143,13 @@ $datagrid-text-stub-background-image-path: null !default; &.dx-state-focused .dx-datagrid-group-panel { .dx-group-panel-item:focus, .dx-header-filter:focus { - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: -2px; + outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } .dx-header-filter:focus { - outline-offset: 2px; + outline-offset: $datagrid-header-filter-outline-offset; } } } @@ -129,9 +161,9 @@ $datagrid-text-stub-background-image-path: null !default; &.dx-state-focused .dx-header-row { td .dx-header-filter:focus { - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: 2px; + outline-offset: $datagrid-header-filter-outline-offset; } } } @@ -149,7 +181,7 @@ $datagrid-text-stub-background-image-path: null !default; &.dx-filter-menu { .dx-menu-item-content .dx-icon { - @include dx-icon-sizing(14px); + @include dx-icon-sizing(14px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } } @@ -163,9 +195,9 @@ $datagrid-text-stub-background-image-path: null !default; .dx-datagrid-rowsview.dx-state-focused .dx-data-row { & > td.dx-command-edit > a.dx-link:focus { - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: 2px; + outline-offset: $datagrid-header-filter-outline-offset; } &.dx-row-focused > td.dx-command-edit > a.dx-link:focus { @@ -184,8 +216,15 @@ $datagrid-text-stub-background-image-path: null !default; display: block; height: 100%; content: ""; - background-image: $datagrid-text-stub-background-image-path; - background-repeat: no-repeat repeat; + + @if $datagrid-text-stub-mask-image { + mask-image: $datagrid-text-stub-mask-image; + mask-repeat: no-repeat repeat; + background-color: $datagrid-text-stub-bg; + } @else { + background-image: $datagrid-text-stub-background-image-path; + background-repeat: no-repeat repeat; + } } &[style*="text-align: right"]::before { @@ -248,9 +287,9 @@ $datagrid-text-stub-background-image-path: null !default; .dx-icon-filter:focus, .dx-datagrid-filter-panel-text:focus, .dx-datagrid-filter-panel-clear-filter:focus { - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: 3px; + outline-offset: $datagrid-filter-panel-clear-filter-outline-offset; } } } @@ -259,8 +298,8 @@ $datagrid-text-stub-background-image-path: null !default; float: right; .dx-button { - margin-left: 10px; - margin-top: 10px; + margin-left: $datagrid-button-margin-left; + margin-top: $datagrid-button-margin-top; } } @@ -268,14 +307,14 @@ $datagrid-text-stub-background-image-path: null !default; cursor: pointer; @include dx-icon(more); - @include dx-icon-sizing(21px); + @include dx-icon-sizing(21px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } .dx-datagrid-edit-popup .dx-error-message { @include dx-datagrid-error-message(); color: $datagrid-row-error-color; - margin-bottom: 20px; + margin-bottom: $datagrid-error-message-margin-bottom; } .dx-rtl { @@ -298,7 +337,7 @@ $datagrid-text-stub-background-image-path: null !default; .dx-button { margin-left: 0; - margin-right: 10px; + margin-right: $datagrid-button-margin-right; } } } @@ -309,11 +348,11 @@ $datagrid-text-stub-background-image-path: null !default; @keyframes dx-datagrid-highlight-change { from { - background-color: color.change($datagrid-base-color, $alpha: 0.08); + background-color: if(meta.type-of($datagrid-base-color) == color, color.change($datagrid-base-color, $alpha: 0.08), rgb(from #{$datagrid-base-color} r g b / 0.08)); } 50% { - background-color: color.change($datagrid-base-color, $alpha: 0.08); + background-color: if(meta.type-of($datagrid-base-color) == color, color.change($datagrid-base-color, $alpha: 0.08), rgb(from #{$datagrid-base-color} r g b / 0.08)); } } @@ -330,9 +369,9 @@ $datagrid-text-stub-background-image-path: null !default; left: 0; bottom: 0; right: 0; - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: -1px; + outline-offset: -1px; // dx-px-nudge: a one-pixel inset for the sticky-column overlay z-index: 4; // should overlap sticky column cells pointer-events: none; background-color: transparent; @@ -340,6 +379,6 @@ $datagrid-text-stub-background-image-path: null !default; } .dx-command-ai-header-button .dx-button.dx-state-focused { - outline: 2px solid; + outline: $datagrid-header-filter-outline; outline-color: $datagrid-focused-border-color; } diff --git a/packages/devextreme-scss/scss/widgets/base/dataGrid/layout/cell.scss b/packages/devextreme-scss/scss/widgets/base/dataGrid/layout/cell.scss index 57f86e0ab6d8..ff5edc87dff5 100644 --- a/packages/devextreme-scss/scss/widgets/base/dataGrid/layout/cell.scss +++ b/packages/devextreme-scss/scss/widgets/base/dataGrid/layout/cell.scss @@ -5,6 +5,9 @@ $datagrid-border-color: null !default; $datagrid-base-background-color: null !default; $datagrid-row-error-color: null !default; $datagrid-focused-border-color: null !default; +$datagrid-group-row-border: null !default; +$datagrid-sticky-column-border: null !default; +$datagrid-cell-focus-outline: null !default; // #region position & z-index @@ -34,8 +37,8 @@ $datagrid-focused-border-color: null !default; // (0,3,1) .dx-datagrid-rowsview .dx-row.dx-group-row td { - border-top: 1px solid; - border-bottom: 1px solid; + border-top: $datagrid-group-row-border; + border-bottom: $datagrid-group-row-border; } // (0,3,1) @@ -50,9 +53,9 @@ $datagrid-focused-border-color: null !default; .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none, .dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none, .dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; - border-right: 2px solid; + border-right: $datagrid-sticky-column-border; border-right-color: $datagrid-border-color; } @@ -87,13 +90,13 @@ $datagrid-focused-border-color: null !default; // (0,5,1) .dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-table .dx-row td.dx-datagrid-sticky-column-border-right { - border-right: 2px solid; + border-right: $datagrid-sticky-column-border; border-right-color: $datagrid-border-color; } // (0,5,1) .dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-table .dx-row td.dx-datagrid-sticky-column-border-left { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; } @@ -109,7 +112,7 @@ $datagrid-focused-border-color: null !default; // (0,7,1) .dx-widget:not(.dx-rtl) > .dx-gridbase-container .dx-datagrid-table .dx-row > td.dx-datagrid-first-cell.dx-datagrid-sticky-column-border-left { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; } @@ -138,9 +141,9 @@ $datagrid-focused-border-color: null !default; .dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none, .dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none, .dx-rtl .dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; - border-right: 2px solid; + border-right: $datagrid-sticky-column-border; border-right-color: $datagrid-border-color; } @@ -189,13 +192,13 @@ $datagrid-focused-border-color: null !default; // (0,6,1) .dx-rtl .dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-table .dx-row td.dx-datagrid-sticky-column-border-right { - border-right: 2px solid; + border-right: $datagrid-sticky-column-border; border-right-color: $datagrid-border-color; } // (0,6,1) .dx-rtl .dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-table .dx-row td.dx-datagrid-sticky-column-border-left { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; } @@ -211,13 +214,13 @@ $datagrid-focused-border-color: null !default; // (0,7,1) .dx-rtl > .dx-gridbase-container .dx-datagrid-content .dx-datagrid-table .dx-row > td.dx-datagrid-first-cell.dx-datagrid-sticky-column-border-left { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; } // (0,8,0) .dx-rtl .dx-datagrid .dx-datagrid-sticky-columns .dx-datagrid-content .dx-datagrid-table .dx-row .dx-datagrid-column-no-border.dx-datagrid-sticky-column-border-left { - border-left: 2px solid; + border-left: $datagrid-sticky-column-border; border-left-color: $datagrid-border-color; } @@ -275,9 +278,9 @@ $datagrid-focused-border-color: null !default; // (0,5,1) .dx-datagrid .dx-datagrid-headers.dx-state-focused .dx-header-row td:focus { - outline: 2px solid; + outline: $datagrid-cell-focus-outline; outline-color: $datagrid-focused-border-color; - outline-offset: -2px; + outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } // #endregion diff --git a/packages/devextreme-scss/scss/widgets/base/diagram/_index.scss b/packages/devextreme-scss/scss/widgets/base/diagram/_index.scss index 2416d69d6d18..9b0113d91bb3 100644 --- a/packages/devextreme-scss/scss/widgets/base/diagram/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/diagram/_index.scss @@ -1,16 +1,34 @@ +@use "sass:math"; +@use "sass:meta"; @use "../mixins" as *; -$transparent-border: 1px solid transparent !default; +$diagram-root-height: 600px !default; +$diagram-root-min-height: 350px !default; +$diagram-toolbar-wrapper-padding: 5px !default; +$diagram-button-min-height: 14px !default; +$diagram-popup-content-padding: 8px !default; +$diagram-colorview-palette-min-width: 300px !default; +$diagram-colorview-hue-scale-cell-margin-left: 12px !default; +$diagram-loading-indicator-width: 64px !default; +$diagram-loading-indicator-height: 64px !default; +$diagram-context-toolbox-target-width: 1px !default; +$diagram-context-toolbox-target-height: 1px !default; +$diagram-popup-title-toolbar-bg: rgba(0, 0, 0, 0.05) !default; + +$diagram-border-width: 1px !default; +$transparent-border: $diagram-border-width solid transparent !default; + +$diagram-toolbox-input-font-size: 0.9em !default; // dx-relative .dx-diagram { border: $transparent-border; display: flex; flex-flow: column; - height: 600px; - min-height: 350px; + height: $diagram-root-height; + min-height: $diagram-root-min-height; .dx-diagram-toolbar-wrapper { - padding: 5px; + padding: $diagram-toolbar-wrapper-padding; flex-grow: 0; .dx-diagram-toolbar { @@ -58,7 +76,7 @@ $transparent-border: 1px solid transparent !default; .dx-popup-title.dx-toolbar { padding: 0; - background-color: rgba(0, 0, 0, 0.05); + background-color: $diagram-popup-title-toolbar-bg; } .dx-popup-title .dx-button.dx-button-has-icon:not(.dx-button-has-text), @@ -85,13 +103,13 @@ $transparent-border: 1px solid transparent !default; .dx-diagram-toolbox-input input, .dx-diagram-toolbox-input .dx-placeholder::before { min-height: 0; - font-size: 0.9em; + font-size: $diagram-toolbox-input-font-size; } .dx-diagram-toolbox-input .dx-button { border: 0; border-radius: 0; - min-height: 14px; + min-height: $diagram-button-min-height; } .dx-diagram-toolbox-panel { @@ -155,7 +173,7 @@ $transparent-border: 1px solid transparent !default; } &.dx-diagram-mobile-popup { - width: calc(100% - 2px) !important; // stylelint-disable-line declaration-no-important + width: calc(100% - 2px) !important; // stylelint-disable-line declaration-no-important -- dx-px-nudge: 2px shaved off a full-width popup .dx-popup-title { border: 0; @@ -265,7 +283,7 @@ $transparent-border: 1px solid transparent !default; bottom: 0 !important; // stylelint-disable-line declaration-no-important .dx-popup-content { - padding: 8px; + padding: $diagram-popup-content-padding; } .dx-colorview-container { @@ -279,16 +297,16 @@ $transparent-border: 1px solid transparent !default; .dx-colorview-palette { width: 100%; - min-width: 300px; + min-width: $diagram-colorview-palette-min-width; } } .dx-colorview-hue-scale-cell { - margin-left: 12px; + margin-left: $diagram-colorview-hue-scale-cell-margin-left; } .dx-colorview-controls-container { - margin-left: 12px; + margin-left: $diagram-colorview-hue-scale-cell-margin-left; } } } @@ -304,10 +322,11 @@ $transparent-border: 1px solid transparent !default; .dx-diagram-loading-indicator { position: absolute; - top: calc(50% - 32px); - left: calc(50% - 32px); - width: 64px; - height: 64px; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + width: $diagram-loading-indicator-width; + height: $diagram-loading-indicator-height; } .dx-diagram-touchbar-overlay, @@ -350,10 +369,10 @@ $transparent-border: 1px solid transparent !default; } .dx-diagram-context-toolbox-target { - width: 1px; - height: 1px; + width: $diagram-context-toolbox-target-width; + height: $diagram-context-toolbox-target-height; } .dx-diagram-context-toolbox .dx-popup-content { - padding: 8px; + padding: $diagram-popup-content-padding; } diff --git a/packages/devextreme-scss/scss/widgets/base/diagram/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/diagram/_mixins.scss index aa23ac0744f2..e601483bc3e5 100644 --- a/packages/devextreme-scss/scss/widgets/base/diagram/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/diagram/_mixins.scss @@ -1,5 +1,7 @@ +@use "sass:meta"; @use "sass:string"; @use "../string" as *; +@use "../mask" as *; @mixin diagram-icon-colored($data-uri, $current-color, $width, $height) { $uri: replace("#{$data-uri}", "currentColor", escape("#{$current-color}")); @@ -9,180 +11,253 @@ height: $height; } -@mixin diagram-action-icons-mixin($toolbar-color, $menu-color, $icon-size, $toolbar-colorbutton-border-width) { +@mixin diagram-icon-masked($data-uri, $width, $height) { + $uri: replace("#{$data-uri}", "currentColor", "%23000"); + + mask-image: string.unquote($uri); + width: $width; + height: $height; +} + +@mixin diagram-icon-two-tone($data-uri, $width, $height) { + $mask: replace("#{$data-uri}", "currentColor", "%23000"); + $overlay: replace("#{$data-uri}", "currentColor", "transparent"); + + mask-image: string.unquote($mask); + background-image: string.unquote($overlay); + width: $width; + height: $height; +} + +@mixin diagram-icon-masked-inset($data-uri, $width, $height) { + $uri: replace("#{$data-uri}", "currentColor", "%23000"); + + position: relative; + width: $width; + height: $height; + background-color: transparent; + + &::before { + content: ""; + position: absolute; + inset: 0; + mask-image: string.unquote($uri); + mask-repeat: no-repeat; + + @include masked-glyph-paint(); + } +} + +@mixin diagram-icon($data-uri, $current-color, $width, $height, $masked) { + @if $masked { + @include diagram-icon-masked($data-uri, $width, $height); + } @else { + @include diagram-icon-colored($data-uri, $current-color, $width, $height); + } +} + +@mixin diagram-action-icons-mixin($toolbar-color, $menu-color, $icon-size, $toolbar-colorbutton-border-width, $masked: false) { + $diagram-wide-icon-size: if(meta.type-of($icon-size) == number, 1.56 * $icon-size, calc(1.56 * #{$icon-size})); + + @if $masked { + .dx-diagram-i { + mask-repeat: no-repeat; + + @include masked-glyph-paint(); + } + } + .dx-diagram-i-selectbox-null-icon { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/selectbox-null-icon.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/selectbox-null-icon.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-begin-none { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-none.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @if $masked { + @include diagram-icon-two-tone(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-none.svg"), $diagram-wide-icon-size, $icon-size); + } @else { + @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-none.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size); + } } .dx-diagram-i-connector-begin-arrow { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-arrow.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-arrow.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-begin-outlined-triangle { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-outlined-triangle.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-outlined-triangle.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-begin-filled-triangle { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-filled-triangle.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-begin-filled-triangle.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-end-none { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-none.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @if $masked { + @include diagram-icon-two-tone(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-none.svg"), $diagram-wide-icon-size, $icon-size); + } @else { + @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-none.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size); + } } .dx-diagram-i-connector-end-arrow { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-arrow.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-arrow.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-end-outlined-triangle { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-outlined-triangle.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-outlined-triangle.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-end-filled-triangle { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-filled-triangle.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-end-filled-triangle.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-orthogonal { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-orthogonal.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-orthogonal.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-connector-straight { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-straight.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/connector-straight.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-line-solid { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-solid.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-solid.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-line-dotted { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-dotted.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-dotted.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } .dx-diagram-i-line-dashed { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-dashed.svg"), $toolbar-color, 1.56 * $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/line-dashed.svg"), $toolbar-color, $diagram-wide-icon-size, $icon-size, $masked); } - .dx-diagram-i-button-fill { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/button-fill.svg"), $toolbar-color, $icon-size, $icon-size + $toolbar-colorbutton-border-width); - } + $fill-height: if(meta.type-of($icon-size) == number and meta.type-of($toolbar-colorbutton-border-width) == number, $icon-size + $toolbar-colorbutton-border-width, calc(#{$icon-size} + #{$toolbar-colorbutton-border-width})); + $fill-uri: data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/button-fill.svg"); + + @if $masked { + .dx-diagram-i-button-fill, + .dx-diagram-i-menu-fill { + @include diagram-icon-masked-inset($fill-uri, $icon-size, $fill-height); + } + } @else { + .dx-diagram-i-button-fill { + @include diagram-icon-colored($fill-uri, $toolbar-color, $icon-size, $fill-height); + } - .dx-diagram-i-menu-fill { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/button-fill.svg"), $menu-color, $icon-size, $icon-size + $toolbar-colorbutton-border-width); + .dx-diagram-i-menu-fill { + @include diagram-icon-colored($fill-uri, $menu-color, $icon-size, $fill-height); + } } .dx-diagram-i-button-fullscreen { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/fullscreen.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/fullscreen.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-fullscreen { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/fullscreen.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/fullscreen.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-lock { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/lock.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/lock.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-lock { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/lock.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/lock.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-unlock { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/unlock.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/unlock.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-unlock { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/unlock.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/unlock.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-send-to-back { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/send-to-back.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/send-to-back.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-send-to-back { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/send-to-back.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/send-to-back.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-bring-to-front { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/bring-to-front.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/bring-to-front.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-bring-to-front { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/bring-to-front.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/bring-to-front.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-select-all { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/select-all.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/select-all.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-select-all { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/select-all.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/select-all.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-image-delete { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-delete.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-delete.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-image-delete { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-delete.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-delete.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-image-edit { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-edit.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-edit.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-image-edit { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-edit.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-edit.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-image-insert { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-insert.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-insert.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-menu-image-insert { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-insert.svg"), $menu-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/image-insert.svg"), $menu-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-layered-bt { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-bt.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-bt.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-layered-lr { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-lr.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-lr.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-layered-rl { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-rl.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-rl.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-layered-tb { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-tb.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-layered-tb.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-tree-bt { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-bt.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-bt.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-tree-lr { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-lr.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-lr.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-tree-rl { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-rl.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-rl.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-toolbox-open { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/toolbox-open.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/toolbox-open.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-toolbox-close { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/toolbox-close.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/toolbox-close.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } .dx-diagram-i-button-layout-tree-tb { - @include diagram-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-tb.svg"), $toolbar-color, $icon-size, $icon-size); + @include diagram-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/diagram/layout-tree-tb.svg"), $toolbar-color, $icon-size, $icon-size, $masked); } } diff --git a/packages/devextreme-scss/scss/widgets/base/dropDownButton/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/dropDownButton/_mixins.scss index c5386d732acb..846174c0330a 100644 --- a/packages/devextreme-scss/scss/widgets/base/dropDownButton/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/dropDownButton/_mixins.scss @@ -1,6 +1,7 @@ @mixin dx-dropdownbutton( $dropdownbutton-icon-spindown-size, $dropdownbutton-action-horizontal-padding, + $dropdownbutton-icon-right-margin-inline-start: 4px, ) { .dx-dropdownbutton-toggle { .dx-icon-spindown { @@ -19,7 +20,7 @@ &.dx-button-has-icon, &.dx-button-has-text { .dx-icon.dx-icon-right { - margin-inline-start: 4px; + margin-inline-start: $dropdownbutton-icon-right-margin-inline-start; margin-inline-end: 0; } } diff --git a/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_index.scss b/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_index.scss index 96ef434b3e43..616ce92d9c1b 100644 --- a/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_index.scss @@ -3,6 +3,8 @@ @use "./mixins" as *; @use "../textEditor/mixins" as *; +$dropdowneditor-icon-idle-opacity: 0.35 !default; + .dx-dropdowneditor { position: relative; @@ -59,7 +61,9 @@ .dx-dropdowneditor-active { .dx-dropdowneditor-icon { - opacity: 0.35; + @if $dropdowneditor-icon-idle-opacity { + opacity: $dropdowneditor-icon-idle-opacity; + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_mixins.scss index 01dd983dd65c..52d5b235889d 100644 --- a/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/dropDownEditor/_mixins.scss @@ -1,5 +1,28 @@ +@use "sass:meta"; @use "../icon_fonts" as *; +@function badge-input-padding($invalid-badge-size, $input-horizontal-padding) { + @if meta.type-of($invalid-badge-size) == number and meta.type-of($input-horizontal-padding) == number { + @return $invalid-badge-size + $input-horizontal-padding; + } + + @if $input-horizontal-padding == 0 { + @return $invalid-badge-size; + } + + @return calc(#{$invalid-badge-size} + #{$input-horizontal-padding}); +} + +@function lookup-field-padding($input-horizontal-padding, $icon-size, $icon-count, $spin-padding) { + $icons: if($icon-count == 1, "#{$icon-size}", "#{$icon-size} * #{$icon-count}"); + + @if meta.type-of($input-horizontal-padding) == number and $input-horizontal-padding == 0 { + @return calc(#{$icons} + #{$spin-padding}); + } + + @return calc(#{$input-horizontal-padding} + #{$icons} + #{$spin-padding}); +} + @mixin invalid-dropdowneditor-input-padding( $invalid-badge-size, $texteditor-underlined-input-horizontal-padding, @@ -8,7 +31,7 @@ &.dx-dropdowneditor-button-visible { &.dx-editor-underlined { .dx-texteditor-input { - padding-inline-end: $invalid-badge-size + $texteditor-underlined-input-horizontal-padding; + padding-inline-end: badge-input-padding($invalid-badge-size, $texteditor-underlined-input-horizontal-padding); } .dx-start-datebox { @@ -27,7 +50,7 @@ &.dx-editor-filled, &.dx-editor-outlined { .dx-texteditor-input { - padding-inline-end: $invalid-badge-size + $texteditor-filled-input-horizontal-padding; + padding-inline-end: badge-input-padding($invalid-badge-size, $texteditor-filled-input-horizontal-padding); } .dx-start-datebox { diff --git a/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_index.scss b/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_index.scss index 5ad777432062..58e6b044db3d 100644 --- a/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_index.scss @@ -1,8 +1,12 @@ +$dropdownmenu-list-min-width: 100px !default; +$dropdownmenu-list-border-radius: 8px !default; +$dropdownmenu-popup-content-padding: 1px !default; + .dx-dropdownmenu-popup-wrapper { .dx-dropdownmenu-list { min-height: 0; - min-width: 100px; - border-radius: 8px; + min-width: $dropdownmenu-list-min-width; + border-radius: $dropdownmenu-list-border-radius; .dx-list-item { &:last-of-type { @@ -12,7 +16,7 @@ } .dx-popup-content { - padding: 1px; + padding: $dropdownmenu-popup-content-padding; } .dx-list-item { diff --git a/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_mixins.scss index 129adac34b1d..c291aff8bbe5 100644 --- a/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/dropDownMenu/_mixins.scss @@ -2,6 +2,8 @@ $accent-color, $border-radius, $section-horizontal-margin, + $outline-width: 2px, + $outline-offset: 1px, ) { .dx-dropdownmenu-popup-wrapper.dx-dropdownmenu-list-focus-mode { .dx-dropdownmenu-list { @@ -9,8 +11,8 @@ .dx-list-item[tabindex="0"]:focus-visible { position: relative; z-index: 1; - outline: 2px solid $accent-color; - outline-offset: 1px; + outline: $outline-width solid $accent-color; + outline-offset: $outline-offset; border-radius: $border-radius; } } diff --git a/packages/devextreme-scss/scss/widgets/base/fileManager/_index.scss b/packages/devextreme-scss/scss/widgets/base/fileManager/_index.scss index 1031bae446b7..8a9ec07076b7 100644 --- a/packages/devextreme-scss/scss/widgets/base/fileManager/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/fileManager/_index.scss @@ -1,8 +1,70 @@ @use "../mixins" as *; +$filemanager-root-height: 500px !default; +$filemanager-root-border: 1px solid !default; +$filemanager-overlay-content-min-width: 240px !default; +$filemanager-overlay-content-max-width: 400px !default; +$filemanager-popup-content-padding: 15px !default; +$filemanager-progress-box-padding: 5px 0 0 !default; +$filemanager-notification-common-padding-bottom: 10px !default; +$filemanager-notification-common-border-bottom-width: 1px !default; +$filemanager-progress-panel-border-left-width: 1px !default; +$filemanager-progress-panel-width: 340px !default; +$filemanager-progress-panel-container-padding: 10px 20px 20px 20px !default; +$filemanager-progress-panel-title-padding: 0 0 5px 10px !default; +$filemanager-progress-panel-separator-height: 20px !default; +$filemanager-i-cancel-width: 16px !default; +$filemanager-i-cancel-height: 16px !default; +$filemanager-progress-box-margin-bottom: 8px !default; +$filemanager-progress-box-border-radius: 2px !default; +$filemanager-progress-panel-box-padding: 10px 0 10px 10px !default; +$filemanager-progress-box-without-close-button-padding-right: 10px !default; +$filemanager-progress-box-image-margin-right: 10px !default; +$filemanager-progress-box-common-padding: 5px 0 !default; +$filemanager-progress-box-close-button-margin-left: 5px !default; +$filemanager-progress-box-error-padding: 2px 8px 3px !default; +$filemanager-progress-box-error-max-height: 150px !default; +$filemanager-toolbar-separator-item-width: 1px !default; +$filemanager-toolbar-separator-item-margin-right: 5px !default; +$filemanager-container-border-top: 1px solid !default; +$filemanager-dirs-panel-padding: 5px 10px !default; +$filemanager-drawer-panel-content-initial-min-width: 250px !default; +$filemanager-drawer-panel-content-initial-max-width: 300px !default; +$filemanager-breadcrumbs-padding: 2px 11px !default; +$filemanager-breadcrumbs-border-bottom: 1px solid !default; +$filemanager-menu-item-content-padding-left: 2px !default; +$filemanager-menu-item-content-padding-right: 2px !default; +$filemanager-menu-item-content-margin: 0 10px !default; +$filemanager-breadcrumbs-path-separator-padding-left: 1px !default; +$filemanager-breadcrumbs-path-separator-padding-right: 1px !default; +$filemanager-thumbnails-view-port-padding: 5px !default; +$filemanager-thumbnails-item-width: 100px !default; +$filemanager-thumbnails-item-height: 100px !default; +$filemanager-thumbnails-item-border: 1px dashed transparent !default; +$filemanager-thumbnails-item-margin: 5px !default; +$filemanager-thumbnails-item-content-padding: 13px 0 10px !default; +$filemanager-thumbnails-item-spacer-height: 10px !default; +$filemanager-button-content-padding: 10px 11px !default; +$filemanager-dialog-min-width: 300px !default; +$filemanager-overlay-content-min-height: 300px !default; +$filemanager-overlay-content-max-height: 400px !default; +$filemanager-dialog-name-editor-max-width: 340px !default; +$filemanager-dialog-name-editor-min-height: 180px !default; +$filemanager-dialog-name-editor-max-height: 180px !default; +$filemanager-progressbox-cancel-button-margin-top: 5px !default; + +$filemanager-progress-title-font-size: 18px !default; +$filemanager-progress-title-font-weight: 600 !default; +$filemanager-progress-bold-font-weight: 600 !default; + +$filemanager-error-message-font-size: 0.85em !default; // dx-relative +$filemanager-drawer-panel-content-width: 30% !default; // dx-relative-% + +$filemanager-splitter-wrapper-right: 3px !default; + .dx-filemanager { - height: 500px; - border: 1px solid; + height: $filemanager-root-height; + border: $filemanager-root-border; .dx-filemanager-wrapper { height: 100%; @@ -17,25 +79,25 @@ .dx-filemanager-notification-popup { & .dx-overlay-content { - min-width: 240px; + min-width: $filemanager-overlay-content-min-width; max-width: 93vw; - @media (min-width: 431px) { - max-width: 400px; + @media (min-width: 431px) { // dx-literal-required: a media condition, var() is invalid here + max-width: $filemanager-overlay-content-max-width; } } .dx-popup-content { - padding: 15px; + padding: $filemanager-popup-content-padding; .dx-filemanager-progress-box { - padding: 5px 0 0; + padding: $filemanager-progress-box-padding; } } .dx-filemanager-notification-common { - padding-bottom: 10px; - border-bottom-width: 1px; + padding-bottom: $filemanager-notification-common-padding-bottom; + border-bottom-width: $filemanager-notification-common-border-bottom-width; border-bottom-style: solid; } @@ -45,61 +107,61 @@ } .dx-drawer-shrink .dx-filemanager-progress-panel { - border-left-width: 1px; + border-left-width: $filemanager-progress-panel-border-left-width; border-left-style: solid; } .dx-filemanager-progress-panel { - width: 340px; + width: $filemanager-progress-panel-width; height: 100%; .dx-filemanager-progress-panel-container { - padding: 10px 20px 20px 20px; + padding: $filemanager-progress-panel-container-padding; } .dx-filemanager-progress-panel-title { display: flex; align-items: flex-start; - padding: 0 0 5px 10px; + padding: $filemanager-progress-panel-title-padding; .dx-filemanager-progress-panel-title-text { flex: 1 1 auto; align-self: center; - font-size: 18px; - font-weight: 600; + font-size: $filemanager-progress-title-font-size; + font-weight: $filemanager-progress-title-font-weight; } } .dx-filemanager-progress-panel-common .dx-filemanager-progress-box-common { - font-weight: 600; + font-weight: $filemanager-progress-bold-font-weight; } .dx-filemanager-progress-panel-separator { - height: 20px; + height: $filemanager-progress-panel-separator-height; } .dx-filemanager-i.dx-filemanager-i-cancel { - width: 16px; - height: 16px; + width: $filemanager-i-cancel-width; + height: $filemanager-i-cancel-height; } .dx-filemanager-progress-panel-details > .dx-filemanager-progress-box { - margin-bottom: 8px; - border-radius: 2px; + margin-bottom: $filemanager-progress-box-margin-bottom; + border-radius: $filemanager-progress-box-border-radius; } } .dx-filemanager-progress-box { - padding: 10px 0 10px 10px; + padding: $filemanager-progress-panel-box-padding; display: flex; align-items: center; &.dx-filemanager-progress-box-without-close-button { - padding-right: 10px; + padding-right: $filemanager-progress-box-without-close-button-padding-right; } .dx-filemanager-progress-box-image { - margin-right: 10px; + margin-right: $filemanager-progress-box-image-margin-right; } .dx-filemanager-progress-box-wrapper { @@ -108,53 +170,53 @@ } .dx-filemanager-progress-box-common { - padding: 5px 0; + padding: $filemanager-progress-box-common-padding; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .dx-filemanager-progress-box-progress-bar { - padding: 5px 0; + padding: $filemanager-progress-box-common-padding; } .dx-filemanager-progress-box-status { - padding: 5px 0; + padding: $filemanager-progress-box-common-padding; } .dx-filemanager-progress-box-close-button { - margin-left: 5px; + margin-left: $filemanager-progress-box-close-button-margin-left; } } .dx-filemanager-progress-box-error { - border-radius: 2px; + border-radius: $filemanager-progress-box-border-radius; display: inline-block; border-width: 0; - padding: 2px 8px 3px; - font-size: 0.85em; + padding: $filemanager-progress-box-error-padding; + font-size: $filemanager-error-message-font-size; line-height: normal; word-wrap: break-word; overflow-y: auto; - max-height: 150px; + max-height: $filemanager-progress-box-error-max-height; } .dx-filemanager-toolbar { .dx-filemanager-toolbar-separator-item { - width: 1px; - margin-right: 5px; + width: $filemanager-toolbar-separator-item-width; + margin-right: $filemanager-toolbar-separator-item-margin-right; } } .dx-splitter-wrapper.dx-splitter-initial, .dx-splitter-wrapper.dx-splitter-inactive { - right: 3px; // (dx-splitter-border width - dx-splitter-bar width) / 2 + right: $filemanager-splitter-wrapper-right; } .dx-filemanager-container { display: flex; height: 100%; - border-top: 1px solid; + border-top: $filemanager-container-border-top; box-sizing: border-box; overflow: hidden; @@ -163,7 +225,7 @@ } .dx-filemanager-dirs-panel { - padding: 5px 10px; + padding: $filemanager-dirs-panel-padding; height: 100%; width: 100%; display: block; @@ -171,7 +233,7 @@ .dx-drawer-opened { .dx-splitter-bar.dx-state-disabled { - width: 1px; + width: $filemanager-toolbar-separator-item-width; } } @@ -181,11 +243,11 @@ .dx-drawer-panel-content { display: block; - width: 30%; + width: $filemanager-drawer-panel-content-width; &.dx-drawer-panel-content-initial { - min-width: 250px; - max-width: 300px; + min-width: $filemanager-drawer-panel-content-initial-min-width; + max-width: $filemanager-drawer-panel-content-initial-max-width; } &.dx-drawer-panel-content-adaptive { @@ -199,8 +261,8 @@ } .dx-filemanager-breadcrumbs { - padding: 2px 11px; - border-bottom: 1px solid; + padding: $filemanager-breadcrumbs-padding; + border-bottom: $filemanager-breadcrumbs-border-bottom; .dx-menu-item-content { padding-left: 0; @@ -208,20 +270,20 @@ } .dx-filemanager-breadcrumbs-parent-folder-item .dx-menu-item-content { - padding-left: 2px; - padding-right: 2px; + padding-left: $filemanager-menu-item-content-padding-left; + padding-right: $filemanager-menu-item-content-padding-right; } .dx-filemanager-breadcrumbs-separator-item .dx-menu-item-content { - width: 1px; + width: $filemanager-toolbar-separator-item-width; padding-left: 0; padding-right: 0; - margin: 0 10px; + margin: $filemanager-menu-item-content-margin; } .dx-filemanager-breadcrumbs-path-separator-item .dx-menu-item-content { - padding-left: 1px; - padding-right: 1px; + padding-left: $filemanager-breadcrumbs-path-separator-padding-left; + padding-right: $filemanager-breadcrumbs-path-separator-padding-right; } .dx-filemanager-breadcrumbs-separator-item, @@ -234,14 +296,14 @@ .dx-filemanager-notification-container { position: absolute; - top: -5000px; - left: -5000px; + top: -5000px; // dx-structural: parks the container off-screen until it is positioned + left: -5000px; // dx-structural: parks the container off-screen until it is positioned } .dx-filemanager-editing-container { position: absolute; - top: -5000px; - left: -5000px; + top: -5000px; // dx-structural: parks the container off-screen until it is positioned + left: -5000px; // dx-structural: parks the container off-screen until it is positioned } .dx-row { @@ -287,7 +349,7 @@ overflow-x: hidden; overflow-y: auto; box-sizing: border-box; - padding: 5px; + padding: $filemanager-thumbnails-view-port-padding; .dx-filemanager-thumbnails-container { user-select: none; @@ -298,15 +360,15 @@ text-align: center; cursor: pointer; white-space: nowrap; - width: 100px; - height: 100px; - border: 1px dashed transparent; - margin: 5px; + width: $filemanager-thumbnails-item-width; + height: $filemanager-thumbnails-item-height; + border: $filemanager-thumbnails-item-border; + margin: $filemanager-thumbnails-item-margin; box-sizing: border-box; .dx-filemanager-thumbnails-item-content { overflow: hidden; - padding: 13px 0 10px; + padding: $filemanager-thumbnails-item-content-padding; .dx-filemanager-thumbnails-item-thumbnail { border: 0; @@ -316,7 +378,7 @@ border: 0; padding: 0; margin: 0; - height: 10px; + height: $filemanager-thumbnails-item-spacer-height; visibility: hidden; } @@ -390,7 +452,7 @@ box-shadow: none; .dx-button-content { - padding: 10px 11px; + padding: $filemanager-button-content-padding; } i { @@ -440,21 +502,21 @@ } .dx-filemanager-dialog-popup > .dx-overlay-content { - min-width: 300px; - max-width: 400px; - min-height: 300px; - max-height: 400px; + min-width: $filemanager-dialog-min-width; + max-width: $filemanager-overlay-content-max-width; + min-height: $filemanager-overlay-content-min-height; + max-height: $filemanager-overlay-content-max-height; } .dx-filemanager-dialog-name-editor-popup > .dx-overlay-content { - max-width: 340px; - min-height: 180px; - max-height: 180px; + max-width: $filemanager-dialog-name-editor-max-width; + min-height: $filemanager-dialog-name-editor-min-height; + max-height: $filemanager-dialog-name-editor-max-height; } .dx-filemanager-dialog-delete-item-popup > .dx-overlay-content { - max-width: 340px; - min-height: 180px; + max-width: $filemanager-dialog-name-editor-max-width; + min-height: $filemanager-dialog-name-editor-min-height; .dx-popup-content .dx-filemanager-dialog-delete-item { overflow-wrap: break-word; @@ -463,16 +525,16 @@ .dx-filemanager-progresspanel { box-sizing: border-box; - padding: 5px; + padding: $filemanager-thumbnails-view-port-padding; .dx-filemanager-progressbox { float: left; width: 100%; - padding-bottom: 10px; + padding-bottom: $filemanager-notification-common-padding-bottom; } .dx-filemanager-progressbox-cancel-button { - margin-top: 5px; + margin-top: $filemanager-progressbox-cancel-button-margin-top; float: right; } } diff --git a/packages/devextreme-scss/scss/widgets/base/fileManager/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/fileManager/_mixins.scss index 17a2d5b0c7ec..3b2414f3915c 100644 --- a/packages/devextreme-scss/scss/widgets/base/fileManager/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/fileManager/_mixins.scss @@ -1,5 +1,6 @@ @use "sass:string"; @use "../string" as *; +@use "../mask" as *; @mixin filemanager-icon-colored($data-uri, $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $width, $height) { $uri1: replace("#{$data-uri}", "currentTextColor", escape("#{$text-color}")); @@ -13,24 +14,79 @@ height: $height; } -@mixin filemanager-icons-mixin($text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size) { +@mixin filemanager-icon-masked($data-uri, $width, $height) { + $uri: replace("#{$data-uri}", "currentTextColor", "%23000"); + + mask-image: string.unquote($uri); + mask-position: 50% 50%; + mask-repeat: no-repeat; + mask-size: contain; + width: $width; + height: $height; + + @include masked-glyph-paint(); +} + +@mixin filemanager-icon-status($data-uri, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $width, $height) { + $shapes1: replace("#{$data-uri}", "currentTextColor", "%23000"); + $shapes2: replace($shapes1, "currentSuccessBgColor", "%23000"); + $shapes3: replace($shapes2, "currentSuccessTextColor", "%23000"); + $shapes4: replace($shapes3, "currentDangerBgColor", "%23000"); + $mask: replace($shapes4, "currentDangerTextColor", "%23000"); + $disc1: replace("#{$data-uri}", "currentTextColor", "transparent"); + $disc2: replace($disc1, "currentSuccessBgColor", escape("#{$success-bg-color}")); + $disc3: replace($disc2, "currentSuccessTextColor", escape("#{$success-text-color}")); + $disc4: replace($disc3, "currentDangerBgColor", escape("#{$danger-bg-color}")); + $disc: replace($disc4, "currentDangerTextColor", escape("#{$danger-text-color}")); + + mask-image: string.unquote($mask); + mask-position: 50% 50%; + mask-repeat: no-repeat; + mask-size: contain; + background-image: string.unquote($disc); + background-position: 50% 50%; + background-repeat: no-repeat; + background-size: contain; + width: $width; + height: $height; + + @include masked-glyph-paint(); +} + +@mixin filemanager-icon-single($data-uri, $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $width, $height, $masked) { + @if $masked { + @include filemanager-icon-masked($data-uri, $width, $height); + } @else { + @include filemanager-icon-colored($data-uri, $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $width, $height); + } +} + +@mixin filemanager-icons-mixin($text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $masked: false) { .dx-filemanager-i, .dx-filemanager-i.dx-icon { &.dx-filemanager-i-refresh, &.dx-filemanager-i-progress { - @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/refresh.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + @include filemanager-icon-single(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/refresh.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size, $masked); } &.dx-filemanager-i-done { - @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/done.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + @if $masked { + @include filemanager-icon-status(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/done.svg"), $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + } @else { + @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/done.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + } } &.dx-filemanager-i-danger { - @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/danger.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + @if $masked { + @include filemanager-icon-status(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/danger.svg"), $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + } @else { + @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/danger.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + } } &.dx-filemanager-i-cancel { - @include filemanager-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/cancel.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size); + @include filemanager-icon-single(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/fileManager/cancel.svg"), $text-color, $success-bg-color, $success-text-color, $danger-bg-color, $danger-text-color, $icon-size, $icon-size, $masked); } } } diff --git a/packages/devextreme-scss/scss/widgets/base/filterBuilder/_common.scss b/packages/devextreme-scss/scss/widgets/base/filterBuilder/_common.scss index 6789b8bbd194..824ae260d4c9 100644 --- a/packages/devextreme-scss/scss/widgets/base/filterBuilder/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/filterBuilder/_common.scss @@ -1,15 +1,30 @@ +$filterbuilder-range-separator-opacity: null !default; +$filterbuilder-action-icon-margin-left: null !default; +$filterbuilder-action-icon-margin-right: null !default; +$filterbuilder-group-content-padding-right: null !default; +$filterbuilder-range-separator-margin: null !default; +$filterbuilder-item-value-text-min-width: null !default; +$filterbuilder-item-value-text-padding: null !default; +$filterbuilder-action-icon-padding: null !default; +$filterbuilder-group-content-padding-left: null !default; +$filterbuilder-treeview-item-padding-left: null !default; +$filterbuilder-treeview-item-padding-right: null !default; +$filterbuilder-treeview-node-margin-left: null !default; +$filterbuilder-treeview-node-margin-right: null !default; +$filterbuilder-scrollable-max-height: null !default; + .dx-filterbuilder { &.dx-rtl { .dx-filterbuilder-text, .dx-filterbuilder-action-icon { - margin-left: 5px; + margin-left: $filterbuilder-action-icon-margin-left; margin-right: 0; } .dx-filterbuilder-group { .dx-filterbuilder-group-content .dx-filterbuilder-group-content { padding-left: 0; - padding-right: 26px; + padding-right: $filterbuilder-group-content-padding-right; } } } @@ -17,7 +32,7 @@ .dx-filterbuilder-text, .dx-filterbuilder-action-icon { margin-left: 0; - margin-right: 5px; + margin-right: $filterbuilder-action-icon-margin-right; } .dx-filterbuilder-text, @@ -44,22 +59,25 @@ .dx-filterbuilder-text-separator, .dx-filterbuilder-range-separator { - margin: 0 7px; - opacity: 0.3; + margin: $filterbuilder-range-separator-margin; + + @if $filterbuilder-range-separator-opacity { + opacity: $filterbuilder-range-separator-opacity; + } } &.dx-filterbuilder-group-operation, &.dx-filterbuilder-item-field, &.dx-filterbuilder-item-operation, .dx-filterbuilder-item-value-text { - min-width: 20px; - padding: 2px 7px 3px 7px; + min-width: $filterbuilder-item-value-text-min-width; + padding: $filterbuilder-item-value-text-padding; } .dx-texteditor { vertical-align: middle; - margin-top: -7px; - margin-bottom: -4px; + margin-top: -7px; // dx-fixed-size: pulls the row onto the group line + margin-bottom: -4px; // dx-fixed-size: pulls the row onto the group line display: inline-block; } } @@ -70,13 +88,13 @@ position: relative; &.dx-filterbuilder-action-icon { - padding: 5px 8px; + padding: $filterbuilder-action-icon-padding; } } } .dx-filterbuilder-group-content .dx-filterbuilder-group-content { - padding-left: 26px; + padding-left: $filterbuilder-group-content-padding-left; } } @@ -91,12 +109,12 @@ .dx-filterbuilder-operations { .dx-treeview-item { - padding-left: 5px; + padding-left: $filterbuilder-treeview-item-padding-left; } .dx-rtl { .dx-treeview-item { - padding-right: 5px; + padding-right: $filterbuilder-treeview-item-padding-right; } } } @@ -109,7 +127,7 @@ padding-left: 0; .dx-treeview-node-container-opened { - margin-left: 15px; + margin-left: $filterbuilder-treeview-node-margin-left; } } @@ -118,7 +136,7 @@ padding-right: 0; .dx-treeview-node-container-opened { - margin-right: 15px; + margin-right: $filterbuilder-treeview-node-margin-right; } } } @@ -133,7 +151,7 @@ } .dx-scrollable-container { - max-height: 360px; + max-height: $filterbuilder-scrollable-max-height; } .dx-menu-items-container { diff --git a/packages/devextreme-scss/scss/widgets/base/filterBuilder/_index.scss b/packages/devextreme-scss/scss/widgets/base/filterBuilder/_index.scss index 5ad7c17718aa..49e83c6dc4c7 100644 --- a/packages/devextreme-scss/scss/widgets/base/filterBuilder/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/filterBuilder/_index.scss @@ -22,7 +22,38 @@ $filterbuilder-remove-icon-focus-color: null !default; $filterbuilder-menu-icon-color: null !default; @use "../icon_fonts" as *; -@use "./common"; +$filterbuilder-range-separator-opacity: 0.3 !default; + +$filterbuilder-action-icon-margin-left: 5px !default; +$filterbuilder-action-icon-margin-right: 5px !default; +$filterbuilder-group-content-padding-right: 26px !default; +$filterbuilder-range-separator-margin: 0 7px !default; +$filterbuilder-item-value-text-min-width: 20px !default; +$filterbuilder-item-value-text-padding: 2px 7px 3px 7px !default; +$filterbuilder-action-icon-padding: 5px 8px !default; +$filterbuilder-group-content-padding-left: 26px !default; +$filterbuilder-treeview-item-padding-left: 5px !default; +$filterbuilder-treeview-item-padding-right: 5px !default; +$filterbuilder-treeview-node-margin-left: 15px !default; +$filterbuilder-treeview-node-margin-right: 15px !default; +$filterbuilder-scrollable-max-height: 360px !default; + +@use "./common" with ( + $filterbuilder-range-separator-opacity: $filterbuilder-range-separator-opacity, + $filterbuilder-action-icon-margin-left: $filterbuilder-action-icon-margin-left, + $filterbuilder-action-icon-margin-right: $filterbuilder-action-icon-margin-right, + $filterbuilder-group-content-padding-right: $filterbuilder-group-content-padding-right, + $filterbuilder-range-separator-margin: $filterbuilder-range-separator-margin, + $filterbuilder-item-value-text-min-width: $filterbuilder-item-value-text-min-width, + $filterbuilder-item-value-text-padding: $filterbuilder-item-value-text-padding, + $filterbuilder-action-icon-padding: $filterbuilder-action-icon-padding, + $filterbuilder-group-content-padding-left: $filterbuilder-group-content-padding-left, + $filterbuilder-treeview-item-padding-left: $filterbuilder-treeview-item-padding-left, + $filterbuilder-treeview-item-padding-right: $filterbuilder-treeview-item-padding-right, + $filterbuilder-treeview-node-margin-left: $filterbuilder-treeview-node-margin-left, + $filterbuilder-treeview-node-margin-right: $filterbuilder-treeview-node-margin-right, + $filterbuilder-scrollable-max-height: $filterbuilder-scrollable-max-height, +); .dx-filterbuilder { background-color: $filterbuilder-bg; diff --git a/packages/devextreme-scss/scss/widgets/base/gantt/_index.scss b/packages/devextreme-scss/scss/widgets/base/gantt/_index.scss index 223ea622e6a9..949db382c5fa 100644 --- a/packages/devextreme-scss/scss/widgets/base/gantt/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/gantt/_index.scss @@ -1,3 +1,7 @@ +$gantt-toolbar-separator-border-left: 1px solid transparent !default; +$gantt-splitter-bar-width: 2px !default; +$gantt-view-min-width: 1px !default; + .dx-gantt { display: flex; flex-direction: column; @@ -19,7 +23,7 @@ .dx-gantt-toolbar-separator { display: table; height: 100%; - border-left: 1px solid transparent; + border-left: $gantt-toolbar-separator-border-left; } .dx-gantt-si { @@ -42,17 +46,17 @@ } .dx-splitter-wrapper .dx-splitter-border .dx-splitter-bar { - width: 2px; + width: $gantt-splitter-bar-width; } .dx-gantt-view { -webkit-user-select: none; // stylelint-disable-line property-no-vendor-prefix user-select: none; width: 100%; - min-width: 1px; + min-width: $gantt-view-min-width; .dx-gantt-tac-hb { - margin-top: -1px; + margin-top: -1px; // dx-px-nudge: a one-pixel correction on top of the row height } .dx-scrollable-scrollbar { diff --git a/packages/devextreme-scss/scss/widgets/base/gantt/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/gantt/_mixins.scss index 08e37674d6b9..5cfba0a446ee 100644 --- a/packages/devextreme-scss/scss/widgets/base/gantt/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/gantt/_mixins.scss @@ -1,5 +1,6 @@ @use "sass:string"; @use "../string" as *; +@use "../mask" as *; @mixin gantt-icon-colored($data-uri, $color) { $uri: replace("#{$data-uri}", "currentColor", escape("#{$color}")); @@ -7,70 +8,92 @@ background-image: string.unquote($uri); } -@mixin gantt-icons-mixin($color) { +@mixin gantt-icon-masked($data-uri) { + $uri: replace("#{$data-uri}", "currentColor", "%23000"); + + mask-image: string.unquote($uri); +} + +@mixin gantt-icon($data-uri, $color, $masked) { + @if $masked { + @include gantt-icon-masked($data-uri); + } @else { + @include gantt-icon-colored($data-uri, $color); + } +} + +@mixin gantt-icons-mixin($color: null, $masked: false) { .dx-gantt-i { + @if $masked { + mask-position: 50% 50%; + mask-repeat: no-repeat; + mask-size: contain; + + @include masked-glyph-paint(); + } + &.dx-gantt-i-add { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add.svg"), $color, $masked); } &.dx-gantt-i-add-sub-task { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add-sub-task.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add-sub-task.svg"), $color, $masked); } &.dx-gantt-i-add-task { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add-task.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/add-task.svg"), $color, $masked); } &.dx-gantt-i-collapse { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/collapse.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/collapse.svg"), $color, $masked); } &.dx-gantt-i-delete { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/delete.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/delete.svg"), $color, $masked); } &.dx-gantt-i-delete-dependency { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/delete-dependency.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/delete-dependency.svg"), $color, $masked); } &.dx-gantt-i-expand { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/expand.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/expand.svg"), $color, $masked); } &.dx-gantt-i-full-screen { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/full-screen.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/full-screen.svg"), $color, $masked); } &.dx-gantt-i-redo { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/redo.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/redo.svg"), $color, $masked); } &.dx-gantt-i-task-details { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/task-details.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/task-details.svg"), $color, $masked); } &.dx-gantt-i-undo { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/undo.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/undo.svg"), $color, $masked); } &.dx-gantt-i-zoom-in { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/zoom-in.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/zoom-in.svg"), $color, $masked); } &.dx-gantt-i-zoom-out { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/zoom-out.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/zoom-out.svg"), $color, $masked); } &.dx-gantt-i-resource-manager { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/resource-manager.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/resource-manager.svg"), $color, $masked); } &.dx-gantt-i-toggle-resources { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/toggle-resources.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/toggle-resources.svg"), $color, $masked); } &.dx-gantt-i-toggle-dependencies { - @include gantt-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/toggle-dependencies.svg"), $color); + @include gantt-icon(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/gantt/toggle-dependencies.svg"), $color, $masked); } } } diff --git a/packages/devextreme-scss/scss/widgets/base/gridBase/_index.scss b/packages/devextreme-scss/scss/widgets/base/gridBase/_index.scss index 45bd0890a6b9..f212297b899b 100644 --- a/packages/devextreme-scss/scss/widgets/base/gridBase/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/gridBase/_index.scss @@ -17,7 +17,7 @@ flex: 0 0 auto; } -@mixin grid-base($widget-name) { +@mixin grid-base($widget-name, $draggable-column-opacity: 0.5, $column-chooser-item-opacity: 0.5) { @include grid-base-cell($widget-name); .dx-#{$widget-name}-checkbox-size { @@ -25,7 +25,7 @@ } .dx-#{$widget-name}-important-margin { - margin-right: 5px !important; // stylelint-disable-line declaration-no-important + margin-right: 5px !important; // stylelint-disable-line declaration-no-important -- dx-fixed-size: legacy compat helper class, kept for the Foundation layout below } // for Foundation Responsive Framework @@ -43,7 +43,7 @@ } > .dx-pager { - margin-top: -1px; + margin-top: -1px; // dx-px-nudge: pulls the pager up by one border so its top edge overlaps the grid bottom edge } > .dx-#{$widget-name}-rowsview.dx-last-row-border { @@ -74,12 +74,12 @@ padding-top: 0; &:first-child { - padding-top: 1px; + padding-top: 1px; // dx-px-nudge: lifts the first submenu row off the menu border } } .dx-menu-item { - padding: 7px 30px 7px 5px; + padding: $grid-context-menu-item-padding-block $grid-context-menu-item-padding-inline-end $grid-context-menu-item-padding-block $grid-context-menu-item-padding-inline-start; .dx-menu-image { background-position-x: left; @@ -103,8 +103,8 @@ .dx-sort-index-icon { padding-right: $grid-sort-index-offset; - margin-left: -$grid-sort-index-offset; - width: $grid-sort-index-width + $grid-sort-index-offset; + margin-left: grid-negate($grid-sort-index-offset); + width: grid-sum($grid-sort-index-width, $grid-sort-index-offset); } .dx-sort, @@ -121,7 +121,7 @@ bottom: 0; left: 0; right: 0; - margin: -$grid-cell-padding; + margin: grid-negate($grid-cell-padding); } } } @@ -147,19 +147,22 @@ .dx-overlay-content { .dx-popup-title { border-bottom: none; - font-size: 16px; + font-size: $grid-column-chooser-title-font-size; .dx-toolbar-label { - font-size: 16px; + font-size: $grid-column-chooser-title-font-size; } } .dx-popup-content { - padding: 0 20px 20px 20px; + padding: $grid-column-chooser-content-padding; .dx-column-chooser-item { - opacity: 0.5; - margin-bottom: 10px; + @if $column-chooser-item-opacity { + opacity: $column-chooser-item-opacity; + } + + margin-bottom: $grid-column-chooser-item-margin-block-end; &.dx-#{$widget-name}-drag-action { opacity: 1; @@ -168,7 +171,9 @@ } &.dx-#{$widget-name}-draggable-column { - opacity: 0.5; + @if $draggable-column-opacity { + opacity: $draggable-column-opacity; + } } } } @@ -184,7 +189,7 @@ .dx-#{$widget-name}-column-chooser-plain, .dx-#{$widget-name}-column-chooser-list { .dx-treeview-node { .dx-treeview-item { - padding-inline-start: 4px; + padding-inline-start: $grid-column-chooser-tree-view-item-padding-inline-start; } } } @@ -212,7 +217,7 @@ .dx-#{$widget-name}-columns-separator { position: absolute; z-index: 4; - width: 3px; + width: $grid-column-separator-width; } .dx-#{$widget-name}-columns-separator-transparent { @@ -246,7 +251,9 @@ } .dx-#{$widget-name}-draggable-column { - opacity: 0.5; + @if $draggable-column-opacity { + opacity: $draggable-column-opacity; + } } .dx-data-row.dx-state-hover { @@ -295,7 +302,7 @@ border-collapse: collapse; border-spacing: 0; margin: 0; - max-width: 10px; + max-width: 10px; // dx-structural: deliberately tiny so the table sizes to its columns rather than the container — the fixed variant below resets it to none &.dx-#{$widget-name}-table-fixed { max-width: none; @@ -306,7 +313,7 @@ } &.dx-sort-index { - width: $grid-column-header-indicator-width + $grid-sort-index-width; + width: grid-sum($grid-column-header-indicator-width, $grid-sort-index-width); } } } @@ -412,9 +419,9 @@ &::after { content: ""; position: absolute; - border: 2px solid transparent; + border: 2px solid transparent; // dx-line-width: thickness of the invalid-cell ring, drawn on a pseudo-element top: 0; - left: 1px; + left: 1px; // dx-px-nudge: insets that ring by the cell border on the left bottom: 0; right: 0; pointer-events: none; @@ -462,7 +469,7 @@ .dx-#{$widget-name}-headers { position: relative; outline: 0; - min-height: 1px; + min-height: 1px; // dx-structural: one-pixel floor so the headers block keeps layout presence when it has no rows; not a designed height @include user-select(none); } @@ -491,7 +498,7 @@ .dx-sort-indicator, .dx-header-filter-indicator { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width + $grid-text-content-margin)}); + max-width: grid-header-text-max-width(1, 1); &.dx-text-content-alignment-left { margin-right: $grid-text-content-margin; @@ -502,31 +509,31 @@ } &.dx-text-content-alignment-left.dx-text-content-alignment-right { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 2 + $grid-text-content-margin * 2)}); + max-width: grid-header-text-max-width(2, 2); } } .dx-sort-indicator.dx-header-filter-indicator { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 2 + $grid-text-content-margin)}); + max-width: grid-header-text-max-width(2, 1); } .dx-sort-indicator.dx-header-filter-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 4 + $grid-text-content-margin * 2)}); + max-width: grid-header-text-max-width(4, 2); } .dx-sort-indicator.dx-sort-index-indicator { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width + $grid-text-content-margin + $grid-sort-index-width)}); + max-width: grid-header-text-max-width(1, 1, 1); &.dx-header-filter-indicator { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 2 + $grid-text-content-margin + $grid-sort-index-width)}); + max-width: grid-header-text-max-width(2, 1, 1); } &.dx-text-content-alignment-left.dx-text-content-alignment-right { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 2 + $grid-text-content-margin * 2 + $grid-sort-index-width)}); + max-width: grid-header-text-max-width(2, 2, 1); } &.dx-header-filter-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right { - max-width: calc(100% - #{math.round($grid-column-header-indicator-width * 4 + $grid-text-content-margin * 2 + $grid-sort-index-width)}); + max-width: grid-header-text-max-width(4, 2, 1); } } } @@ -538,17 +545,17 @@ &.dx-state-focused::after { content: " "; position: absolute; - top: -1px; - bottom: -1px; - left: -1px; - right: -1px; + top: -1px; // dx-px-nudge: pulls the focus ring out over the cell border + bottom: -1px; // dx-px-nudge: pulls the focus ring out over the cell border + left: -1px; // dx-px-nudge: pulls the focus ring out over the cell border + right: -1px; // dx-px-nudge: pulls the focus ring out over the cell border z-index: 1; pointer-events: none; } } .dx-#{$widget-name}-filter-range-end { - border-top: 1px solid transparent; + border-top: 1px solid transparent; // dx-line-width: hairline placeholder keeping the range-end input aligned with the range-start one } .dx-editor-container { @@ -633,20 +640,20 @@ } .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item { - padding: 5px; - padding-right: 30px; + padding: $grid-context-menu-overlay-item-padding; + padding-right: $grid-context-menu-overlay-item-padding-inline-end; } .dx-menu ul.dx-menu-horizontal > li > .dx-menu-item { - padding: 8px 5px 7px 5px; + padding: $grid-menu-bar-item-padding; } .dx-menu ul.dx-menu-horizontal > li > .dx-menu-item.dx-state-disabled:hover { - padding: 9px 6px 8px 6px; + padding: 9px 6px 8px 6px; // dx-px-nudge: +1px on each side of the resting padding above, compensating the border the disabled item loses on hover } .dx-menu-caption { - padding-left: 6px; + padding-left: $grid-menu-caption-padding-inline-start; } .dx-menu ul .dx-menu-item .dx-menu-chouser-down { @@ -668,7 +675,7 @@ .dx-toolbar-menu-container { .dx-button { - margin-left: 10px; + margin-left: $grid-toolbar-button-margin-inline-start; } } } @@ -683,7 +690,7 @@ .dx-#{$widget-name}-search-panel { margin: 0; - margin-left: 15px; + margin-left: $grid-search-panel-margin-inline-start; } .dx-gridbase-container > .dx-#{$widget-name}-rowsview { @@ -707,7 +714,7 @@ overflow: hidden; &.dx-empty { - height: 100px; + height: $grid-rowsview-empty-height; .dx-scrollable-content { height: 100%; @@ -808,7 +815,7 @@ .dx-#{$widget-name}-bottom-load-panel { text-align: center; - padding: 10px; + padding: $grid-bottom-load-panel-padding; } .dx-#{$widget-name}-hidden-column > * { @@ -878,7 +885,7 @@ .dx-#{$widget-name}.dx-rtl { .dx-menu-subitem { .dx-menu-item { - padding: 7px 5px 7px 30px; + padding: $grid-context-menu-item-padding-block $grid-context-menu-item-padding-inline-start $grid-context-menu-item-padding-block $grid-context-menu-item-padding-inline-end; .dx-menu-image { background-position-x: right; @@ -933,7 +940,7 @@ right: 0; left: auto; margin-left: 0; - margin-right: -2px; + margin-right: -2px; // dx-px-nudge: RTL mirror — pulls the menu out by its own border } & > td:first-child .dx-menu { @@ -941,12 +948,12 @@ } .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item { - padding: 5px; - padding-left: 30px; + padding: $grid-context-menu-overlay-item-padding; + padding-left: $grid-context-menu-overlay-item-padding-inline-end; } .dx-menu-caption { - padding-right: 6px; + padding-right: $grid-menu-caption-padding-inline-start; } } @@ -960,14 +967,14 @@ .dx-toolbar-menu-container { .dx-button { margin-left: 0; - margin-right: 10px; + margin-right: $grid-toolbar-button-margin-inline-start; } } } .dx-#{$widget-name}-search-panel { margin: 0; - margin-right: 15px; + margin-right: $grid-search-panel-margin-inline-start; } } @@ -980,7 +987,7 @@ } .dx-#{$widget-name}-filter-panel { - padding: 10px; + padding: $grid-filter-panel-padding; .dx-#{$widget-name}-filter-panel-text { @include dx-overflow(); @@ -993,12 +1000,12 @@ } .dx-#{$widget-name}-filter-panel-checkbox { - padding-right: 10px; + padding-right: $grid-filter-panel-checkbox-padding-inline-end; } .dx-icon-filter { margin: auto; - margin-right: 7px; + margin-right: $grid-filter-panel-icon-margin-inline-end; cursor: pointer; } } diff --git a/packages/devextreme-scss/scss/widgets/base/gridBase/_variables.scss b/packages/devextreme-scss/scss/widgets/base/gridBase/_variables.scss index e6a121dc6e89..149d3d0f7a3f 100644 --- a/packages/devextreme-scss/scss/widgets/base/gridBase/_variables.scss +++ b/packages/devextreme-scss/scss/widgets/base/gridBase/_variables.scss @@ -1,6 +1,10 @@ +@use "sass:math"; +@use "sass:meta"; + $grid-cell-padding: 7px !default; $grid-texteditor-input-padding: 32px !default; -$grid-total-footer-paddings: 7px !default; + +$grid-total-footer-padding-block: 14px !default; $grid-command-select-column-width: 70px !default; $grid-command-edit-column-width: 100px !default; $grid-command-edit-column-with-icons-width: 80px !default; @@ -11,3 +15,59 @@ $grid-text-content-margin: 3px !default; $grid-sort-index-width: 12px !default; $grid-sort-index-offset: 3px !default; $grid-ai-assistant-confirm-dialog-button-width: 50px !default; + +$grid-context-menu-item-padding-block: 7px !default; +$grid-context-menu-item-padding-inline-start: 5px !default; +$grid-context-menu-item-padding-inline-end: 30px !default; +$grid-context-menu-overlay-item-padding: 5px !default; +$grid-context-menu-overlay-item-padding-inline-end: 30px !default; +$grid-menu-bar-item-padding: 8px 5px 7px 5px !default; +$grid-menu-caption-padding-inline-start: 6px !default; +$grid-column-chooser-title-font-size: 16px !default; +$grid-column-chooser-content-padding: 0 20px 20px 20px !default; +$grid-column-chooser-item-margin-block-end: 10px !default; +$grid-column-chooser-tree-view-item-padding-inline-start: 4px !default; +$grid-column-separator-width: 3px !default; +$grid-toolbar-button-margin-inline-start: 10px !default; +$grid-search-panel-margin-inline-start: 15px !default; +$grid-rowsview-empty-height: 100px !default; +$grid-bottom-load-panel-padding: 10px !default; +$grid-filter-panel-padding: 10px !default; +$grid-filter-panel-checkbox-padding-inline-end: 10px !default; +$grid-filter-panel-icon-margin-inline-end: 7px !default; + +@function grid-negate($value) { + @if meta.type-of($value) == number { + @return -$value; + } + + @return calc(-1 * #{$value}); +} + +@function grid-sum($first, $second) { + @if meta.type-of($first) == number and meta.type-of($second) == number { + @return $first + $second; + } + + @return calc(#{$first} + #{$second}); +} + +@function grid-header-text-max-width($indicators, $margins, $sort-indexes: 0) { + @if meta.type-of($grid-column-header-indicator-width) == number + and meta.type-of($grid-text-content-margin) == number + and meta.type-of($grid-sort-index-width) == number { + $sum: $grid-column-header-indicator-width * $indicators + + $grid-text-content-margin * $margins + + $grid-sort-index-width * $sort-indexes; + + @return calc(100% - #{math.round($sum)}); + } + + $sum: "#{$indicators} * #{$grid-column-header-indicator-width} + #{$margins} * #{$grid-text-content-margin}"; + + @if $sort-indexes > 0 { + $sum: "#{$sum} + #{$sort-indexes} * #{$grid-sort-index-width}"; + } + + @return calc(100% - (#{$sum})); +} diff --git a/packages/devextreme-scss/scss/widgets/base/gridBase/layout/aiChat/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/gridBase/layout/aiChat/_mixins.scss index 6e992a50baa9..956994ccc337 100644 --- a/packages/devextreme-scss/scss/widgets/base/gridBase/layout/aiChat/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/gridBase/layout/aiChat/_mixins.scss @@ -44,7 +44,7 @@ $border-color, ) { .dx-ai-chat__content .dx-chat-messagegroup-alignment-start .dx-chat-messagebubble { - border-width: 1px; + border-width: 1px; // dx-line-width: hairline border of the incoming message bubble border-style: solid; border-color: $border-color; } diff --git a/packages/devextreme-scss/scss/widgets/base/gridBase/layout/cell.scss b/packages/devextreme-scss/scss/widgets/base/gridBase/layout/cell.scss index 17d4de89fe93..8d8cef72957b 100644 --- a/packages/devextreme-scss/scss/widgets/base/gridBase/layout/cell.scss +++ b/packages/devextreme-scss/scss/widgets/base/gridBase/layout/cell.scss @@ -247,8 +247,8 @@ // (0,3,1) .dx-#{$widget-name}-total-footer > .dx-#{$widget-name}-content .dx-row > td { - padding-top: $grid-total-footer-paddings * 2; - padding-bottom: $grid-total-footer-paddings * 2; + padding-top: $grid-total-footer-padding-block; + padding-bottom: $grid-total-footer-padding-block; } // (0,4,0) diff --git a/packages/devextreme-scss/scss/widgets/base/list/_index.scss b/packages/devextreme-scss/scss/widgets/base/list/_index.scss index 8917a1f3ab4d..b889595f4597 100644 --- a/packages/devextreme-scss/scss/widgets/base/list/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/list/_index.scss @@ -1,11 +1,19 @@ @use "../mixins" as *; @use "../button/mixins" as *; +$list-response-wait-opacity: 0.5 !default; + $list-searchbox-margin-bottom: 5px !default; +$list-item-badge-container-width: 20px !default; +$list-slide-menu-button-padding: 0 10px !default; +$list-next-button-padding: 5px !default; + +$list-min-height: 3em !default; // dx-relative +$list-empty-message-button-padding: 0 3em !default; // dx-relative .dx-list { margin: 0; - min-height: 3em; + min-height: $list-min-height; .dx-scrollview-content:focus { outline: 0; @@ -62,12 +70,12 @@ $list-searchbox-margin-bottom: 5px !default; @include dx-overflow(); text-align: start; - min-height: 3em; + min-height: $list-min-height; } .dx-list-item-badge-container { display: table-cell; - width: 20px; + width: $list-item-badge-container-width; text-align: right; vertical-align: middle; } @@ -91,7 +99,7 @@ $list-searchbox-margin-bottom: 5px !default; } .dx-list-item-response-wait { - opacity: 0.5; + opacity: $list-response-wait-opacity; transition: opacity 0.2s linear; } @@ -225,7 +233,7 @@ $list-searchbox-margin-bottom: 5px !default; .dx-list-slide-menu-button { display: table-cell; - padding: 0 10px; + padding: $list-slide-menu-button-padding; vertical-align: middle; } @@ -236,11 +244,11 @@ $list-searchbox-margin-bottom: 5px !default; } .dx-list-next-button { - padding: 5px; + padding: $list-next-button-padding; text-align: center; .dx-button { - padding: 0 3em; + padding: $list-empty-message-button-padding; } } diff --git a/packages/devextreme-scss/scss/widgets/base/list/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/list/_mixins.scss index d27e57091ad4..419bb999b8e1 100644 --- a/packages/devextreme-scss/scss/widgets/base/list/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/list/_mixins.scss @@ -1,5 +1,6 @@ @use "sass:string"; @use "../string" as *; +@use "../mask" as *; @mixin list-icon-colored($data-uri, $current-color) { $uri: replace("#{$data-uri}", "currentColor", escape("#{$current-color}")); @@ -7,8 +8,22 @@ background-image: string.unquote($uri); } -@mixin toggle-delete-icon($color) { +@mixin list-icon-masked($data-uri) { + $uri: replace("#{$data-uri}", "currentColor", "%23000"); + + mask-image: string.unquote($uri); + mask-position: 50% 50%; + mask-repeat: no-repeat; + + @include masked-glyph-paint(); +} + +@mixin toggle-delete-icon($color: null, $masked: false) { .dx-icon-toggle-delete { - @include list-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/list/toggle-delete.svg"), $color); + @if $masked { + @include list-icon-masked(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/list/toggle-delete.svg")); + } @else { + @include list-icon-colored(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/list/toggle-delete.svg"), $color); + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/lookup/_index.scss b/packages/devextreme-scss/scss/widgets/base/lookup/_index.scss index 089e64bf77e7..a84a1090aec2 100644 --- a/packages/devextreme-scss/scss/widgets/base/lookup/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/lookup/_index.scss @@ -6,7 +6,7 @@ .dx-popup-content { .dx-scrollable { - height: calc(100% - 45px); + height: calc(100% - 45px); // dx-fixed-size: the height the popup toolbar takes from the list } } diff --git a/packages/devextreme-scss/scss/widgets/base/pivotGrid/_common.scss b/packages/devextreme-scss/scss/widgets/base/pivotGrid/_common.scss index ccd0ece68a21..925384674a81 100644 --- a/packages/devextreme-scss/scss/widgets/base/pivotGrid/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/pivotGrid/_common.scss @@ -1,3 +1,6 @@ +$pivotgrid-common-field-chooser-drag-width: null !default; +$pivotgrid-common-field-chooser-drag-height: null !default; + .dx-pivotgrid-fields-container { .dx-sort, .dx-header-filter { @@ -232,8 +235,8 @@ .dx-pivotgrid-scrollbar-measure-element { position: absolute; - top: -9999px; - width: 100px; - height: 100px; + top: -9999px; // dx-structural: parks the scrollbar probe off-screen + width: $pivotgrid-common-field-chooser-drag-width; + height: $pivotgrid-common-field-chooser-drag-height; overflow: scroll; } diff --git a/packages/devextreme-scss/scss/widgets/base/pivotGrid/_index.scss b/packages/devextreme-scss/scss/widgets/base/pivotGrid/_index.scss index ce0f503300ff..b279e259b650 100644 --- a/packages/devextreme-scss/scss/widgets/base/pivotGrid/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/pivotGrid/_index.scss @@ -1,3 +1,28 @@ +$pivotgrid-drag-source-opacity: 0.5 !default; +$pivotgrid-fields-container-drag-opacity: 0.8 !default; + +$pivotgrid-position-indicator-vertical-height: 2px !default; +$pivotgrid-position-indicator-horizontal-width: 2px !default; +$pivotgrid-position-indicator-last-margin-left: 3px !default; +$pivotgrid-area-box-margin-bottom: 4px !default; +$pivotgrid-expand-icon-container-outline: 2px solid !default; +$pivotgrid-toolbar-margin-right: 10px !default; +$pivotgrid-field-chooser-button-margin-right: 4px !default; +$pivotgrid-button-margin: 1px !default; +$pivotgrid-last-cell-min-width: 50px !default; +$pivotgrid-icon-sorted-margin-left: 5px !default; +$pivotgrid-fields-area-head-padding: 0 2px !default; +$pivotgrid-treeview-search-margin: 5px !default; +$pivotgrid-area-padding: 5px !default; +$pivotgrid-area-fields-margin-top: 3px !default; +$pivotgrid-position-indicator-last-margin-left-rtl: 1px !default; +$pivotgrid-toolbar-margin-left: 10px !default; +$pivotgrid-field-chooser-button-margin-left: 4px !default; +$pivotgrid-fields-area-head-padding-left: 2px !default; +$pivotgrid-icon-sorted-margin-right: 5px !default; +$pivotgrid-header-cell-side-padding: 2px !default; +$pivotgrid-fields-area-head-cell-side-padding: 2px !default; + $pivotgrid-drag-header-border-color: null !default; $pivotgrid-drag-header-first-shadow-color: null !default; $pivotgrid-drag-header-second-shadow-color: null !default; @@ -21,37 +46,46 @@ $pivotgrid-button-top-padding: null !default; @use "../mixins" as *; @use "../icon_fonts" as *; -@use "./common"; +$pivotgrid-common-field-chooser-drag-width: 100px !default; +$pivotgrid-common-field-chooser-drag-height: 100px !default; + +@use "./common" with ( + $pivotgrid-common-field-chooser-drag-width: $pivotgrid-common-field-chooser-drag-width, + $pivotgrid-common-field-chooser-drag-height: $pivotgrid-common-field-chooser-drag-height, +); +@use "sass:meta"; -$pivotgrid-drag-header-border: 1px solid !default; -$pivotgrid-drag-header-first-shadow: 0 0 1px $pivotgrid-drag-header-first-shadow-color !default; -$pivotgrid-drag-header-second-shadow: 0 1px 3px $pivotgrid-drag-header-second-shadow-color !default; $pivotgrid-border-width: 1px !default; +$pivotgrid-focus-outline-width: 2px !default; +$pivotgrid-focus-outline-offset: -2px !default; +$pivotgrid-drag-header-border: $pivotgrid-border-width solid !default; +$pivotgrid-drag-header-first-shadow: 0 0 1px $pivotgrid-drag-header-first-shadow-color; // dx-shadow-geometry +$pivotgrid-drag-header-second-shadow: 0 1px 3px $pivotgrid-drag-header-second-shadow-color; // dx-shadow-geometry $pivotgrid-border: $pivotgrid-border-width solid !default; $pivotgrid-icon-size: 14px !default; $pivotgrid-common-field-padding: 2px !default; -$pivotgrid-filter-area-border-spacing: $pivotgrid-common-left-right-padding - $pivotgrid-common-field-padding $pivotgrid-header-top-bottom-padding - $pivotgrid-common-field-padding !default; -$pivotgrid-expand-icon-offset: -5px !default; +$pivotgrid-filter-area-border-spacing: if(meta.type-of($pivotgrid-common-left-right-padding) == number and meta.type-of($pivotgrid-common-field-padding) == number, $pivotgrid-common-left-right-padding - $pivotgrid-common-field-padding, calc(#{$pivotgrid-common-left-right-padding} - #{$pivotgrid-common-field-padding})) if(meta.type-of($pivotgrid-header-top-bottom-padding) == number and meta.type-of($pivotgrid-common-field-padding) == number, $pivotgrid-header-top-bottom-padding - $pivotgrid-common-field-padding, calc(#{$pivotgrid-header-top-bottom-padding} - #{$pivotgrid-common-field-padding})) !default; +$pivotgrid-expand-icon-offset: -5px; // dx-fixed-size: negated at its use site $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid-fields-container { .dx-position-indicator { &.dx-position-indicator-vertical { - margin-top: -4px; - margin-left: -1px; - height: 2px; + margin-top: -4px; // dx-fixed-size: pulls the element onto the grid line + margin-left: -1px; // dx-fixed-size: pulls the element onto the grid line + height: $pivotgrid-position-indicator-vertical-height; &.dx-position-indicator-last { - margin-top: -3px; + margin-top: -3px; // dx-fixed-size: pulls the element onto the grid line } } &.dx-position-indicator-horizontal { - margin-left: -3px; - width: 2px; + margin-left: -3px; // dx-fixed-size: pulls the element onto the grid line + width: $pivotgrid-position-indicator-horizontal-width; &.dx-position-indicator-last { - margin-left: 3px; + margin-left: $pivotgrid-position-indicator-last-margin-left; } } } @@ -92,13 +126,15 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-area-field:focus-visible { - outline: 2px solid; + outline: $pivotgrid-focus-outline-width solid; outline-color: $pivotgrid-accent-color; - outline-offset: -2px; + outline-offset: $pivotgrid-focus-outline-offset; } &.dx-drag { - opacity: 0.8; + @if $pivotgrid-fields-container-drag-opacity { + opacity: $pivotgrid-fields-container-drag-opacity; + } .dx-area-field.dx-area-box { box-shadow: $pivotgrid-drag-header-first-shadow, $pivotgrid-drag-header-second-shadow; @@ -109,14 +145,16 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-area-field.dx-area-box { background-color: $pivotgrid-area-background; - margin-bottom: 4px; + margin-bottom: $pivotgrid-area-box-margin-bottom; border: $pivotgrid-border; border-color: $pivotgrid-border-color; padding: $pivotgrid-common-top-bottom-padding $pivotgrid-common-left-right-padding; } .dx-drag-source { - opacity: 0.5; + @if $pivotgrid-drag-source-opacity { + opacity: $pivotgrid-drag-source-opacity; + } } .dx-column-indicators { @@ -132,16 +170,16 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid { td:has(> .dx-expand-icon-container:focus-visible) { - outline: 2px solid; + outline: $pivotgrid-expand-icon-container-outline; outline-color: $pivotgrid-accent-color; - outline-offset: -2px; + outline-offset: $pivotgrid-focus-outline-offset; } .dx-pivotgrid-horizontal-headers td:focus-visible, .dx-pivotgrid-vertical-headers td:focus-visible { - outline: 2px solid; + outline: $pivotgrid-expand-icon-container-outline; outline-color: $pivotgrid-accent-color; - outline-offset: -2px; + outline-offset: $pivotgrid-focus-outline-offset; } .dx-expand-icon-container:focus-visible { @@ -149,15 +187,15 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-pivotgrid-toolbar .dx-button:focus-visible { - outline: 2px solid; + outline: $pivotgrid-focus-outline-width solid; outline-color: $pivotgrid-accent-color; - outline-offset: -2px; + outline-offset: $pivotgrid-focus-outline-offset; } .dx-column-header, .dx-filter-header { .dx-pivotgrid-toolbar { - margin-right: 10px; + margin-right: $pivotgrid-toolbar-margin-right; float: right; display: inline-block; position: relative; @@ -168,7 +206,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-pivotgrid-field-chooser-button { - margin-right: 4px; + margin-right: $pivotgrid-field-chooser-button-margin-right; } } } @@ -247,7 +285,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid-toolbar { .dx-button { - margin: 1px; + margin: $pivotgrid-button-margin; } } } @@ -272,7 +310,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; td { position: relative; border: none; - padding: $pivotgrid-header-top-bottom-padding 2px; + padding: $pivotgrid-header-top-bottom-padding $pivotgrid-header-cell-side-padding; } tr > td:first-child { @@ -293,10 +331,10 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-group-connector { position: absolute; - width: 2px; + width: $pivotgrid-position-indicator-horizontal-width; top: 50%; - height: 2px; - margin-top: -1px; + height: $pivotgrid-position-indicator-vertical-height; + margin-top: -1px; // dx-fixed-size: pulls the element onto the grid line background-color: $pivotgrid-border-color; &.dx-group-connector-prev { @@ -371,7 +409,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; td { // max-width: 150px; - min-width: 50px; + min-width: $pivotgrid-last-cell-min-width; border-right: $pivotgrid-border; border-right-color: $pivotgrid-border-color; } @@ -491,7 +529,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-icon-sorted { display: inline-block; - margin-left: 5px; + margin-left: $pivotgrid-icon-sorted-margin-left; width: $pivotgrid-icon-size; } @@ -500,7 +538,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid-fields-area-head { td { - padding: 0 2px; + padding: $pivotgrid-fields-area-head-padding; } } } @@ -522,7 +560,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-treeview-search { - margin: 5px; + margin: $pivotgrid-treeview-search-margin; } .dx-area-icon { @@ -531,7 +569,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-area { - padding: 5px; + padding: $pivotgrid-area-padding; display: flex; flex-grow: 1; flex-direction: column; @@ -539,7 +577,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; @include flexible-scrollable(); .dx-area-fields { - margin-top: 3px; + margin-top: $pivotgrid-area-fields-margin-top; border: $pivotgrid-border; border-color: $pivotgrid-border-color; display: flex; @@ -553,7 +591,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; } .dx-area-fields[group] { - padding: 5px; + padding: $pivotgrid-area-padding; background-color: $pivotgrid-totalcolor; display: flex; } @@ -567,10 +605,10 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid-fields-container { .dx-position-indicator { &.dx-position-indicator-horizontal { - margin-left: -3px; + margin-left: -3px; // dx-fixed-size: pulls the element onto the grid line &.dx-position-indicator-last { - margin-left: 1px; + margin-left: $pivotgrid-position-indicator-last-margin-left-rtl; } } } @@ -586,12 +624,12 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-filter-header { .dx-pivotgrid-toolbar { margin-right: 0; - margin-left: 10px; + margin-left: $pivotgrid-toolbar-margin-left; float: left; .dx-pivotgrid-field-chooser-button { margin-right: 0; - margin-left: 4px; + margin-left: $pivotgrid-field-chooser-button-margin-left; } } } @@ -599,7 +637,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-column-header { .dx-pivotgrid-fields-area-head { tr > td:first-child { - padding-left: 2px; + padding-left: $pivotgrid-fields-area-head-padding-left; padding-right: 0; } } @@ -607,7 +645,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-pivotgrid-fields-area-head { tr > td { - padding: $pivotgrid-common-left-right-padding 2px; + padding: $pivotgrid-common-left-right-padding $pivotgrid-fields-area-head-cell-side-padding; } tr > td:first-child { @@ -707,7 +745,7 @@ $pivotgrid-expand-icon-text-offset: 0 !default; .dx-icon-sorted { margin-left: 0; - margin-right: 5px; + margin-right: $pivotgrid-icon-sorted-margin-right; } .dx-pivotgridfieldchooser-container .dx-col { diff --git a/packages/devextreme-scss/scss/widgets/base/popover/_index.scss b/packages/devextreme-scss/scss/widgets/base/popover/_index.scss index d9a22934371f..04e6119f6a7d 100644 --- a/packages/devextreme-scss/scss/widgets/base/popover/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/popover/_index.scss @@ -1,5 +1,5 @@ @use "./mixins" as *; -@include dx-popover-arrow-size(20px); +@include dx-popover-arrow-size(20px); // dx-fixed-size: the arrow width; the mixin divides it by sqrt(2), so a var() cannot pass .dx-popover-arrow { position: absolute; diff --git a/packages/devextreme-scss/scss/widgets/base/radioButton/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/radioButton/_mixins.scss index 0b5446215e20..bd61ebb072a0 100644 --- a/packages/devextreme-scss/scss/widgets/base/radioButton/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/radioButton/_mixins.scss @@ -1,4 +1,5 @@ @use "sass:math"; +@use "sass:meta"; @mixin dx-radiobutton-icon-mixin( $icon-size, @@ -9,7 +10,7 @@ $ripple-transition: all 0s ease 0s, ) { $border-radius: 50%; - $dot-icon-border-width: math.div($icon-size - $border-width * 2 - $dot-size, 2); + $dot-icon-border-width: if(meta.type-of($icon-size) == number and meta.type-of($border-width) == number and meta.type-of($dot-size) == number, math.div($icon-size - $border-width * 2 - $dot-size, 2), calc((#{$icon-size} - #{$border-width} * 2 - #{$dot-size}) / 2)); .dx-radiobutton-icon { position: relative; @@ -80,7 +81,12 @@ $useRipple: false, $focused-ripple-bg: transparent, $invalid-focused-ripple-bg: transparent, + $checked-border-color: null, + $invalid-border-color: null, ) { + $checked-border: if($checked-border-color, $checked-border-color, $checked-color); + $invalid-border: if($invalid-border-color, $invalid-border-color, $invalid-color); + .dx-radiobutton-icon { border-color: $border-color; background-color: $foreground-color; @@ -92,7 +98,7 @@ .dx-radiobutton-icon-checked { @if $useRipple { - border-color: $checked-color; + border-color: $checked-border; } .dx-radiobutton-icon-dot { @@ -151,7 +157,7 @@ .dx-invalid { .dx-radiobutton-icon { - border-color: $invalid-color; + border-color: $invalid-border; } @if $useRipple { diff --git a/packages/devextreme-scss/scss/widgets/base/radioGroup/_index.scss b/packages/devextreme-scss/scss/widgets/base/radioGroup/_index.scss index 1d68e8a53168..67ed9136689f 100644 --- a/packages/devextreme-scss/scss/widgets/base/radioGroup/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/radioGroup/_index.scss @@ -1,13 +1,16 @@ @use "./mixins" as *; +$radiogroup-radio-value-container-padding-inline-end: 10px !default; +$radiogroup-collection-column-gap: 17px !default; + .dx-radio-value-container { - padding-inline-end: 10px; + padding-inline-end: $radiogroup-radio-value-container-padding-inline-end; } .dx-radiogroup-horizontal { .dx-collection { display: flex; flex-wrap: wrap; - column-gap: 17px; + column-gap: $radiogroup-collection-column-gap; } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss index 78f5e4188549..6dd9bb85854e 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/_common.scss @@ -1,7 +1,10 @@ @use "sass:math"; @use "../../base/mixins" as *; -$scheduler-appointment-collector-margin: 3px !default; +$scheduler-appointment-collector-margin: 3px; // dx-fixed-size: the collector margin, multiplied elsewhere so a var() cannot pass + +$scheduler-common-collector-margin: null !default; +$scheduler-common-collector-size: null !default; .dx-scheduler { .dx-empty-message { @@ -62,7 +65,7 @@ $scheduler-appointment-collector-margin: 3px !default; } .dx-scheduler-adaptive { - @media (max-width: 450px) { + @media (max-width: 450px) { // dx-literal-required: a media condition, var() is invalid here .dx-scheduler-view-switcher-label { display: none; } @@ -75,9 +78,9 @@ $scheduler-appointment-collector-margin: 3px !default; .dx-scheduler-appointment-collector, .dx-scheduler-appointment-collector.dx-scheduler-appointment-collector-compact { - height: 28px; - width: 28px; - margin: 0 3px; + height: $scheduler-common-collector-size; + width: $scheduler-common-collector-size; + margin: $scheduler-common-collector-margin; } .dx-scheduler-work-space.dx-scheduler-timeline { diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss index 7e599e58783f..4eff439561e5 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/_index.scss @@ -39,40 +39,75 @@ $agenda-appointment-recurrence-icon-color: null !default; @use "./mixins" as *; @use "../mixins" as *; @use "../icon_fonts" as *; -@use "./common"; +$scheduler-common-collector-margin: 0 3px !default; +$scheduler-common-collector-size: 28px !default; + +@use "./common" with ( + $scheduler-common-collector-margin: $scheduler-common-collector-margin, + $scheduler-common-collector-size: $scheduler-common-collector-size, +); +$scheduler-tooltip-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15) !default; + +$scheduler-tooltip-width: 360px !default; +$scheduler-tooltip-content-padding: 5px !default; +$scheduler-tooltip-title-margin-top: 7px !default; +$scheduler-tooltip-title-margin-left: 5px !default; +$scheduler-tooltip-date-margin: 5px 10px !default; +$scheduler-tooltip-remove-margin-top: 10px !default; +$scheduler-tooltip-subject-font-size: 16px !default; +$scheduler-tooltip-date-font-size: 12px !default; +$scheduler-tooltip-date-opacity: 0.8 !default; +$scheduler-appointment-content-details-font-size: 11px !default; + @use "./tooltip" with ( + $scheduler-tooltip-width: $scheduler-tooltip-width, + $scheduler-tooltip-content-padding: $scheduler-tooltip-content-padding, + $scheduler-tooltip-title-margin-top: $scheduler-tooltip-title-margin-top, + $scheduler-tooltip-title-margin-left: $scheduler-tooltip-title-margin-left, + $scheduler-tooltip-date-margin: $scheduler-tooltip-date-margin, + $scheduler-tooltip-remove-margin-top: $scheduler-tooltip-remove-margin-top, + $scheduler-tooltip-shadow: $scheduler-tooltip-shadow, $scheduler-appointment-base-color: $scheduler-appointment-base-color, $scheduler-tooltip-appointment-text-color: $scheduler-tooltip-appointment-text-color, $scheduler-appointment-overlay-bg: $scheduler-appointment-overlay-bg, - $scheduler-tooltip-list-focused-bg: $scheduler-tooltip-list-focused-bg + $scheduler-tooltip-list-focused-bg: $scheduler-tooltip-list-focused-bg, + $scheduler-tooltip-subject-font-size: $scheduler-tooltip-subject-font-size, + $scheduler-tooltip-date-font-size: $scheduler-tooltip-date-font-size, + $scheduler-tooltip-date-opacity: $scheduler-tooltip-date-opacity ); $scheduler-appointment-min-size: 4px !default; $scheduler-appointment-reduced-content-padding: 40px !default; -$scheduler-hovered-appointment-top-shadow-size: 5px !default; -$scheduler-focused-cell-shadow: inset 0 0 0 1px $scheduler-appointment-base-color !default; +$scheduler-hovered-appointment-top-shadow-size: 5px; // dx-fixed-size: negated and composed into shadows, so a var() cannot pass +$scheduler-focused-cell-shadow: inset 0 0 0 1px $scheduler-appointment-base-color; // dx-shadow-geometry -$scheduler-vertical-appointment-resizable-hovering-shadow: inset 0 $scheduler-hovered-appointment-top-shadow-size 0 0 $scheduler-appointment-start-color, inset 0 -2px 0 0 $scheduler-appointment-start-color !default; +$scheduler-vertical-appointment-resizable-hovering-shadow: inset 0 $scheduler-hovered-appointment-top-shadow-size 0 0 $scheduler-appointment-start-color, inset 0 -2px 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry $scheduler-vertical-appointment-hovering-shadow: inset 0 $scheduler-hovered-appointment-top-shadow-size 0 0 $scheduler-appointment-start-color !default; -$scheduler-vertical-appointment-shadow: inset 0 2px 0 0 $scheduler-appointment-start-color !default; -$scheduler-vertical-appointment-resizing-shadow: inset 0 -2px 0 0 $scheduler-appointment-start-color, $scheduler-vertical-appointment-shadow !default; +$scheduler-vertical-appointment-shadow: inset 0 2px 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry +$scheduler-vertical-appointment-resizing-shadow: inset 0 -2px 0 0 $scheduler-appointment-start-color, $scheduler-vertical-appointment-shadow; // dx-shadow-geometry $scheduler-appointment-dragging-shadow: 7px 7px 15px 0 rgba(50, 50, 50, 0.2) !default; -$scheduler-horizontal-appointment-resizable-hovering-shadow: inset $scheduler-hovered-appointment-top-shadow-size 0 0 0 $scheduler-appointment-start-color, inset -2px 0 0 0 $scheduler-appointment-start-color !default; -$scheduler-horizontal-appointment-resizable-hovering-shadow-rtl: inset (-$scheduler-hovered-appointment-top-shadow-size) 0 0 0 $scheduler-appointment-start-color, inset 2px 0 0 0 $scheduler-appointment-start-color !default; +$scheduler-horizontal-appointment-resizable-hovering-shadow: inset $scheduler-hovered-appointment-top-shadow-size 0 0 0 $scheduler-appointment-start-color, inset -2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry +$scheduler-horizontal-appointment-resizable-hovering-shadow-rtl: inset (-$scheduler-hovered-appointment-top-shadow-size) 0 0 0 $scheduler-appointment-start-color, inset 2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry $scheduler-horizontal-appointment-hovering-shadow: inset $scheduler-hovered-appointment-top-shadow-size 0 0 0 $scheduler-appointment-start-color !default; $scheduler-horizontal-appointment-hovering-shadow-rtl: inset (-$scheduler-hovered-appointment-top-shadow-size) 0 0 0 $scheduler-appointment-start-color !default; -$scheduler-horizontal-appointment-shadow: inset 2px 0 0 0 $scheduler-appointment-start-color !default; -$scheduler-horizontal-appointment-shadow-rtl: inset -2px 0 0 0 $scheduler-appointment-start-color !default; -$scheduler-horizontal-appointment-resizing-shadow: inset -2px 0 0 0 $scheduler-appointment-start-color, $scheduler-horizontal-appointment-shadow !default; +$scheduler-horizontal-appointment-shadow: inset 2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry +$scheduler-horizontal-appointment-shadow-rtl: inset -2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry +$scheduler-horizontal-appointment-resizing-shadow: inset -2px 0 0 0 $scheduler-appointment-start-color, $scheduler-horizontal-appointment-shadow; // dx-shadow-geometry $scheduler-grouped-appointment-month-text-size: 12px !default; -$scheduler-base-border: 1px solid !default; -$scheduler-transparent-top-border: 1px solid transparent !default; -$scheduler-accent-border: 1px solid !default; +$scheduler-border-width: 1px !default; +$scheduler-workspace-info-font-size: 20px !default; +$scheduler-small-font-size: 14px !default; +$scheduler-group-header-table-cell-height: 30px !default; +$scheduler-month-date-text-size: 16px !default; +$scheduler-month-date-text-padding: 6px !default; +$scheduler-base-border: $scheduler-border-width solid !default; +$scheduler-transparent-top-border: $scheduler-border-width solid transparent !default; +$scheduler-accent-border: $scheduler-border-width solid !default; $scheduler-reduced-icon-offset: 5px !default; $scheduler-recurrence-icon-offset: 20px !default; @@ -86,14 +121,54 @@ $scheduler-small-size-element-offset: $scheduler-left-column-width * $scheduler- $scheduler-time-indicator-font-size: 30px !default; $scheduler-time-indicator-size: 1px !default; -$scheduler-time-indicator-top: 14px !default; -$scheduler-time-indicator-left: 12px !default; +$scheduler-time-indicator-top: 14px; // dx-fixed-size: negated at its use site +$scheduler-time-indicator-left: 12px; // dx-fixed-size: negated at its use site $scheduler-time-indicator-shadow-color: rgba(255, 255, 255, 0.1) !default; -$scheduler-time-indicator-shadow: 0 1px 0 0 $scheduler-time-indicator-shadow-color !default; -$scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1px 0 0 !default; +$scheduler-time-indicator-shadow: 0 1px 0 0 $scheduler-time-indicator-shadow-color; // dx-shadow-geometry +$scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1px 0 0; // dx-shadow-geometry + +$scheduler-appointment-icon-font-size: 18px !default; +$scheduler-appointment-date-opacity: 0.7 !default; +$scheduler-appointment-resizing-opacity: 0.7 !default; +$scheduler-appointment-disabled-opacity: 0.6 !default; +$scheduler-appointment-drag-source-opacity: 0.7 !default; +$agenda-appointment-title-font-weight: 700 !default; +$agenda-appointment-details-font-size: 12px !default; +$agenda-appointment-details-opacity: 0.7 !default; + +$scheduler-appointment-reduced-icon-top: 3px !default; +$scheduler-appointment-active-marker-border-radius: 4px !default; +$scheduler-appointment-content-details-margin-top: 2px !default; +$scheduler-appointment-reduced-icon-rtl-left: 3px !default; +$agenda-appointment-item-padding: 10px !default; +$agenda-appointment-item-border-radius: 5px !default; +$agenda-appointment-right-layout-margin-left: 10px !default; +$agenda-appointment-allday-padding-right: 5px !default; +$agenda-appointment-resource-item-margin-left: 15px !default; +$agenda-appointment-resource-value-margin-left: 3px !default; +$agenda-appointment-rtl-margin-right: 10px !default; @use "./appointment" with ( + $scheduler-appointment-reduced-icon-top: $scheduler-appointment-reduced-icon-top, + $scheduler-appointment-active-marker-border-radius: $scheduler-appointment-active-marker-border-radius, + $scheduler-appointment-content-details-margin-top: $scheduler-appointment-content-details-margin-top, + $scheduler-appointment-reduced-icon-rtl-left: $scheduler-appointment-reduced-icon-rtl-left, + $agenda-appointment-item-padding: $agenda-appointment-item-padding, + $agenda-appointment-item-border-radius: $agenda-appointment-item-border-radius, + $agenda-appointment-right-layout-margin-left: $agenda-appointment-right-layout-margin-left, + $agenda-appointment-allday-padding-right: $agenda-appointment-allday-padding-right, + $agenda-appointment-resource-item-margin-left: $agenda-appointment-resource-item-margin-left, + $agenda-appointment-resource-value-margin-left: $agenda-appointment-resource-value-margin-left, + $agenda-appointment-rtl-margin-right: $agenda-appointment-rtl-margin-right, + $scheduler-appointment-icon-font-size: $scheduler-appointment-icon-font-size, + $scheduler-appointment-date-opacity: $scheduler-appointment-date-opacity, + $scheduler-appointment-resizing-opacity: $scheduler-appointment-resizing-opacity, + $scheduler-appointment-disabled-opacity: $scheduler-appointment-disabled-opacity, + $scheduler-appointment-drag-source-opacity: $scheduler-appointment-drag-source-opacity, + $agenda-appointment-title-font-weight: $agenda-appointment-title-font-weight, + $agenda-appointment-details-font-size: $agenda-appointment-details-font-size, + $agenda-appointment-details-opacity: $agenda-appointment-details-opacity, $scheduler-transparent-top-border: $scheduler-transparent-top-border, $scheduler-appointment-base-color: $scheduler-appointment-base-color, $scheduler-appointment-text-color: $scheduler-appointment-text-color, @@ -116,7 +191,41 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p $agenda-appointment-active-bg: $agenda-appointment-active-bg, $agenda-appointment-title-font-size: $agenda-appointment-title-font-size ); +$scheduler-views-header-border: 2px solid !default; +$scheduler-views-empty-cell-border-bottom: 1px solid !default; +$scheduler-views-empty-cell-border-right: 1px solid !default; +$scheduler-views-empty-cell-border-left: 1px solid !default; +$scheduler-views-first-child-border-left: 1px solid transparent !default; +$scheduler-views-time-panel-border-bottom: 1px solid transparent !default; +$scheduler-views-group-header-padding: 0 5px !default; +$scheduler-views-group-header-padding-alt: 0 5px 0 10px !default; +$scheduler-views-time-indicator-height: 1px !default; +$scheduler-views-group-header-content-height: 40px !default; +$scheduler-views-vertical-group-min-height: 100px !default; + +$scheduler-timeline-min-height: 100px !default; +$scheduler-timeline-group-two-empty-cell-width: 160px !default; +$scheduler-timeline-group-header-width: 80px !default; +$scheduler-timeline-group-three-empty-cell-width: 240px !default; +$scheduler-timeline-cell-width: 200px !default; +$scheduler-agenda-left-column-width: 70px !default; +$scheduler-agenda-date-table-padding-top: 10px !default; +$scheduler-renovation-virtual-row-height: 50px !default; + @use "./views" with ( + $scheduler-workspace-info-font-size: $scheduler-workspace-info-font-size, + $scheduler-small-font-size: $scheduler-small-font-size, + $scheduler-group-header-table-cell-height: $scheduler-group-header-table-cell-height, + $scheduler-month-date-text-size: $scheduler-month-date-text-size, + $scheduler-month-date-text-padding: $scheduler-month-date-text-padding, + $scheduler-timeline-min-height: $scheduler-timeline-min-height, + $scheduler-timeline-group-two-empty-cell-width: $scheduler-timeline-group-two-empty-cell-width, + $scheduler-timeline-group-header-width: $scheduler-timeline-group-header-width, + $scheduler-timeline-group-three-empty-cell-width: $scheduler-timeline-group-three-empty-cell-width, + $scheduler-timeline-cell-width: $scheduler-timeline-cell-width, + $scheduler-agenda-left-column-width: $scheduler-agenda-left-column-width, + $scheduler-agenda-date-table-padding-top: $scheduler-agenda-date-table-padding-top, + $scheduler-renovation-virtual-row-height: $scheduler-renovation-virtual-row-height, $scheduler-workspace-background-color: $scheduler-workspace-background-color, $scheduler-workspace-accent-color: $scheduler-workspace-accent-color, $scheduler-small-size-factor: $scheduler-small-size-factor, @@ -141,12 +250,31 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p $scheduler-first-month-cell-background-color: $scheduler-first-month-cell-background-color, $scheduler-panel-text-color: $scheduler-panel-text-color, + $scheduler-views-header-border: $scheduler-views-header-border, + $scheduler-views-empty-cell-border-bottom: $scheduler-views-empty-cell-border-bottom, + $scheduler-views-empty-cell-border-right: $scheduler-views-empty-cell-border-right, + $scheduler-views-empty-cell-border-left: $scheduler-views-empty-cell-border-left, + $scheduler-views-first-child-border-left: $scheduler-views-first-child-border-left, + $scheduler-views-time-panel-border-bottom: $scheduler-views-time-panel-border-bottom, + $scheduler-views-group-header-padding: $scheduler-views-group-header-padding, + $scheduler-views-group-header-padding-alt: $scheduler-views-group-header-padding-alt, + $scheduler-views-time-indicator-height: $scheduler-views-time-indicator-height, + $scheduler-views-group-header-content-height: $scheduler-views-group-header-content-height, + $scheduler-views-vertical-group-min-height: $scheduler-views-vertical-group-min-height, ); @function calculate-small-left-column-size($size) { @return $size + $scheduler-left-column-width * $scheduler-small-size-factor; } +$scheduler-appointment-content-horizontal-padding: 0 7px !default; +$scheduler-appointment-recurrence-icon-top: 9px !default; +$scheduler-header-panel-current-time-cell-height: 2px !default; +$scheduler-appointment-content-recurrence-padding: 0 25px 0 7px !default; +$scheduler-rtl-padding: 0 7px 0 25px !default; +$scheduler-appointment-collector-width: 24px !default; +$scheduler-appointment-content-padding-right: 5px !default; + @mixin scheduler-mixin() { .dx-scheduler-container { display: flex; @@ -198,7 +326,7 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p .dx-scheduler-work-space-work-week, .dx-scheduler-work-space-day { .dx-scheduler-all-day-appointment .dx-scheduler-appointment-content { - padding: 0 7px; + padding: $scheduler-appointment-content-horizontal-padding; } .dx-scheduler-appointment-reduced { @@ -210,7 +338,7 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) { .dx-scheduler-appointment-reduced-icon, .dx-scheduler-appointment-recurrence-icon { - top: 9px; + top: $scheduler-appointment-recurrence-icon-top; } } @@ -323,8 +451,8 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p right: 0; /* NOTE: Cell has 1px table cell () border, so -1px bottom is ok here. */ - bottom: -1px; - height: 2px; + bottom: -1px; // dx-px-nudge: sits on the 1px border, see the note above + height: $scheduler-header-panel-current-time-cell-height; background-color: $scheduler-time-indicator-color; } } @@ -338,14 +466,14 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p .dx-scheduler-work-space-month { .dx-scheduler-appointment-content { - padding: 0 7px; + padding: $scheduler-appointment-content-horizontal-padding; } .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content { - padding: 0 25px 0 7px; + padding: $scheduler-appointment-content-recurrence-padding; .dx-rtl & { - padding: 0 7px 0 25px; + padding: $scheduler-rtl-padding; } } @@ -446,7 +574,7 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p } .dx-scheduler-appointment-content-details { - font-size: 11px; + font-size: $scheduler-appointment-content-details-font-size; white-space: pre; overflow: hidden; @@ -609,7 +737,7 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p .dx-scheduler-appointment-collector-compact { &.dx-scheduler-appointment-collector { - width: 24px; + width: $scheduler-appointment-collector-width; } .dx-scheduler-appointment-collector-content, @@ -656,7 +784,7 @@ $scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1p .dx-scheduler-work-space-day { .dx-scheduler-appointment-reduced { .dx-scheduler-appointment-content { - padding-right: 5px; + padding-right: $scheduler-appointment-content-padding-right; padding-left: $scheduler-appointment-reduced-content-padding; } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/_tooltip.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/_tooltip.scss index ef43001ff74c..3df40dd82882 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/_tooltip.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/_tooltip.scss @@ -1,20 +1,32 @@ +$scheduler-tooltip-date-opacity: 0.8 !default; + @use "./mixins" as *; +$scheduler-tooltip-shadow: null !default; $scheduler-appointment-base-color: null !default; $scheduler-tooltip-appointment-text-color: null !default; $scheduler-appointment-overlay-bg: null !default; $scheduler-tooltip-list-focused-bg: null !default; +$scheduler-tooltip-width: null !default; +$scheduler-tooltip-content-padding: null !default; +$scheduler-tooltip-title-margin-top: null !default; +$scheduler-tooltip-title-margin-left: null !default; +$scheduler-tooltip-date-margin: null !default; +$scheduler-tooltip-remove-margin-top: null !default; +$scheduler-tooltip-subject-font-size: null !default; +$scheduler-tooltip-date-font-size: null !default; + .dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper, .dx-scheduler-overlay-panel { .dx-popup-content { padding: 0; .dx-list-item { - width: 360px; + width: $scheduler-tooltip-width; .dx-list-item-content { - padding: 5px; + padding: $scheduler-tooltip-content-padding; } &.dx-state-focused { @@ -24,15 +36,15 @@ $scheduler-tooltip-list-focused-bg: null !default; } .dx-overlay-content { - box-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15); + box-shadow: $scheduler-tooltip-shadow; } .dx-tooltip-appointment-item { display: flex; .dx-tooltip-appointment-item-marker-body { - margin-top: 7px; - margin-left: 5px; + margin-top: $scheduler-tooltip-title-margin-top; + margin-left: $scheduler-tooltip-title-margin-left; background: $scheduler-appointment-base-color; @include use-colored-marker(20); @@ -44,7 +56,7 @@ $scheduler-tooltip-list-focused-bg: null !default; .dx-tooltip-appointment-item-content { flex-basis: 100%; - margin: 5px 10px; + margin: $scheduler-tooltip-date-margin; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; @@ -53,7 +65,7 @@ $scheduler-tooltip-list-focused-bg: null !default; .dx-tooltip-appointment-item-content-subject { text-align: left; font-weight: bold; - font-size: 16px; + font-size: $scheduler-tooltip-subject-font-size; letter-spacing: 0.01em; overflow: hidden; text-overflow: ellipsis; @@ -62,9 +74,13 @@ $scheduler-tooltip-list-focused-bg: null !default; .dx-tooltip-appointment-item-content-date { text-align: left; - font-size: 12px; - opacity: 0.8; - margin-top: 10px; + font-size: $scheduler-tooltip-date-font-size; + + @if $scheduler-tooltip-date-opacity { + opacity: $scheduler-tooltip-date-opacity; + } + + margin-top: $scheduler-tooltip-remove-margin-top; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/_index.scss index 2e0706a69763..693b069a1b42 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/_index.scss @@ -1,3 +1,8 @@ +$scheduler-appointment-icon-font-size: null !default; +$scheduler-appointment-date-opacity: null !default; +$scheduler-appointment-resizing-opacity: null !default; +$scheduler-appointment-disabled-opacity: null !default; +$scheduler-appointment-drag-source-opacity: null !default; $scheduler-transparent-top-border: null !default; $scheduler-appointment-base-color: null !default; $scheduler-appointment-text-color: null !default; @@ -18,9 +23,26 @@ $agenda-appointment-text-color: null !default; $agenda-appointment-recurrence-icon-color: null !default; $agenda-appointment-hover-bg: null !default; $agenda-appointment-active-bg: null !default; +$agenda-appointment-title-font-weight: null !default; +$agenda-appointment-details-font-size: null !default; +$agenda-appointment-details-opacity: null !default; $agenda-appointment-title-font-size: null !default; +$scheduler-appointment-reduced-icon-top: 3px !default; +$scheduler-appointment-active-marker-border-radius: 4px !default; +$scheduler-appointment-content-details-margin-top: 2px !default; +$scheduler-appointment-reduced-icon-rtl-left: 3px !default; + @use "./regular" with ( + $appointment-reduced-icon-top: $scheduler-appointment-reduced-icon-top, + $appointment-active-marker-border-radius: $scheduler-appointment-active-marker-border-radius, + $appointment-content-details-margin-top: $scheduler-appointment-content-details-margin-top, + $appointment-reduced-icon-rtl-left: $scheduler-appointment-reduced-icon-rtl-left, + $appointment-icon-font-size: $scheduler-appointment-icon-font-size, + $appointment-date-opacity: $scheduler-appointment-date-opacity, + $appointment-resizing-opacity: $scheduler-appointment-resizing-opacity, + $appointment-disabled-opacity: $scheduler-appointment-disabled-opacity, + $appointment-drag-source-opacity: $scheduler-appointment-drag-source-opacity, $transparent-top-border: $scheduler-transparent-top-border, $appointment-base-color: $scheduler-appointment-base-color, $appointment-text-color: $scheduler-appointment-text-color, @@ -37,7 +59,25 @@ $agenda-appointment-title-font-size: null !default; $appointment-dragging-shadow: $scheduler-appointment-dragging-shadow, $reduced-icon-offset: $scheduler-reduced-icon-offset ); +$agenda-appointment-item-padding: 10px !default; +$agenda-appointment-item-border-radius: 5px !default; +$agenda-appointment-right-layout-margin-left: 10px !default; +$agenda-appointment-allday-padding-right: 5px !default; +$agenda-appointment-resource-item-margin-left: 15px !default; +$agenda-appointment-resource-value-margin-left: 3px !default; +$agenda-appointment-rtl-margin-right: 10px !default; + @use "./agenda" with ( + $agenda-item-padding: $agenda-appointment-item-padding, + $agenda-item-border-radius: $agenda-appointment-item-border-radius, + $agenda-right-layout-margin-left: $agenda-appointment-right-layout-margin-left, + $agenda-allday-padding-right: $agenda-appointment-allday-padding-right, + $agenda-resource-item-margin-left: $agenda-appointment-resource-item-margin-left, + $agenda-resource-value-margin-left: $agenda-appointment-resource-value-margin-left, + $agenda-rtl-margin-right: $agenda-appointment-rtl-margin-right, + $title-font-weight: $agenda-appointment-title-font-weight, + $details-font-size: $agenda-appointment-details-font-size, + $details-opacity: $agenda-appointment-details-opacity, $marker-base-color: $scheduler-appointment-base-color, $title-font-size: $agenda-appointment-title-font-size, $text-color: $agenda-appointment-text-color, diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/agenda/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/agenda/_index.scss index 626fd523e510..7b3b6cccdd1a 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/agenda/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/agenda/_index.scss @@ -6,14 +6,25 @@ $recurrence-icon-color: null !default; $hover-bg: null !default; $active-bg: null !default; $active-color: null !default; +$title-font-weight: null !default; +$details-font-size: null !default; +$details-opacity: null !default; $title-font-size: null !default; +$agenda-item-padding: null !default; +$agenda-item-border-radius: null !default; +$agenda-right-layout-margin-left: null !default; +$agenda-allday-padding-right: null !default; +$agenda-resource-item-margin-left: null !default; +$agenda-resource-value-margin-left: null !default; +$agenda-rtl-margin-right: null !default; + .dx-scheduler-agenda { .dx-scheduler-appointment { background-color: transparent; color: $text-color; - padding: 10px; - border-radius: 5px; + padding: $agenda-item-padding; + border-radius: $agenda-item-border-radius; &.dx-state-hover { background-color: $hover-bg; @@ -40,7 +51,7 @@ $title-font-size: null !default; } .dx-scheduler-agenda-appointment-right-layout { - margin-left: 10px; + margin-left: $agenda-right-layout-margin-left; } .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content, @@ -61,19 +72,22 @@ $title-font-size: null !default; .dx-scheduler-appointment-title { @include use-text-overflow-ellipsis(); - font-weight: 700; + font-weight: $title-font-weight; font-size: $title-font-size; } .dx-scheduler-appointment-content-details { display: flex; - font-size: 12px; - opacity: 0.7; + font-size: $details-font-size; + + @if $details-opacity { + opacity: $details-opacity; + } } .dx-scheduler-appointment-content-allday { display: flex; - padding-right: 5px; + padding-right: $agenda-allday-padding-right; } .dx-scheduler-appointment-resource-list, @@ -82,11 +96,11 @@ $title-font-size: null !default; } .dx-scheduler-appointment-resource-item { - margin-left: 15px; + margin-left: $agenda-resource-item-margin-left; } .dx-scheduler-appointment-resource-item-value { - margin-left: 3px; + margin-left: $agenda-resource-value-margin-left; } .dx-scheduler-agenda-appointment-marker { @@ -99,7 +113,7 @@ $title-font-size: null !default; .dx-rtl { .dx-scheduler-agenda-appointment-right-layout { margin-left: 0; - margin-right: 10px; + margin-right: $agenda-rtl-margin-right; } .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content, diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/regular/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/regular/_index.scss index 3855fdb3bb56..37cc4dd2b742 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/regular/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/appointment/regular/_index.scss @@ -2,6 +2,11 @@ @use "../../../mixins" as *; @use "../../../icon_fonts" as *; +$appointment-icon-font-size: null !default; +$appointment-date-opacity: null !default; +$appointment-resizing-opacity: null !default; +$appointment-disabled-opacity: null !default; +$appointment-drag-source-opacity: null !default; $transparent-top-border: null !default; $appointment-base-color: null !default; $appointment-text-color: null !default; @@ -21,11 +26,16 @@ $appointment-dragging-shadow: null !default; $reduced-icon-offset: null !default; +$appointment-reduced-icon-top: null !default; +$appointment-active-marker-border-radius: null !default; +$appointment-content-details-margin-top: null !default; +$appointment-reduced-icon-rtl-left: null !default; + @mixin dx-appointment-icon($name) { @include dx-icon($name); - top: 3px; - font-size: 18px; + top: $appointment-reduced-icon-top; + font-size: $appointment-icon-font-size; position: absolute; right: $reduced-icon-offset; } @@ -59,7 +69,7 @@ $reduced-icon-offset: null !default; } @else { &:not(.dx-scheduler-appointment-has-resource-color):not(.dx-scheduler-appointment-drag-source)::before { background-color: $appointment-active-color; - border-radius: 4px; + border-radius: $appointment-active-marker-border-radius; } &.dx-scheduler-appointment-has-resource-color:not(.dx-scheduler-appointment-drag-source)::before { @@ -76,13 +86,16 @@ $reduced-icon-offset: null !default; } .dx-scheduler-appointment-content-date { - opacity: 0.7; + @if $appointment-date-opacity { + opacity: $appointment-date-opacity; + } + display: inline-block; white-space: pre-wrap; } .dx-scheduler-appointment-content-details { - margin-top: 2px; + margin-top: $appointment-content-details-margin-top; } .dx-scheduler-appointment-content-allday { @@ -130,11 +143,11 @@ $reduced-icon-offset: null !default; &.dx-resizable-resizing { z-index: 1000; - opacity: 0.7; + opacity: $appointment-resizing-opacity; } .dx-resizable-handle-left { - left: -1px; + left: -1px; // dx-px-nudge: pulls the resize handle onto the appointment's 1px border } .dx-scheduler-appointment-recurrence-icon { @@ -146,7 +159,7 @@ $reduced-icon-offset: null !default; .dx-rtl & { right: auto; - left: 3px; + left: $appointment-reduced-icon-rtl-left; } } @@ -159,12 +172,14 @@ $reduced-icon-offset: null !default; &.dx-state-disabled { cursor: default; - opacity: 0.6; + opacity: $appointment-disabled-opacity; pointer-events: auto; } &.dx-scheduler-appointment-drag-source { - opacity: 0.7; + @if $appointment-drag-source-opacity { + opacity: $appointment-drag-source-opacity; + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/layout/_header.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/layout/_header.scss index 76a342a3bfbb..4890b148e7e8 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/layout/_header.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/layout/_header.scss @@ -6,7 +6,7 @@ $arrow-down: "\f016" !default; ) { border: $border; border-color: $border-color; - margin-bottom: -1px; + margin-bottom: -1px; // dx-px-nudge: collapses the header border with the row below position: relative; z-index: 1; width: 100%; diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/_index.scss index cf6ccb2fe8cd..c6a25893dcbe 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/_index.scss @@ -1,3 +1,4 @@ +@use "sass:meta"; @use "../../mixins" as *; @use "sass:math"; @@ -25,19 +26,31 @@ $scheduler-workspace-month-text-color: null !default; $scheduler-first-month-cell-background-color: null !default; $scheduler-panel-text-color: null !default; - -$scheduler-timepanel-cell-offset: 20px !default; +$scheduler-views-header-border: null !default; +$scheduler-views-empty-cell-border-bottom: null !default; +$scheduler-views-empty-cell-border-right: null !default; +$scheduler-views-empty-cell-border-left: null !default; +$scheduler-views-first-child-border-left: null !default; +$scheduler-views-time-panel-border-bottom: null !default; +$scheduler-views-group-header-padding: null !default; +$scheduler-views-group-header-padding-alt: null !default; +$scheduler-views-time-indicator-height: null !default; +$scheduler-views-time-indicator-width: 10% !default; // dx-relative-% +$scheduler-views-group-header-content-height: null !default; +$scheduler-views-vertical-group-min-height: null !default; + +$scheduler-timepanel-cell-offset: 20px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass $scheduler-workspace-info-font-size: 20px !default; $scheduler-small-font-size: 14px !default; -$scheduler-current-time-cell-border-size: 2px !default; +$scheduler-current-time-cell-border-size: 2px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass -$scheduler-workspace-date-table-cell-height: 50px !default; +$scheduler-workspace-date-table-cell-height: 50px; // dx-fixed-size: derived heights multiply it, so a var() cannot pass $scheduler-vertical-grouped-all-day-table-cell-height: $scheduler-workspace-date-table-cell-height !default; -$scheduler-header-panel-table-cell-height: $scheduler-workspace-date-table-cell-height - 10px !default; +$scheduler-header-panel-table-cell-height: if(meta.type-of($scheduler-workspace-date-table-cell-height) == number, $scheduler-workspace-date-table-cell-height - 10px, calc(#{$scheduler-workspace-date-table-cell-height} - 10px)); // dx-px-nudge: -10px under the workspace cell height $scheduler-group-header-table-cell-height: 30px !default; -$scheduler-group-header-table-cell-width: 80px !default; +$scheduler-group-header-table-cell-width: 80px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass $scheduler-month-date-text-size: 16px !default; @@ -56,21 +69,40 @@ $scheduler-month-date-text-padding: 6px !default; $scheduler-month-date-text-padding: $scheduler-month-date-text-padding, $scheduler-first-month-cell-background-color: $scheduler-first-month-cell-background-color, ); +$scheduler-timeline-min-height: 100px !default; +$scheduler-timeline-group-two-empty-cell-width: 160px !default; +$scheduler-timeline-group-header-width: 80px !default; +$scheduler-timeline-group-three-empty-cell-width: 240px !default; +$scheduler-timeline-cell-width: 200px !default; + @use "./timelines" with ( + $scheduler-timeline-min-height: $scheduler-timeline-min-height, + $scheduler-timeline-group-two-empty-cell-width: $scheduler-timeline-group-two-empty-cell-width, + $scheduler-timeline-group-header-width: $scheduler-timeline-group-header-width, + $scheduler-timeline-group-three-empty-cell-width: $scheduler-timeline-group-three-empty-cell-width, + $scheduler-timeline-cell-width: $scheduler-timeline-cell-width, $scheduler-workspace-date-table-cell-height: $scheduler-workspace-date-table-cell-height, $scheduler-accent-border: $scheduler-accent-border, $scheduler-base-border: $scheduler-base-border, $scheduler-base-border-color: $scheduler-base-border-color, $scheduler-accent-border-color: $scheduler-accent-border-color, ); +$scheduler-agenda-left-column-width: 70px !default; +$scheduler-agenda-date-table-padding-top: 10px !default; + @use "./agenda" with ( + $scheduler-agenda-left-column-width: $scheduler-agenda-left-column-width, + $scheduler-agenda-date-table-padding-top: $scheduler-agenda-date-table-padding-top, $scheduler-group-header-table-cell-width: $scheduler-group-header-table-cell-width, $scheduler-small-size-factor: $scheduler-small-size-factor, $scheduler-small-font-size: $scheduler-small-font-size, $scheduler-workspace-info-font-size: $scheduler-workspace-info-font-size, $scheduler-other-month-cell-opacity: $scheduler-other-month-cell-opacity, ); +$scheduler-renovation-virtual-row-height: 50px !default; + @use "./renovation" with ( + $scheduler-renovation-virtual-row-height: $scheduler-renovation-virtual-row-height, $scheduler-timeline-cell-height: $scheduler-timeline-cell-height, ); @@ -79,7 +111,7 @@ $scheduler-month-date-text-padding: 6px !default; &::before { position: absolute; - top: $scheduler-header-panel-table-cell-height - $scheduler-current-time-cell-border-size - 1; + top: if(meta.type-of($scheduler-header-panel-table-cell-height) == number and meta.type-of($scheduler-current-time-cell-border-size) == number, $scheduler-header-panel-table-cell-height - $scheduler-current-time-cell-border-size - 1, calc(#{$scheduler-header-panel-table-cell-height} - #{$scheduler-current-time-cell-border-size} - 1px)); // dx-px-nudge: -1px under the derived top offset, so the indicator overlaps the border right: 0; width: 100%; height: $scheduler-current-time-cell-border-size; @@ -185,12 +217,12 @@ $scheduler-month-date-text-padding: 6px !default; &:not(.dx-scheduler-work-space-all-day):not(.dx-scheduler-work-space-month):not(.dx-scheduler-timeline) { .dx-scheduler-header-panel { - border-bottom: 2px solid; + border-bottom: $scheduler-views-header-border; border-bottom-color: $scheduler-base-border-color; } .dx-scheduler-header-panel-empty-cell { - border-bottom: 2px solid; + border-bottom: $scheduler-views-header-border; border-bottom-color: $scheduler-base-border-color; } @@ -225,9 +257,9 @@ $scheduler-month-date-text-padding: 6px !default; align-items: flex-end; flex-shrink: 0; width: 0; - border-bottom: 1px solid; + border-bottom: $scheduler-views-empty-cell-border-bottom; border-bottom-color: $scheduler-base-border-color; - border-right: 1px solid; + border-right: $scheduler-views-empty-cell-border-right; border-right-color: $scheduler-base-border-color; } @@ -303,7 +335,7 @@ $scheduler-month-date-text-padding: 6px !default; @include flex-container(row, nowrap); flex: 1 1 0; - padding: 0 5px; + padding: $scheduler-views-group-header-padding; height: auto; width: $scheduler-left-column-width; justify-content: flex-start; @@ -357,7 +389,7 @@ $scheduler-month-date-text-padding: 6px !default; @include flex-container(row, nowrap); flex: 0 0 auto; - padding: 0 5px; + padding: 0 5px; // dx-fixed-size: horizontal padding of the time panel cell height: 100%; width: $scheduler-left-column-width; justify-content: flex-start; @@ -556,7 +588,7 @@ $scheduler-month-date-text-padding: 6px !default; border-left-color: $scheduler-base-border-color; &:first-child { - border-left: 1px solid transparent; + border-left: $scheduler-views-first-child-border-left; } @include dx-overflow(); @@ -567,7 +599,7 @@ $scheduler-month-date-text-padding: 6px !default; position: relative; .dx-scheduler-all-day-table-cell { - border-bottom: 2px solid; + border-bottom: $scheduler-views-header-border; border-bottom-color: $scheduler-base-border-color; } } @@ -577,7 +609,7 @@ $scheduler-month-date-text-padding: 6px !default; width: $scheduler-left-column-width; position: relative; text-align: center; - border-bottom: 2px solid; + border-bottom: $scheduler-views-header-border; border-bottom-color: $scheduler-base-border-color; @include user-select(none); @@ -629,10 +661,10 @@ $scheduler-month-date-text-padding: 6px !default; text-align: right; vertical-align: top; padding-right: $scheduler-timepanel-cell-offset; - border-bottom: 1px solid transparent; + border-bottom: $scheduler-views-time-panel-border-bottom; > div { - margin-top: -13px; + margin-top: -13px; // dx-px-nudge: lifts the hour label to straddle the cell border } .dx-scheduler-small & { @@ -642,9 +674,9 @@ $scheduler-month-date-text-padding: 6px !default; &::after { position: absolute; - bottom: -1px; - width: 10%; - height: 1px; + bottom: -1px; // dx-px-nudge: sits the time indicator on the cell border + width: $scheduler-views-time-indicator-width; + height: $scheduler-views-time-indicator-height; right: 0; background-color: $scheduler-base-border-color; } @@ -718,7 +750,7 @@ $scheduler-month-date-text-padding: 6px !default; .dx-scheduler-group-header-content { display: flex; - height: 40px; + height: $scheduler-views-group-header-content-height; > div { margin: auto; @@ -756,7 +788,7 @@ $scheduler-month-date-text-padding: 6px !default; .dx-scheduler-work-space-vertical-grouped { .dx-scheduler-work-space-vertical-group-table { height: 100%; - min-height: 100px; + min-height: $scheduler-views-vertical-group-min-height; border-top: $scheduler-base-border; border-top-color: $scheduler-base-border-color; border-spacing: 0; @@ -769,7 +801,7 @@ $scheduler-month-date-text-padding: 6px !default; &.dx-scheduler-work-space-work-week { .dx-scheduler-all-day-title { top: 0; - height: 50px !important; // stylelint-disable-line declaration-no-important + height: $scheduler-workspace-date-table-cell-height !important; // stylelint-disable-line declaration-no-important border-bottom: none; } } @@ -780,7 +812,7 @@ $scheduler-month-date-text-padding: 6px !default; } .dx-scheduler-all-day-table-row { - height: 50px; + height: $scheduler-workspace-date-table-cell-height; } .dx-scheduler-time-panel-cell { @@ -795,13 +827,13 @@ $scheduler-month-date-text-padding: 6px !default; &.dx-scheduler-last-group-cell { border-bottom: none; - box-shadow: inset 0 -1px 0 $scheduler-base-border-color; + box-shadow: inset 0 -1px 0 $scheduler-base-border-color; // dx-line-width: hairline standing in for the removed border-bottom } } .dx-scheduler-date-table-cell { &.dx-scheduler-last-group-cell { - border-bottom: 2px solid; + border-bottom: $scheduler-views-header-border; border-bottom-color: $scheduler-base-border-color; } } @@ -817,7 +849,7 @@ $scheduler-month-date-text-padding: 6px !default; .dx-rtl { .dx-scheduler-header-panel-empty-cell { - border-left: 1px solid; + border-left: $scheduler-views-empty-cell-border-left; border-left-color: $scheduler-base-border-color; border-right: none; } @@ -893,7 +925,7 @@ $scheduler-month-date-text-padding: 6px !default; } .dx-scheduler-group-header { - padding: 0 5px 0 10px; + padding: $scheduler-views-group-header-padding-alt; } &.dx-scheduler-group-column-count-two, diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/agenda/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/agenda/_index.scss index b8420c70586f..914dacba827e 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/agenda/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/agenda/_index.scss @@ -6,9 +6,11 @@ $scheduler-other-month-cell-opacity: null !default; $scheduler-agenda-left-column-width: 70px !default; +$scheduler-agenda-date-table-padding-top: null !default; + .dx-scheduler-agenda { .dx-scheduler-date-table-scrollable { - padding-top: 10px; + padding-top: $scheduler-agenda-date-table-padding-top; } .dx-scheduler-time-panel-cell { diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/day/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/day/_index.scss index 4d1205c67e90..7322fcc918ac 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/day/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/day/_index.scss @@ -42,7 +42,7 @@ $scheduler-base-border-color: null !default; &:not(.dx-scheduler-work-space-grouped) { .dx-scheduler-header-panel { - margin-top: 1px; + margin-top: 1px; // dx-px-nudge: keeps the ungrouped header panel off the border above } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/month/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/month/_index.scss index 210611247e68..04b3bead6f36 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/month/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/month/_index.scss @@ -65,7 +65,7 @@ $scheduler-first-month-cell-background-color: null !default; } .dx-scheduler-group-header { - box-shadow: 0 -2px 0 $scheduler-base-border-color; + box-shadow: 0 -2px 0 $scheduler-base-border-color; // dx-line-width: 2px line standing in for the removed border-bottom border-bottom: none; } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/renovation/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/renovation/_index.scss index 7c7451141b9a..09ce1ade4ba9 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/renovation/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/renovation/_index.scss @@ -1,5 +1,7 @@ $scheduler-timeline-cell-height: null !default; +$scheduler-renovation-virtual-row-height: null !default; + .dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar { .dx-scheduler-date-table-scrollable .dx-scrollable-content, .dx-scheduler-sidebar-scrollable .dx-scrollable-content, @@ -36,7 +38,7 @@ $scheduler-timeline-cell-height: null !default; &.dx-scheduler-work-space-virtual { .dx-scheduler-date-table-row { - height: 50px; + height: $scheduler-renovation-virtual-row-height; } } diff --git a/packages/devextreme-scss/scss/widgets/base/scheduler/views/timelines/_index.scss b/packages/devextreme-scss/scss/widgets/base/scheduler/views/timelines/_index.scss index 8805dcef56c5..dffb3a8ba2a6 100644 --- a/packages/devextreme-scss/scss/widgets/base/scheduler/views/timelines/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scheduler/views/timelines/_index.scss @@ -8,6 +8,11 @@ $scheduler-accent-border-color: null !default; $scheduler-timeline-min-height: 100px !default; +$scheduler-timeline-group-two-empty-cell-width: null !default; +$scheduler-timeline-group-header-width: null !default; +$scheduler-timeline-group-three-empty-cell-width: null !default; +$scheduler-timeline-cell-width: null !default; + .dx-scheduler-timeline-week, .dx-scheduler-timeline-work-week, .dx-scheduler-timeline-day, @@ -18,21 +23,21 @@ $scheduler-timeline-min-height: 100px !default; &.dx-scheduler-group-column-count-two { .dx-scheduler-header-panel-empty-cell { - width: 160px; + width: $scheduler-timeline-group-two-empty-cell-width; } .dx-scheduler-group-flex-container .dx-scheduler-group-header { - width: 80px; + width: $scheduler-timeline-group-header-width; } } &.dx-scheduler-group-column-count-three { .dx-scheduler-header-panel-empty-cell { - width: 240px; + width: $scheduler-timeline-group-three-empty-cell-width; } .dx-scheduler-group-flex-container .dx-scheduler-group-header { - width: 80px; + width: $scheduler-timeline-group-header-width; } } @@ -82,7 +87,7 @@ $scheduler-timeline-min-height: 100px !default; .dx-scheduler-timeline { .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell), .dx-scheduler-date-table-cell { - width: 200px; + width: $scheduler-timeline-cell-width; } .dx-scheduler-date-table-cell { @@ -149,7 +154,7 @@ $scheduler-timeline-min-height: 100px !default; &.dx-scheduler-work-space-group-by-date { .dx-scheduler-group-header { - width: 200px; + width: $scheduler-timeline-cell-width; } } @@ -180,7 +185,7 @@ $scheduler-timeline-min-height: 100px !default; } .dx-scheduler-header-panel-empty-cell { - border-bottom: 1px solid; + border-bottom: 1px solid; // dx-line-width: hairline under the empty header cell border-bottom-color: $scheduler-accent-border-color; } } diff --git a/packages/devextreme-scss/scss/widgets/base/scrollable/_index.scss b/packages/devextreme-scss/scss/widgets/base/scrollable/_index.scss index f8b00083ff50..5ad4009b2cd6 100644 --- a/packages/devextreme-scss/scss/widgets/base/scrollable/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/scrollable/_index.scss @@ -1,6 +1,8 @@ @use "sass:selector"; @use "./mixins" as *; +$scrollable-scroll-padding: 2px !default; + .dx-scrollable-scrollbar-simulated { position: relative; } @@ -164,7 +166,7 @@ opacity: 1; transition: opacity 0s linear, background-color 0s linear; overflow: hidden; - padding: 2px; + padding: $scrollable-scroll-padding; &.dx-state-invisible { display: block !important; // stylelint-disable-line declaration-no-important diff --git a/packages/devextreme-scss/scss/widgets/base/splitter/_index.scss b/packages/devextreme-scss/scss/widgets/base/splitter/_index.scss index 293fc356eec7..d6d234b6534d 100644 --- a/packages/devextreme-scss/scss/widgets/base/splitter/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/splitter/_index.scss @@ -1,3 +1,5 @@ +$splitter-resize-handle-gap: 8px !default; + .dx-splitter { display: flex; height: 100%; @@ -29,7 +31,7 @@ flex: 0 0 auto; justify-content: center; align-items: center; - gap: 8px; + gap: $splitter-resize-handle-gap; overflow: hidden; user-select: none; diff --git a/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_index.scss b/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_index.scss index 954bc2b67f4b..39b3e48ddf4e 100644 --- a/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_index.scss @@ -17,7 +17,7 @@ transition-timing-function: ease-in-out; border-style: solid; border-radius: 999em; - border-width: 1px; + border-width: 1px; // dx-line-width: hairline, the same in every theme } .dx-step-content { diff --git a/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_mixins.scss index f5c4a4aa01a3..cfb40c1aeb2a 100644 --- a/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/stepper/layout/step/_mixins.scss @@ -68,11 +68,14 @@ $disabled-text-color, $disabled-bg, $disabled-shadow, + $indicator-ring-inset: 2px, + $indicator-ring-size: 4px, + $indicator-halo-size: 8px, ) { .dx-step-indicator { background-color: $base-bg; border-color: $base-border-color; - box-shadow: 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-halo-size $shadow-color; color: $base-text-color; } @@ -108,7 +111,7 @@ color: $selected-text-color; border-color: $selected-bg; background-color: $selected-bg; - box-shadow: 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-halo-size $shadow-color; } .dx-step-caption { @@ -119,7 +122,7 @@ .dx-step-indicator { border-color: $selected-invalid-bg; background-color: $selected-invalid-bg; - box-shadow: 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-halo-size $shadow-color; } .dx-step-caption { @@ -138,7 +141,7 @@ color: $selected-text-color; border-color: $selected-bg; background-color: $selected-bg; - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-bg, 0 0 0 $indicator-halo-size $shadow-color; } .dx-step-caption { @@ -149,7 +152,7 @@ .dx-step-indicator { border-color: $selected-invalid-bg; background-color: $selected-invalid-bg; - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-invalid-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-invalid-bg, 0 0 0 $indicator-halo-size $shadow-color; } .dx-step-caption { @@ -192,7 +195,7 @@ &.dx-state-focused { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-bg, 0 0 0 $indicator-halo-size $shadow-color; } &.dx-step-completed { @@ -206,19 +209,19 @@ .dx-step-indicator { border-color: $selected-hover-bg; background-color: $selected-hover-bg; - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } } &.dx-state-hover { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } } &.dx-step-invalid { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-invalid-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-invalid-bg, 0 0 0 $indicator-halo-size $shadow-color; } &.dx-step-completed { @@ -232,25 +235,25 @@ .dx-step-indicator { border-color: $selected-invalid-hover-bg; background-color: $selected-invalid-hover-bg; - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-invalid-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-invalid-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } } &.dx-state-hover { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-invalid-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-invalid-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } } } &.dx-state-disabled { .dx-step-indicator { - box-shadow: 0 0 0 2px $disabled-shadow, 0 0 0 4px $selected-bg, 0 0 0 8px $disabled-shadow; + box-shadow: 0 0 0 $indicator-ring-inset $disabled-shadow, 0 0 0 $indicator-ring-size $selected-bg, 0 0 0 $indicator-halo-size $disabled-shadow; } &.dx-step-invalid { .dx-step-indicator { - box-shadow: 0 0 0 2px $disabled-shadow, 0 0 0 4px $selected-invalid-bg, 0 0 0 8px $disabled-shadow; + box-shadow: 0 0 0 $indicator-ring-inset $disabled-shadow, 0 0 0 $indicator-ring-size $selected-invalid-bg, 0 0 0 $indicator-halo-size $disabled-shadow; } } } @@ -309,17 +312,17 @@ &.dx-state-focused { .dx-step-selected { .dx-step-indicator { - box-shadow: 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-halo-size $shadow-color; } &.dx-state-focused { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } &.dx-step-invalid { .dx-step-indicator { - box-shadow: 0 0 0 2px $shadow-color, 0 0 0 4px $selected-invalid-hover-bg, 0 0 0 8px $shadow-color; + box-shadow: 0 0 0 $indicator-ring-inset $shadow-color, 0 0 0 $indicator-ring-size $selected-invalid-hover-bg, 0 0 0 $indicator-halo-size $shadow-color; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/switch/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/switch/_mixins.scss index 8cf153a47a4c..662c14cc54ab 100644 --- a/packages/devextreme-scss/scss/widgets/base/switch/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/switch/_mixins.scss @@ -1,3 +1,4 @@ +@use "sass:meta"; @use "../icon_fonts" as *; @mixin dx-switch( @@ -11,6 +12,9 @@ $switch-handle-margin, $switch-handle-border-radius, $switch-transition, + $switch-container-border-radius: 500px, + $switch-label-padding: 4px 0, + $switch-off-padding-bottom: 10px, ) { .dx-switch { width: $switch-width; @@ -20,10 +24,10 @@ position: relative; padding-top: $switch-padding; padding-bottom: $switch-padding; - padding-inline-start: $switch-padding - $switch-container-horizontal-padding; - padding-inline-end: $switch-padding + $switch-container-horizontal-padding; - inset-inline-start: -$switch-padding; - top: -$switch-padding; + padding-inline-start: if(meta.type-of($switch-padding) == number and meta.type-of($switch-container-horizontal-padding) == number, $switch-padding - $switch-container-horizontal-padding, calc(#{$switch-padding} - #{$switch-container-horizontal-padding})); + padding-inline-end: if(meta.type-of($switch-padding) == number and meta.type-of($switch-container-horizontal-padding) == number, $switch-padding + $switch-container-horizontal-padding, calc(#{$switch-padding} + #{$switch-container-horizontal-padding})); + inset-inline-start: if(meta.type-of($switch-padding) == number, -$switch-padding, calc(-1 * #{$switch-padding})); + top: if(meta.type-of($switch-padding) == number, -$switch-padding, calc(-1 * #{$switch-padding})); overflow: hidden; vertical-align: middle; box-sizing: content-box; @@ -41,7 +45,7 @@ content: ""; width: 100%; height: $switch-container-height; - border-radius: 500px; + border-radius: $switch-container-border-radius; margin: $switch-container-vertical-margin 0; transition: $switch-transition; } @@ -56,7 +60,7 @@ .dx-switch-off { flex-shrink: 0; float: left; - padding: 4px 0; + padding: $switch-label-padding; width: 50%; height: $switch-height; color: transparent; @@ -70,7 +74,7 @@ .dx-switch-off { display: none; - padding-bottom: 10px; + padding-bottom: $switch-off-padding-bottom; background-color: transparent; } @@ -191,7 +195,26 @@ $switch-invalid-color-hover, $switch-invalid-color-focused, $base-disabled-border-color, -) { + $disabled-opacity-reset: 1, + $trigger-off-bg: null, + $trigger-off-bg-hover: null, + $trigger-off-bg-active: null, + $switch-on-bg-hover: null, + $switch-on-bg-active: null, + $switch-on-disabled-border: null, + $switch-invalid-bg: null, + $switch-invalid-bg-hover: null, + $switch-invalid-bg-active: null,) { + $trigger-off: if($trigger-off-bg, $trigger-off-bg, $switch-off-border-color); + $trigger-off-hovered: if($trigger-off-bg-hover, $trigger-off-bg-hover, $switch-off-border-color-hover); + $trigger-off-pressed: if($trigger-off-bg-active, $trigger-off-bg-active, $switch-off-border-color-active); + $on-bg-hovered: if($switch-on-bg-hover, $switch-on-bg-hover, $switch-accent-hover); + $on-bg-pressed: if($switch-on-bg-active, $switch-on-bg-active, $switch-accent-active); + $on-border-disabled: if($switch-on-disabled-border, $switch-on-disabled-border, $switch-on-disabled-bg); + $invalid-bg: if($switch-invalid-bg, $switch-invalid-bg, $switch-invalid-color); + $invalid-bg-hovered: if($switch-invalid-bg-hover, $switch-invalid-bg-hover, $switch-invalid-color-hover); + $invalid-bg-pressed: if($switch-invalid-bg-active, $switch-invalid-bg-active, $switch-invalid-color-focused); + .dx-switch-container { &::before { background-color: $switch-bg; @@ -210,7 +233,7 @@ .dx-switch { .dx-switch-handle::before { - background-color: $switch-off-border-color; + background-color: $trigger-off; } &.dx-state-hover { @@ -258,7 +281,7 @@ &.dx-state-disabled, &.dx-state-readonly { - opacity: 1; + opacity: $disabled-opacity-reset; .dx-switch-container::before { border-color: $base-disabled-border-color; @@ -274,14 +297,14 @@ .dx-switch:not(.dx-switch-on-value):not(.dx-state-readonly) { &.dx-state-hover { .dx-switch-handle::before { - background-color: $switch-off-border-color-hover; + background-color: $trigger-off-hovered; } } &.dx-state-active, &.dx-state-focused { .dx-switch-handle::before { - background-color: $switch-off-border-color-active; + background-color: $trigger-off-pressed; } } } @@ -299,12 +322,12 @@ &.dx-state-hover { .dx-switch-container::before { border-color: $switch-accent-hover; - background-color: $switch-accent-hover; + background-color: $on-bg-hovered; } &.dx-invalid:not(.dx-state-readonly) { .dx-switch-container::before { - background-color: $switch-invalid-color-hover; + background-color: $invalid-bg-hovered; } } } @@ -313,26 +336,26 @@ &.dx-state-focused { .dx-switch-container::before { border-color: $switch-accent-active; - background-color: $switch-accent-active; + background-color: $on-bg-pressed; } &.dx-invalid:not(.dx-state-readonly) { .dx-switch-container::before { - background-color: $switch-invalid-color-focused; + background-color: $invalid-bg-pressed; } } } &.dx-invalid { .dx-switch-container::before { - background-color: $switch-invalid-color; + background-color: $invalid-bg; } } &.dx-state-disabled, &.dx-state-readonly { .dx-switch-container::before { - border-color: $switch-on-disabled-bg; + border-color: $on-border-disabled; background-color: $switch-on-disabled-bg; } } @@ -353,11 +376,11 @@ .dx-switch-handle { float: right; margin-left: 0; - margin-right: -$switch-height; + margin-right: if(meta.type-of($switch-height) == number, -$switch-height, calc(-1 * #{$switch-height})); } .dx-switch-container { - margin: 0 0 0 (-$switch-container-adjustment); + margin: 0 0 0 if(meta.type-of($switch-container-adjustment) == number, (-$switch-container-adjustment), calc(-1 * #{$switch-container-adjustment})); } } } diff --git a/packages/devextreme-scss/scss/widgets/base/textEditor/_index.scss b/packages/devextreme-scss/scss/widgets/base/textEditor/_index.scss index f17060dd4e77..23e76200d9a8 100644 --- a/packages/devextreme-scss/scss/widgets/base/textEditor/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/textEditor/_index.scss @@ -2,6 +2,8 @@ @use "./mixins" as *; @use "sass:string" as string; +$texteditor-clear-button-area-width: 34px !default; + .dx-texteditor { display: block; @@ -93,7 +95,7 @@ .dx-clear-button-area { height: 100%; - width: 34px; + width: $texteditor-clear-button-area-width; position: relative; cursor: pointer; text-align: justify; diff --git a/packages/devextreme-scss/scss/widgets/base/textEditor/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/textEditor/_mixins.scss index 724b0602c7d2..9ac485f7f618 100644 --- a/packages/devextreme-scss/scss/widgets/base/textEditor/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/textEditor/_mixins.scss @@ -1,4 +1,5 @@ @use "sass:math"; +@use "sass:meta"; @mixin dx-editor-content-wrapper() { display: flex; @@ -17,7 +18,7 @@ border-top-width: 0; span { - transform: translate(0, -$label-offset-y); + transform: translate(0, if(meta.type-of($label-offset-y) == number, -$label-offset-y, calc(-1 * #{$label-offset-y}))); font-size: $label-font-size; margin-top: 0; top: 0; @@ -49,7 +50,7 @@ $texteditor-input-top-padding ) { .dx-label { - padding: 0 2px; + padding: 0 2px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes border-top-width: $borderWidth; span { @@ -156,31 +157,53 @@ $label-margin-top-diff, $texteditor-label-outside-font-size, $texteditor-label-outside-height, + $label-padding-inline: 2px, + $label-border-radius: 1px, + $label-backdrop-height: 3px, ) { + $label-margin-inline: if( + meta.type-of($label-padding-inline) == number, + -$label-padding-inline, + calc(-1 * #{$label-padding-inline}) + ); + .dx-editor-outlined { .dx-texteditor-label { inset: 0; } .dx-label { - padding: 0 2px; + padding: 0 $label-padding-inline; border-top-width: 0; border-bottom-width: $label-border-width; border-inline-width: 0; border-style: solid; border-top-color: $texteditor-border-color; border-bottom-color: $texteditor-border-bottom-color; - margin-left: -2px; - margin-right: -2px; - border-radius: 1px; - clip-path: inset(-$texteditor-label-font-size 1px -1px 1px); + margin-left: $label-margin-inline; + margin-right: $label-margin-inline; + border-radius: $label-border-radius; + + /* + * The clip reaches a whole font-size above the label to uncover the notch. A theme that feeds + * a var() here leaves nothing for Sass to negate, and `-var(…)` is not valid CSS: the browser + * drops the whole declaration and the notch stops being clipped. Same guard as the transform + * below, which had it from the start. + * + * dx-line-width: the notch is carved at the label border, a hairline that must not thicken. + */ + clip-path: inset(#{if( + meta.type-of($texteditor-label-font-size) == number, + -$texteditor-label-font-size, + calc(-1 * #{$texteditor-label-font-size}) + )} 1px -1px 1px); span { position: relative; font-size: $texteditor-label-font-size; top: 0; margin-top: 0; - transform: translate(0, -$label-offset-y); + transform: translate(0, if(meta.type-of($label-offset-y) == number, -$label-offset-y, calc(-1 * #{$label-offset-y}))); height: $label-active-height; line-height: normal; } @@ -197,7 +220,7 @@ border-start-start-radius: $texteditor-input-border-radius; border-end-start-radius: $texteditor-input-border-radius; min-width: $label-before-min-width; - clip-path: inset(-1px 1px -1px -1px); + clip-path: inset(-1px 1px -1px -1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale } .dx-label-after { @@ -212,16 +235,16 @@ border-inline-end-color: $texteditor-border-color; border-start-end-radius: $texteditor-input-border-radius; border-end-end-radius: $texteditor-input-border-radius; - clip-path: inset(-1px -1px -1px 1px); + clip-path: inset(-1px -1px -1px 1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale } &.dx-rtl { .dx-label-before { - clip-path: inset(-1px -1px -1px 1px); + clip-path: inset(-1px -1px -1px 1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale } .dx-label-after { - clip-path: inset(-1px 1px -1px -1px); + clip-path: inset(-1px 1px -1px -1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale } } @@ -235,9 +258,9 @@ content: ""; width: 100%; position: absolute; - height: 3px; - top: -$label-backdrop-offset-y; - margin-inline-start: -2px; + height: $label-backdrop-height; + top: if(meta.type-of($label-backdrop-offset-y) == number, -$label-backdrop-offset-y, calc(-1 * #{$label-backdrop-offset-y})); + margin-inline-start: $label-margin-inline; background-color: $label-backdrop-bg; } } @@ -299,8 +322,8 @@ clip-path: none; border-top-width: $label-border-width; border-radius: 0; - border-start-end-radius: 1px; - border-end-end-radius: 1px; + border-start-end-radius: $label-border-radius; + border-end-end-radius: $label-border-radius; margin-inline-start: 0; padding: 0; @@ -311,9 +334,9 @@ pointer-events: auto; font-size: $texteditor-label-outside-font-size; margin-top: 0; - top: -$label-offset-y-outside; - height: #{math.div($texteditor-label-outside-height, $texteditor-label-outside-font-size)}em; - line-height: #{math.div($texteditor-label-outside-height, $texteditor-label-outside-font-size)}em; + top: if(meta.type-of($label-offset-y-outside) == number, -$label-offset-y-outside, calc(-1 * #{$label-offset-y-outside})); + height: if(meta.type-of($texteditor-label-outside-height) == number and meta.type-of($texteditor-label-outside-font-size) == number, #{math.div($texteditor-label-outside-height, $texteditor-label-outside-font-size)}em, $texteditor-label-outside-height); + line-height: if(meta.type-of($texteditor-label-outside-height) == number and meta.type-of($texteditor-label-outside-font-size) == number, #{math.div($texteditor-label-outside-height, $texteditor-label-outside-font-size)}em, $texteditor-label-outside-height); } } } @@ -330,7 +353,7 @@ } } - $label-empty-margin-top: math.div(-$label-empty-height, 2) + $label-margin-top-diff; + $label-empty-margin-top: if(meta.type-of($label-empty-height) == number and meta.type-of($label-margin-top-diff) == number, math.div(-$label-empty-height, 2) + $label-margin-top-diff, calc(#{$label-empty-height} / -2 + #{$label-margin-top-diff})); &.dx-texteditor-empty { @include dx-state-empty( @@ -433,7 +456,7 @@ height: $texteditor-label-outside-height; line-height: $texteditor-label-outside-height; margin-top: 0; - top: -$texteditor-label-outside-top-offset; + top: if(meta.type-of($texteditor-label-outside-top-offset) == number, -$texteditor-label-outside-top-offset, calc(-1 * #{$texteditor-label-outside-top-offset})); } .dx-label { @@ -461,7 +484,7 @@ height: $texteditor-empty-label-height; line-height: $texteditor-empty-label-line-height; top: 50%; - margin-top: math.div(-$texteditor-empty-label-height, 2); + margin-top: if(meta.type-of($texteditor-empty-label-height) == number, math.div(-$texteditor-empty-label-height, 2), calc(#{$texteditor-empty-label-height} / -2)); } &.dx-textarea { @@ -548,7 +571,7 @@ font-size: $texteditor-label-outside-font-size; height: $texteditor-label-outside-height; line-height: $texteditor-label-outside-height; - top: -$texteditor-label-outside-top-offset; + top: if(meta.type-of($texteditor-label-outside-top-offset) == number, -$texteditor-label-outside-top-offset, calc(-1 * #{$texteditor-label-outside-top-offset})); margin-top: 0; } @@ -578,7 +601,7 @@ height: $texteditor-empty-label-height; line-height: $texteditor-empty-label-line-height; top: 50%; - margin-top: math.div(-$texteditor-empty-label-height, 2); + margin-top: if(meta.type-of($texteditor-empty-label-height) == number, math.div(-$texteditor-empty-label-height, 2), calc(#{$texteditor-empty-label-height} / -2)); } &.dx-textarea { @@ -625,8 +648,8 @@ ) { .dx-texteditor-buttons-container { > .dx-button { - margin-top: 1px; - margin-bottom: 1px; + margin-top: 1px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes + margin-bottom: 1px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes margin-inline-start: $generic-texteditor-custom-button-margin; margin-inline-end: $generic-texteditor-custom-button-margin; @@ -688,6 +711,11 @@ $material-filled-texteditor-spin-button-horizontal-padding, $last-button-horizontal-padding, $material-button-vertical-padding, + $button-margin-block-start: 1px, + $button-margin-block-end: 3px, + $button-icon-margin-block-start: 1px, + $button-icon-margin-block-start-with-text: 3px, + $button-icononly-padding: 2px, ) { .dx-texteditor { .dx-texteditor-buttons-container { @@ -745,25 +773,25 @@ .dx-texteditor-buttons-container { > .dx-button.dx-button-mode-text { height: $material-underlined-editor-button-height; - margin-top: 1px; - margin-bottom: 3px; + margin-top: $button-margin-block-start; + margin-bottom: $button-margin-block-end; margin-inline-end: $material-editor-custom-button-margin; margin-inline-start: $material-editor-custom-button-margin; .dx-button-content { display: flex; justify-content: center; - padding-top: $material-button-vertical-padding - 1px; + padding-top: if(meta.type-of($material-button-vertical-padding) == number, $material-button-vertical-padding - 1px, calc(#{$material-button-vertical-padding} - 1px)); // dx-px-nudge: -1px under the button's own padding .dx-icon { align-self: center; - margin-top: 1px; + margin-top: $button-icon-margin-block-start; } } &.dx-button-has-text { .dx-button-content .dx-icon { - margin-top: 3px; + margin-top: $button-icon-margin-block-start-with-text; } } @@ -771,7 +799,7 @@ min-width: $material-underlined-editor-button-height; .dx-button-content { - padding: 2px; + padding: $button-icononly-padding; } } } @@ -799,25 +827,25 @@ .dx-texteditor-buttons-container { > .dx-button.dx-button-mode-text { height: $material-underlined-editor-button-height; - margin-top: 1px; - margin-bottom: 3px; + margin-top: $button-margin-block-start; + margin-bottom: $button-margin-block-end; margin-inline-end: $material-editor-custom-button-margin; margin-inline-start: $material-editor-custom-button-margin; .dx-button-content { display: flex; justify-content: center; - padding-top: $material-button-vertical-padding - 1px; + padding-top: if(meta.type-of($material-button-vertical-padding) == number, $material-button-vertical-padding - 1px, calc(#{$material-button-vertical-padding} - 1px)); // dx-px-nudge: -1px under the button's own padding .dx-icon { align-self: center; - margin-top: 1px; + margin-top: $button-icon-margin-block-start; } } &.dx-button-has-text { .dx-button-content .dx-icon { - margin-top: 3px; + margin-top: $button-icon-margin-block-start-with-text; } } @@ -825,7 +853,7 @@ min-width: $material-underlined-editor-button-height; .dx-button-content { - padding: 2px; + padding: $button-icononly-padding; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/timeView/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/timeView/_mixins.scss index 3f220dee2ca5..021bfcda663a 100644 --- a/packages/devextreme-scss/scss/widgets/base/timeView/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/timeView/_mixins.scss @@ -1,5 +1,8 @@ +@use "sass:math"; +@use "sass:meta"; @use "sass:string"; @use "../string" as *; +@use "../mask" as *; @mixin clock-colored-image($data-uri, $accent-color, $background-color, $digit-color) { $uri: replace("#{$data-uri}", escape("$accent-color"), escape("#{$accent-color}")); @@ -9,38 +12,130 @@ background-image: string.unquote($uri); } -@mixin clock-action-icons-mixin($accent-color, $background-color, $digit-color) { +@mixin clock-masked-image($data-uri, $background: "%23000") { + $painted: replace("#{$data-uri}", escape("$accent-color"), "%23fff"); + $digits: replace($painted, escape("$digit-color"), "%23fff"); + $uri: replace($digits, escape("$background-color"), $background); + + mask-image: string.unquote($uri); + mask-mode: luminance; +} + +@mixin clock-action-icons-mixin( + $accent-color, + $background-color, + $digit-color, + $clock-size: 182px, + $arrow-width: 10px, + $arrow-offset: if( + meta.type-of($arrow-width) == number, + math.div(-$arrow-width, 2), + calc(#{$arrow-width} / -2) + ), + $dial-size: null, + $dial-shadow: null, + $pivot-size: 4px, + $pivot-offset: 5px, + $masked: false, +) { + @if $masked and not $dial-size { + @error "clock-action-icons-mixin: the masked path draws the dial and needs $dial-size."; + } + .dx-timeview-clock { - @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/clock-bg.svg"), $accent-color, $background-color, $digit-color); + @if $masked { + min-width: $clock-size; + min-height: $clock-size; + max-height: $clock-size; + + &::before, + &::after { + content: ""; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + + &::before { + width: $dial-size; + aspect-ratio: 1; + border-radius: 50%; + background-color: $background-color; + box-shadow: $dial-shadow; + } - $clock-size: 182px; + &::after { + @include clock-masked-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/clock-bg.svg")); - min-width: $clock-size; - min-height: $clock-size; - max-height: $clock-size; - background-size: $clock-size; - background-repeat: no-repeat; - background-position: 50% 50%; + width: $clock-size; + height: $clock-size; + mask-repeat: no-repeat; + mask-size: 100% 100%; + + @include masked-glyph-paint($digit-color); + } + } @else { + @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/clock-bg.svg"), $accent-color, $background-color, $digit-color); + + min-width: $clock-size; + min-height: $clock-size; + max-height: $clock-size; + background-size: $clock-size; + background-repeat: no-repeat; + background-position: 50% 50%; + } } .dx-timeview-hourarrow, .dx-timeview-minutearrow { position: absolute; left: 50%; - width: 10px; - margin-left: -5px; + width: $arrow-width; + margin-left: $arrow-offset; height: 50%; - background-position: bottom; - background-repeat: no-repeat; + + @if $masked { + mask-position: bottom; + mask-repeat: no-repeat; + + @include masked-glyph-paint($accent-color); + + z-index: 1; + } @else { + background-position: bottom; + background-repeat: no-repeat; + } + transform-origin: 50% 100%; backface-visibility: hidden; } .dx-timeview-hourarrow { - @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/hour-arrow.svg"), $accent-color, $background-color, $digit-color); + @if $masked { + @include clock-masked-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/hour-arrow.svg"), "%23fff"); + } @else { + @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/hour-arrow.svg"), $accent-color, $background-color, $digit-color); + } } .dx-timeview-minutearrow { - @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/min-arrow.svg"), $accent-color, $background-color, $digit-color); + @if $masked { + @include clock-masked-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/min-arrow.svg"), "%23fff"); + + &::after { + content: ""; + position: absolute; + left: 50%; + bottom: $pivot-offset; + width: $pivot-size; + height: $pivot-size; + transform: translate(-50%, 50%); + border-radius: 50%; + background-color: $background-color; + } + } @else { + @include clock-colored-image(data-uri("image/svg+xml;charset=UTF-8", "images/widgets/common/timeView/min-arrow.svg"), $accent-color, $background-color, $digit-color); + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/toolbar/_index.scss b/packages/devextreme-scss/scss/widgets/base/toolbar/_index.scss index 32ae6683bb64..642140843181 100644 --- a/packages/devextreme-scss/scss/widgets/base/toolbar/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/toolbar/_index.scss @@ -1,5 +1,9 @@ @use "../mixins" as *; +$toolbar-item-padding: 0 5px !default; +$toolbar-group-margin: 0 10px !default; +$toolbar-texteditor-width: 150px !default; + .dx-toolbar { width: 100%; @@ -49,7 +53,7 @@ } .dx-toolbar-item { - padding: 0 5px; + padding: $toolbar-item-padding; @include dx-toolbar-item(); } @@ -60,7 +64,7 @@ .dx-toolbar-group { float: left; - margin: 0 10px; + margin: $toolbar-group-margin; } .dx-toolbar-before, @@ -93,8 +97,8 @@ @include dx-overflow(); // NOTE: Prevent croping of italic text in label (T126187) - margin: 0 -5px; - padding: 0 5px; + margin: 0 -5px; // dx-fixed-size: pulls the items flush with the toolbar edge + padding: $toolbar-item-padding; } .dx-toolbar-center { @@ -209,7 +213,7 @@ .dx-toolbar-item-content { > .dx-texteditor, &.dx-texteditor { - width: 150px; + width: $toolbar-texteditor-width; } } diff --git a/packages/devextreme-scss/scss/widgets/base/toolbar/_mixins.scss b/packages/devextreme-scss/scss/widgets/base/toolbar/_mixins.scss index e76f9e4da44e..b5004d6e6a34 100644 --- a/packages/devextreme-scss/scss/widgets/base/toolbar/_mixins.scss +++ b/packages/devextreme-scss/scss/widgets/base/toolbar/_mixins.scss @@ -1,17 +1,19 @@ @mixin dx-toolbar-focus-outline( $accent-color, $border-radius, + $outline-width: 2px, + $outline-offset: 1px, ) { .dx-toolbar.dx-toolbar-focus-mode { [tabindex="0"]:focus-visible:not(.dx-toolbar-item) { - outline: 2px solid $accent-color; - outline-offset: 1px; + outline: $outline-width solid $accent-color; + outline-offset: $outline-offset; border-radius: $border-radius; } .dx-toolbar-item[tabindex="0"]:focus-visible .dx-menu { - outline: 2px solid $accent-color; - outline-offset: 1px; + outline: $outline-width solid $accent-color; + outline-offset: $outline-offset; border-radius: $border-radius; } } diff --git a/packages/devextreme-scss/scss/widgets/base/treeList/_common.scss b/packages/devextreme-scss/scss/widgets/base/treeList/_common.scss index 7f706cc6e127..02945ff8b07e 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeList/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeList/_common.scss @@ -1,6 +1,9 @@ @use "../mixins" as *; @use "../gridBase" as *; -@include grid-base(treelist); +$draggable-column-opacity: 0.5 !default; +$column-chooser-item-opacity: 0.5 !default; + +@include grid-base(treelist, $draggable-column-opacity, $column-chooser-item-opacity); .dx-treelist-container { position: relative; diff --git a/packages/devextreme-scss/scss/widgets/base/treeList/_expandable.scss b/packages/devextreme-scss/scss/widgets/base/treeList/_expandable.scss index 70285b993711..d0200902760b 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeList/_expandable.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeList/_expandable.scss @@ -1,5 +1,8 @@ @use "./variables" as *; @use "../icon_fonts" as *; +@use "sass:meta"; + +$node-line-height: null !default; .dx-treelist-headers { .dx-header-row { @@ -10,7 +13,7 @@ float: left; width: $treelist-expand-checkbox-size; height: 1lh; - margin: 0 $treelist-expand-checkbox-right-gap 0 ($treelist-expand-icon-size + $treelist-expand-icon-right-gap); + margin: 0 $treelist-expand-checkbox-right-gap 0 if(meta.type-of($treelist-expand-icon-size) == number and meta.type-of($treelist-expand-icon-right-gap) == number, ($treelist-expand-icon-size + $treelist-expand-icon-right-gap), calc(#{$treelist-expand-icon-size} + #{$treelist-expand-icon-right-gap})); .dx-select-checkbox { display: block; @@ -40,7 +43,7 @@ .dx-treelist-empty-space { width: $treelist-expand-icon-size; - height: 1px; + height: $node-line-height; user-select: none; &--last { @@ -81,7 +84,7 @@ .dx-treelist-select-checkbox-container { position: relative; width: $treelist-expand-checkbox-size; - height: 1px; + height: $node-line-height; margin: 0 $treelist-expand-checkbox-right-gap 0 0; .dx-select-checkbox { @@ -113,7 +116,7 @@ &.dx-treelist-select-all { .dx-treelist-select-checkbox-container { float: right; - margin: 0 ($treelist-expand-icon-size + $treelist-expand-icon-right-gap) 0 $treelist-expand-checkbox-right-gap; + margin: 0 if(meta.type-of($treelist-expand-icon-size) == number and meta.type-of($treelist-expand-icon-right-gap) == number, ($treelist-expand-icon-size + $treelist-expand-icon-right-gap), calc(#{$treelist-expand-icon-size} + #{$treelist-expand-icon-right-gap})) 0 $treelist-expand-checkbox-right-gap; } } } diff --git a/packages/devextreme-scss/scss/widgets/base/treeList/_index.scss b/packages/devextreme-scss/scss/widgets/base/treeList/_index.scss index 30e7affaa09d..f3d73a2cb038 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeList/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeList/_index.scss @@ -6,22 +6,40 @@ $datagrid-base-background-color: null !default; $datagrid-border-color: null !default; $datagrid-focused-border-color: null !default; $datagrid-text-stub-background-image-path: null !default; +$datagrid-text-stub-mask-image: null !default; +$datagrid-text-stub-bg: null !default; $datagrid-row-error-color: null !default; $header-filter-color: null !default; $header-filter-color-empty: null !default; $base-focus-color: null !default; @use "sass:color"; +@use "sass:meta"; @use "../mixins" as *; @use "../icon_fonts" as *; -@use "./common" as *; -@use "./expandable" as *; +$treelist-draggable-column-opacity: 0.5 !default; +$treelist-column-chooser-item-opacity: 0.5 !default; + +@use "./common" as * with ( + $draggable-column-opacity: $treelist-draggable-column-opacity, + $column-chooser-item-opacity: $treelist-column-chooser-item-opacity, +); +$treelist-expandable-node-line-height: 1px !default; + +@use "./expandable" as * with ( + $node-line-height: $treelist-expandable-node-line-height, +); +$treelist-sticky-column-border: 2px solid !default; +$treelist-cell-focus-outline: 2px solid !default; + @use "layout/cell" with ( $treelist-border: $datagrid-border, $treelist-border-color: $datagrid-border-color, $treelist-base-background-color: $datagrid-base-background-color, $treelist-row-error-color: $datagrid-row-error-color, $treelist-focused-border-color: $datagrid-focused-border-color, + $treelist-sticky-column-border: $treelist-sticky-column-border, + $treelist-cell-focus-outline: $treelist-cell-focus-outline, ); $treelist-border: $datagrid-border !default; @@ -34,6 +52,13 @@ $treelist-focused-border-color: $datagrid-focused-border-color !default; $treelist-text-stub-background-image-path: $datagrid-text-stub-background-image-path !default; $treelist-row-error-color: $datagrid-row-error-color !default; +$treelist-header-filter-outline: 2px solid !default; +$treelist-header-filter-outline-offset: 2px !default; +$treelist-button-margin-left: 10px !default; +$treelist-button-margin-top: 10px !default; +$treelist-error-message-margin-bottom: 20px !default; +$treelist-button-margin-right: 10px !default; + .dx-treelist-borders { > .dx-treelist-headers, > .dx-treelist-rowsview, @@ -127,9 +152,9 @@ $treelist-row-error-color: $datagrid-row-error-color !default; &.dx-state-focused .dx-header-row { td .dx-header-filter:focus { - outline: 2px solid; + outline: $treelist-header-filter-outline; outline-color: $treelist-focused-border-color; - outline-offset: 2px; + outline-offset: $treelist-header-filter-outline-offset; } } } @@ -147,7 +172,7 @@ $treelist-row-error-color: $datagrid-row-error-color !default; &.dx-filter-menu { .dx-menu-item-content .dx-icon { - @include dx-icon-sizing(14px); + @include dx-icon-sizing(14px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } } @@ -161,9 +186,9 @@ $treelist-row-error-color: $datagrid-row-error-color !default; .dx-treelist-rowsview.dx-state-focused .dx-data-row { & > td.dx-command-edit > a.dx-link:focus { - outline: 2px solid; + outline: $treelist-header-filter-outline; outline-color: $datagrid-focused-border-color; - outline-offset: 2px; + outline-offset: $treelist-header-filter-outline-offset; } &.dx-row-focused > td.dx-command-edit > a.dx-link:focus { @@ -182,8 +207,15 @@ $treelist-row-error-color: $datagrid-row-error-color !default; display: block; height: 100%; content: ""; - background-image: $treelist-text-stub-background-image-path; - background-repeat: no-repeat repeat; + + @if $datagrid-text-stub-mask-image { + mask-image: $datagrid-text-stub-mask-image; + mask-repeat: no-repeat repeat; + background-color: $datagrid-text-stub-bg; + } @else { + background-image: $treelist-text-stub-background-image-path; + background-repeat: no-repeat repeat; + } } &[style*="text-align: right"]::before { @@ -218,7 +250,7 @@ $treelist-row-error-color: $datagrid-row-error-color !default; .dx-icon-filter:focus, .dx-treelist-filter-panel-text:focus, .dx-treelist-filter-panel-clear-filter:focus { - outline: 2px solid; + outline: $treelist-header-filter-outline; outline-color: $treelist-focused-border-color; } } @@ -228,14 +260,14 @@ $treelist-row-error-color: $datagrid-row-error-color !default; float: right; .dx-button { - margin-left: 10px; - margin-top: 10px; + margin-left: $treelist-button-margin-left; + margin-top: $treelist-button-margin-top; } } .dx-treelist-export-menu { .dx-menu-item .dx-icon-exportxlsx { - @include dx-icon-sizing(16px); + @include dx-icon-sizing(16px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } } @@ -243,14 +275,14 @@ $treelist-row-error-color: $datagrid-row-error-color !default; cursor: pointer; @include dx-icon(more); - @include dx-icon-sizing(21px); + @include dx-icon-sizing(21px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } .dx-treelist-edit-popup .dx-error-message { @include dx-treelist-error-message(); color: $treelist-row-error-color; - margin-bottom: 20px; + margin-bottom: $treelist-error-message-margin-bottom; } .dx-rtl { @@ -273,7 +305,7 @@ $treelist-row-error-color: $datagrid-row-error-color !default; .dx-button { margin-left: 0; - margin-right: 10px; + margin-right: $treelist-button-margin-right; } } } @@ -284,15 +316,15 @@ $treelist-row-error-color: $datagrid-row-error-color !default; @keyframes dx-treelist-highlight-change { from { - background-color: color.change($treelist-base-color, $alpha: 0.08); + background-color: if(meta.type-of($treelist-base-color) == color, color.change($treelist-base-color, $alpha: 0.08), rgb(from #{$treelist-base-color} r g b / 0.08)); } 50% { - background-color: color.change($treelist-base-color, $alpha: 0.08); + background-color: if(meta.type-of($treelist-base-color) == color, color.change($treelist-base-color, $alpha: 0.08), rgb(from #{$treelist-base-color} r g b / 0.08)); } } .dx-command-ai-header-button .dx-button.dx-state-focused { - outline: 2px solid; + outline: $treelist-header-filter-outline; outline-color: $treelist-focused-border-color; } diff --git a/packages/devextreme-scss/scss/widgets/base/treeList/layout/cell.scss b/packages/devextreme-scss/scss/widgets/base/treeList/layout/cell.scss index 6d10c854c402..99d9aac760fb 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeList/layout/cell.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeList/layout/cell.scss @@ -5,6 +5,8 @@ $treelist-border-color: null !default; $treelist-base-background-color: null !default; $treelist-row-error-color: null !default; $treelist-focused-border-color: null !default; +$treelist-sticky-column-border: null !default; +$treelist-cell-focus-outline: null !default; // #region position & z-index @@ -38,9 +40,9 @@ $treelist-focused-border-color: null !default; .dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none, .dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none, .dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; - border-right: 2px solid; + border-right: $treelist-sticky-column-border; border-right-color: $treelist-border-color; } @@ -70,13 +72,13 @@ $treelist-focused-border-color: null !default; // (0,5,1) .dx-treelist .dx-treelist-sticky-columns .dx-treelist-table .dx-row td.dx-treelist-sticky-column-border-right { - border-right: 2px solid; + border-right: $treelist-sticky-column-border; border-right-color: $treelist-border-color; } // (0,5,1) .dx-treelist .dx-treelist-sticky-columns .dx-treelist-table .dx-row td.dx-treelist-sticky-column-border-left { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; } @@ -92,7 +94,7 @@ $treelist-focused-border-color: null !default; // (0,7,1) .dx-treelist:not(.dx-rtl) > .dx-gridbase-container .dx-treelist-table .dx-row > td.dx-treelist-first-cell.dx-treelist-sticky-column-border-left { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; } @@ -123,9 +125,9 @@ $treelist-focused-border-color: null !default; .dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none, .dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none, .dx-rtl .dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; - border-right: 2px solid; + border-right: $treelist-sticky-column-border; border-right-color: $treelist-border-color; } @@ -172,13 +174,13 @@ $treelist-focused-border-color: null !default; // (0,7,1) .dx-rtl > .dx-gridbase-container .dx-treelist-content .dx-treelist-table .dx-row > td.dx-treelist-first-cell.dx-treelist-sticky-column-border-left { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; } // (0,8,0) .dx-rtl.dx-treelist .dx-treelist-sticky-columns .dx-treelist-content .dx-treelist-table .dx-row .dx-treelist-column-no-border.dx-treelist-sticky-column-border-left { - border-left: 2px solid; + border-left: $treelist-sticky-column-border; border-left-color: $treelist-border-color; } @@ -222,9 +224,9 @@ $treelist-focused-border-color: null !default; // (0,5,1) .dx-treelist-container .dx-treelist-headers.dx-state-focused .dx-header-row td:focus { - outline: 2px solid; + outline: $treelist-cell-focus-outline; outline-color: $treelist-focused-border-color; - outline-offset: -2px; + outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots } // #endregion diff --git a/packages/devextreme-scss/scss/widgets/base/treeView/_common.scss b/packages/devextreme-scss/scss/widgets/base/treeView/_common.scss index ca79a379b7e4..82cedc39853c 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeView/_common.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeView/_common.scss @@ -1,3 +1,5 @@ +$treeview-disabled-opacity: null !default; + @use "../mixins" as *; @use "../../base/icon_fonts" as *; @@ -74,7 +76,7 @@ order: 2; .dx-icon { - margin-inline-end: 8px; + margin-inline-end: 8px; // dx-fixed-size: demos hand-write this class outside the widget, where a tier var would not reach } .dx-button-has-icon { @@ -92,7 +94,9 @@ } &.dx-state-disabled { - opacity: 0.5; + @if $treeview-disabled-opacity { + opacity: $treeview-disabled-opacity; + } } } diff --git a/packages/devextreme-scss/scss/widgets/base/treeView/_index.scss b/packages/devextreme-scss/scss/widgets/base/treeView/_index.scss index 2046ac20f08a..6faaf190debd 100644 --- a/packages/devextreme-scss/scss/widgets/base/treeView/_index.scss +++ b/packages/devextreme-scss/scss/widgets/base/treeView/_index.scss @@ -1,7 +1,15 @@ +$treeview-disabled-opacity: 0.5 !default; + @use "sass:math"; -@use "./common"; +@use "sass:meta"; +@use "./common" with ( + $treeview-disabled-opacity: $treeview-disabled-opacity, +); @use "../../base/icon_fonts" as *; +$treeview-select-all-item-border-bottom: 1px solid !default; +$treeview-border-visible-border: 1px solid !default; + .dx-treeview-custom-expand-icon, .dx-treeview-custom-collapse-icon { cursor: pointer; @@ -64,7 +72,7 @@ } .dx-treeview-node { - padding-inline-start: math.div($node-padding, 2); + padding-inline-start: if(meta.type-of($node-padding) == number, math.div($node-padding, 2), calc(#{$node-padding} / 2)); } } @@ -83,11 +91,11 @@ } .dx-treeview-with-search > .dx-scrollable { - height: calc(100% - #{math.round($search-editor-height + $searchbox-margin-bottom)}); + height: calc(100% - #{if(meta.type-of($search-editor-height) == number and meta.type-of($searchbox-margin-bottom) == number, math.round($search-editor-height + $searchbox-margin-bottom), calc(#{$search-editor-height} + #{$searchbox-margin-bottom}))}); } .dx-treeview-select-all-item { - border-bottom: 1px solid; + border-bottom: $treeview-select-all-item-border-bottom; border-bottom-color: $border-color; padding: $select-all-item-padding; @@ -107,7 +115,7 @@ } .dx-treeview-border-visible { - border: 1px solid; + border: $treeview-border-visible-border; border-color: $border-color; .dx-treeview-select-all-item { diff --git a/packages/devextreme-scss/scss/widgets/fluent-next/DIVERGENCES.md b/packages/devextreme-scss/scss/widgets/fluent-next/DIVERGENCES.md new file mode 100644 index 000000000000..25f6894f5165 --- /dev/null +++ b/packages/devextreme-scss/scss/widgets/fluent-next/DIVERGENCES.md @@ -0,0 +1,106 @@ +# Divergences + +Places where fluent-next cannot express a value through the design-token tier and has to freeze +something instead. Each one is marked in the source so it can be found, and each entry here says +what would have to change for the marker to go away. + +Comments in `_colors.scss` files point here with `See DIVERGENCES.md`. + +## The `dx-data-uri-static` marker + +An icon that is inlined as an SVG `data-uri` gets its colour by a build-time string replace of +`currentColor`. A CSS `var()` does not resolve inside a data-uri - it renders black - so the +colour has to be written as a literal, and the literal is a hand-copy of a `ds.$` token that +nothing keeps in sync. + +The marker records which token the literal stands for: + +```scss +$file-manager-icon: #161616 !default; // dx-data-uri-static: ds.$color-content +``` + +`tests/fluent-next-naming.test.ts` reads it: a variable that feeds a data-uri is exempt from the +rule that every colour variable is published into the component tier, because publishing a knob +that turns nothing would be worse than not publishing it. + +**A single-colour icon does not need this.** The same artwork used as a `mask-image` carries only +its alpha, so `background-color` paints it from the cascade or from a role and the colour stays a +token. That is how gantt, list, the file manager, timeView and diagram were retired - see the +`$masked` flag in each `base//_mixins.scss`, which keeps the legacy themes on the baked path +so their emitted css does not move. + +**What is left is only what is the same in both modes.** A literal that does not flip answers for +every mode scope, so it is a frozen value, not a broken island. That every remaining data uri is +mode-invariant is not a claim to be trusted: `tests/data-uri-mode-parity.test.ts` compares the light +and the dark bundle and requires the same image at the same rule. + +## Current inventory - 3 markers, 1 component + +### fileManager - 3, structural + +`done.svg` and `danger.svg` put a glyph on a success or danger disc beside the neutral arrows. The +arrows are a mask painted by `currentColor`, and the disc goes back on top as an image of its own, +so the two fills inside it stay literals: the disc is a fixed green or red in both modes, and the +glyph on it is `content-static-dark` - what sits on a fill that does not flip has no reason to flip +either. + +### diagram - none + +Every diagram icon is a mask, the properties-panel toggle included: it paints from +`content-static-dark`, the role its literal used to stand for, so nothing is frozen any more. + +Two images are still emitted there, and neither is a marker. The `none` connector marks carry +`.st0{fill:#FF0000}` in their ` + + +
+

DevExtreme · fluent-next · material for the design team

+

Scales: what did not land on a package step

+

Categories of values that got neither a step nor a role during the migration. Each + one is marked in the code, so this inventory is reproducible by command and cannot drift from the + sources. The marker categories are collected from the theme sources, calc() from the built bundle, + because what matters there is how many expressions actually reach the browser. No unmarked fixed + size is left in the theme: the gate tests/fluent-next-size-markers.test.ts catches + them.

+

The "step" column is computed: the value is converted to rem at a 16px root and + looked up in the package scale, the family chosen by the property. A filled cell means "a step + with exactly this value already exists", an empty one means "no such step in the scale".

+

Card: design#1555 + — the review happens there. It does not block the release: values off the scales stay literals, + and the card decides which of them deserve steps and roles.

+ +
+ +
+ ${vocabulary.categories.map((entry) => (entry.source === 'bundle' + ? calcSection() + : categorySection(categories.find((candidate) => candidate.id === entry.id)))).join('')} +
+ + +`; + +if (mdOnly) { + process.stdout.write(`${md()}\n`); +} else { + writeFileSync(join(themeDir, 'SCALES.md'), `${md()}\n`); + writeFileSync(join(themeDir, 'SCALES.html'), html()); + vocabulary.categories.forEach((entry) => { + if (entry.source === 'bundle') { + process.stdout.write(`${entry.title}: ${calcLight.length} per bundle — ` + + `${calcByKind.map((kind) => `${kind.title} ${kind.list.length}`).join(', ')}\n`); + return; + } + const category = categories.find((candidate) => candidate.id === entry.id); + process.stdout.write(`${category.title}: ${category.rows.length} ` + + `(distinct values ${distinctValues(category.rows, category).length})\n`); + }); +} diff --git a/packages/devextreme-scss/tools/review/size-markers.json b/packages/devextreme-scss/tools/review/size-markers.json new file mode 100644 index 000000000000..0b71c0469e5e --- /dev/null +++ b/packages/devextreme-scss/tools/review/size-markers.json @@ -0,0 +1,144 @@ +{ + "comment": [ + "Size-marker vocabulary. One source, three consumers:", + " tools/review/scales.mjs — builds the SCALES.md / SCALES.html report, a section per entry;", + " tools/review/px-audit.mjs — the gate: a px literal with no marker does not pass", + " (tests/fluent-next-size-markers.test.ts runs it).", + " tests/base-size-markers.test.ts — the same scan over the shared layer scss/widgets/base/**, against a baseline: that layer cannot be marked in one go, so the count only ratchets down.", + "The report and the gate cannot drift: this list is the only one.", + "", + "Fields: id — section anchor; marker — the token in a `// : note` comment;", + "title/question/why — section copy; literals — what counts as a distinct value in the summary", + "(px — pixels only, any — any literal with a unit, steps — step names);", + "scale — the package scale family the report looks the value up in (null — do not look up);", + "source — where places come from (sources — from the code by marker, bundle — from the built", + "bundle).", + "", + "Add a category here rather than in code: the report and the gate pick it up on their own.", + "A marker name must not be a substring of a custom property name used in the theme — both", + "scanners match the marker as a substring of the comment (`dx-border-width` is unusable: the", + "theme declares `--dx-border-width`)." + ], + "categories": [ + { + "id": "offscale", + "marker": "dx-offscale", + "source": "sources", + "title": "A. Sizes off the scales", + "question": "which values deserve a step", + "literals": "px", + "why": "A named theme size with no matching step in any relevant package scale: the value stayed a px literal.", + "scale": "spacing" + }, + { + "id": "foreign", + "marker": "dx-foreign-scale", + "source": "sources", + "title": "A2. Sizes taken from another family's scale", + "question": "does the property's own scale deserve these steps", + "literals": "steps", + "why": "A length read from the spacing scale although the property has a scale of its own - a font size, a border width - because that scale has no step at the value. Unlike A the number is not a literal: it does sit on a scale, just not the one the property belongs to, so nothing looks wrong until you read which family the step came from. Unlike B a role could not be attached even if the package wanted one, because there is no step to attach it to. A value that DOES exist in the right family is not listed here - that is a plain mistake and gets fixed, not classified.", + "scale": "font-size" + }, + { + "id": "norole", + "marker": "dx-no-semantic-role", + "source": "sources", + "title": "B. Step exists, role does not", + "question": "which steps deserve semantic roles", + "literals": "steps", + "why": "The value sits on a base scale step, but the package has no semantic role for this case — the theme reads the base scale directly.", + "scale": null + }, + { + "id": "glyph", + "marker": "dx-icon-glyph-size", + "source": "sources", + "title": "B2. Icon glyph sizes", + "question": "answered on 262.23.0: the package sizes glyphs from spacing, so no icon scale is needed - and ours read font-size", + "literals": "steps", + "why": "A glyph is sized by a font-size step or by a fraction of the font size. Measured across all four package sets and all three densities: every icon size the package declares comes from the SPACING scale (icon.size = {spacing.120} / {spacing.160} / {spacing.200} ...), never from font-size. A dedicated icon scale does exist but is used once in the whole package (ai-chat.reasoning-header.icon.size = {icon.size-12px}). So the answer to the question is no, and the theme is the outlier. The move would be value-neutral: font-size-N and spacing-N resolve to the same rem at every step the theme uses (110 through 360, all twelve checked), so renaming the scale read changes no pixel.", + "scale": "font-size" + }, + { + "id": "relative", + "marker": "dx-relative", + "source": "sources", + "title": "C. Proportional values", + "question": "do proportional values need DS roles", + "literals": "any", + "why": "The value is proportional to the font size or to the container. It cannot become an absolute token without changing behaviour: em is measured from the element's font size, a token from the root.", + "scale": null + }, + { + "id": "calc", + "marker": null, + "source": "bundle", + "title": "D. Computed sizes", + "question": "what to compute at build time and what at runtime", + "literals": null, + "why": "A token arrives in CSS as var(), so Sass can no longer fold the arithmetic: derived values move to the browser.", + "scale": null + }, + { + "id": "nudge", + "marker": "dx-px-nudge", + "source": "sources", + "title": "E. Pixel nudges", + "question": "should the correction follow the scale or stay absolute", + "literals": "px", + "why": "An absolute addition or subtraction on top of a token. When the scale moves the derived value follows and the correction does not — on a large step ±1px goes unnoticed, on a small one it is a visible fraction of the size.", + "scale": "spacing" + }, + { + "id": "shadow", + "marker": "dx-shadow-geometry", + "source": "sources", + "title": "F. Shadow geometry", + "question": "a shadow role as a whole, rather than steps for its numbers", + "literals": "px", + "why": "Offset, blur and spread inside box-shadow. The package ships shadow geometry as px tokens of its own, so the question is not which step but whether a shadow role is wanted — the theme already takes the shadow colour from a role.", + "scale": null + }, + { + "id": "linewidth", + "marker": "dx-line-width", + "source": "sources", + "title": "G. Border and line thickness", + "question": "put them on border-width steps, or must a hairline stay 1px", + "literals": "px", + "why": "The thickness of a border, of a hairline drawn with box-shadow, or of a strip revealed by clip-path. A matching step exists (border-width-10 = 1px), but a hairline is not meant to thicken along with the scale.", + "scale": "border-width" + }, + { + "id": "required", + "marker": "dx-literal-required", + "source": "sources", + "title": "H. Must stay a number", + "question": "no decision needed — the value is frozen by the technique", + "literals": "px", + "why": "A @media or @container condition: var() is invalid there, so the value cannot become a token even once a step exists. When the step moves the condition stays where it is — worth knowing in advance.", + "scale": "spacing" + }, + { + "id": "fixed", + "marker": "dx-fixed-size", + "source": "sources", + "title": "I. Fixed sizes written into rules", + "question": "does it deserve a step, or does the size stay fixed", + "literals": "px", + "why": "The number is written where it applies — in a rule, a mixin argument or a derived variable — with no name of its own. Unlike A, a step with that value usually does exist: the step column shows which one.", + "scale": "spacing" + }, + { + "id": "structural", + "marker": "dx-structural", + "source": "sources", + "title": "K. Not a designed size", + "question": "no decision needed — the number is a technique, not a size", + "literals": "px", + "why": "An off-screen parking coordinate (top: -9999px), a one-pixel probe, a number chosen to be far outside the viewport rather than to be seen. Nobody designs it and no step can replace it: making it a token would only invite someone to tune it. Unlike H, the value is not frozen by a syntax — it is frozen by having no visual meaning.", + "scale": null + } + ] +} diff --git a/packages/devextreme-scss/tools/review/sizes.mjs b/packages/devextreme-scss/tools/review/sizes.mjs new file mode 100644 index 000000000000..0c846115613d --- /dev/null +++ b/packages/devextreme-scss/tools/review/sizes.mjs @@ -0,0 +1,162 @@ +/* + * The sizes report: which step of which scale every size slot of the theme reads, and which steps + * the token package's component tier uses for the same component. + * + * node tools/review/sizes.mjs # summary to stdout + * node tools/review/sizes.mjs --json # machine-readable, for the gate + * + * The colour pass (tools/review/roles.mjs) reads `components//theme/fluent.json` and answers + * "is this the role the design system names for this slot". Nothing read `components//size/*`, + * so the other 874 declarations of the theme - spacing, border widths, radii and the typography + * ramp - were never compared against anything at all. + * + * The comparison is deliberately coarser than the colour one. A colour slot has a family the name + * itself promises, so a mismatch is meaningful on one declaration. A size step has no such promise: + * `spacing.120` is not wrong for a padding the way `color-bg-*` is wrong for a `-content` slot. So + * this asks the one question that IS answerable per component: does the package ever use this step + * of this scale in this component? A "no" is a question - the step may be one the design system + * does not put in this component at all - and the report names the steps it does use. + * + * So this is a REPORT, and deliberately not a gate. The colour pass can be one because a family is + * a hard rule: a `-bg` slot reading a content role is wrong on its face, whoever wrote it. A step + * carries no such rule. The steps this pass lists as unused are mostly places where the package + * models a component more thinly than we do, and banking 169 of them with a reason each would + * produce a list that says "we picked a different step, which is fine" 169 times - a gate that + * cannot go red for a reason anybody would act on. + * + * One rule did come out of the pass and IS gated, in tests/fluent-next-size-markers.test.ts: a + * glyph is sized from spacing, not from a typography scale. That one is hard, because font-size-N + * and spacing-N resolve to the same rem at every step, so the wrong scale reads correct and only a + * gate will notice. + */ +import { readFileSync, readdirSync, existsSync } from 'fs'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +import { createRequire } from 'module'; + +const here = dirname(fileURLToPath(import.meta.url)); +const packageRoot = join(here, '..', '..'); +const themeDir = join(packageRoot, 'scss', 'widgets', 'fluent-next'); +const requireFrom = createRequire(import.meta.url); + +const SETS = ['core', 'vnext', 'blazor', 'wpf']; +const DENSITIES = ['fluent_small', 'fluent_medium', 'fluent_large']; +const COMPONENT = JSON.parse( + readFileSync(join(here, 'roles.mjs'), 'utf8') + .match(/const COMPONENT = \{[\s\S]*?\n\};/)[0] + .replace('const COMPONENT = ', '') + .replace(/\n\};$/, '\n}') + .replace(/'/g, '"') + .replace(/(\w[\w-]*):/g, '"$1":') + .replace(/,(\s*[}\]])/g, '$1') + .replace(/^"const" COMPONENT = /, ''), +); + +const tokensRoot = dirname(requireFrom.resolve('@devexpress/design-tokens-internal/package.json')); +const tokensVersion = JSON.parse(readFileSync(join(tokensRoot, 'package.json'), 'utf8')).version; + +const refOf = (value) => { + const m = String(value).match(/^\{([a-z-]+(?:\.[a-z-]+)?)\.([a-z0-9-]+)\}$/); + if (!m) return null; + const scale = m[1].startsWith('global.') ? m[1].slice('global.'.length) : m[1]; + return { scale, step: m[2] }; +}; + +const packageSteps = new Map(); +SETS.forEach((set) => { + DENSITIES.forEach((density) => { + const file = join(tokensRoot, 'tokens', 'components', set, 'size', `${density}.json`); + if (!existsSync(file)) return; + const walk = (node, path = []) => { + Object.keys(node ?? {}).forEach((key) => { + const value = node[key]; + if (value && typeof value === 'object' && !('value' in value) && !('$value' in value)) { + walk(value, [...path, key]); + return; + } + const ref = refOf(value.value ?? value.$value); + if (!ref) return; + const component = path[0]; + if (!packageSteps.has(component)) packageSteps.set(component, new Map()); + const scales = packageSteps.get(component); + if (!scales.has(ref.scale)) scales.set(ref.scale, new Map()); + const steps = scales.get(ref.scale); + if (!steps.has(ref.step)) steps.set(ref.step, new Set()); + steps.get(ref.step).add(`${set}/${density.replace('fluent_', '')}`); + }); + }; + walk(JSON.parse(readFileSync(file, 'utf8'))); + }); +}); + +const SCALES = ['spacing', 'border-width', 'border-radius', 'font-size', 'line-height', 'font-weight', 'letter-spacing']; +const declarations = []; +readdirSync(themeDir).sort().forEach((folder) => { + const file = join(themeDir, folder, '_sizes.scss'); + if (!existsSync(file)) return; + const text = readFileSync(file, 'utf8'); + text.split('\n').forEach((line) => { + const decl = /^\$([a-z0-9-]+)\s*:\s*(.+?)(?:\s*!default)?;/.exec(line); + if (!decl) return; + const [, name, value] = decl; + SCALES.forEach((scale) => { + const re = new RegExp(`ds\\.\\$${scale}-([a-z0-9-]+)`, 'g'); + for (const m of value.matchAll(re)) { + declarations.push({ + folder, name, scale, step: m[1], value: value.trim(), + }); + } + }); + }); +}); + +const stepsFor = (folder, scale) => { + const components = COMPONENT[folder] ?? []; + const found = new Map(); + components.forEach((component) => { + const scales = packageSteps.get(component); + if (!scales?.has(scale)) return; + for (const [step, where] of scales.get(scale)) { + if (!found.has(step)) found.set(step, new Set()); + for (const w of where) found.get(step).add(w); + } + }); + return found; +}; + +const findings = declarations.map((d) => { + const components = COMPONENT[d.folder] ?? []; + if (!components.length) return { ...d, verdict: 'no-counterpart' }; + const steps = stepsFor(d.folder, d.scale); + if (!steps.size) return { ...d, verdict: 'scale-absent' }; + if (steps.has(d.step)) return { ...d, verdict: 'agrees', where: [...steps.get(d.step)].sort() }; + return { ...d, verdict: 'step-new', packageUsesHere: [...steps.keys()].sort() }; +}); + +const verdicts = ['agrees', 'step-new', 'scale-absent', 'no-counterpart']; +const summary = { + tokensVersion, + declarations: findings.length, + folders: new Set(findings.map((f) => f.folder)).size, + byVerdict: Object.fromEntries(verdicts + .map((v) => [v, findings.filter((f) => f.verdict === v).length])), + byScale: Object.fromEntries(SCALES + .map((s) => [s, findings.filter((f) => f.scale === s).length]).filter(([, n]) => n)), +}; + +if (process.argv.includes('--json')) { + console.log(JSON.stringify({ summary, findings }, null, 2)); +} else { + console.log(`size reads ${summary.declarations} in ${summary.folders} folders, package ${tokensVersion}`); + for (const v of verdicts) console.log(` ${v.padEnd(16)} ${summary.byVerdict[v]}`); + console.log('\nby scale:'); + for (const [scale, n] of Object.entries(summary.byScale)) console.log(` ${scale.padEnd(16)} ${n}`); + const neu = findings.filter((f) => f.verdict === 'step-new'); + const byFolder = {}; + for (const f of neu) (byFolder[f.folder] ??= []).push(f); + console.log(`\nsteps the package does not use in this component (${neu.length}):`); + const busiest = Object.entries(byFolder).sort((a, b) => b[1].length - a[1].length).slice(0, 12); + for (const [folder, rows] of busiest) { + console.log(` ${String(rows.length).padStart(3)} ${folder} e.g. ${rows[0].name} reads ${rows[0].scale}-${rows[0].step}; package uses ${rows[0].packageUsesHere.join(', ')}`); + } +} diff --git a/packages/devextreme-scss/tools/review/unread-tier.json b/packages/devextreme-scss/tools/review/unread-tier.json new file mode 100644 index 000000000000..05bcb31d6cef --- /dev/null +++ b/packages/devextreme-scss/tools/review/unread-tier.json @@ -0,0 +1,103 @@ +{ + "comment": [ + "--dx-* names the built fluent-next bundle declares and nothing in that bundle reads. The list is", + "the worklist for question 3 of reachability.mjs and is pinned by exact set equality: a name that", + "starts being read is banked with --update-unread, a name that goes dead fails the gate.", + "", + "What this measures, precisely: reads INSIDE the bundle. That is not the same as dead. The tier is", + "public API, so application CSS is a legitimate reader, and a fifth of the names here are read outside", + "it - by apps/demos, packages/devextreme/js or the base layer. --dx-font-size-sm and", + "--dx-font-size-heading-5 are set in the Chat demos' own stylesheets; the theme is not supposed to", + "read them. The other half of the contract is already measured elsewhere: publicSurfaceUnused in", + "tests/fluent-next-naming.test.ts scans those three trees, over the legacy tier. Two questions,", + "two gates - do not read either as the whole answer.", + "", + "The names read in neither place are the ones worth a decision, and they come in three kinds. Counts move with every change - run the tool rather than trusting a number written here (28.09.2026: 66 names listed, after a curation pass; removed names are recorded in tools/naming/public-renames.json, the rest were kept and reasoned in the finalizing PR's history).", + "", + "Defects: the theme publishes a knob and no rule turns it. --dx-switch-box-shadow was one such", + "example, removed 25.09.2026. --dx-datagrid-row-alternation-bg looked like another, but turned out", + "to be read by ~30 theme-agnostic demo files across all four themes, so it was kept and reverted", + "back to its original name (26.09.2026) - pick a fresh illustration from the names below if this", + "paragraph needs one again. --dx-scheduler-appointment-{15,20,25}min-height are a related but", + "distinct case: they ARE consumed, as a Sass interpolation inside a @container breakpoint rather", + "than through a custom property, so a runtime override does nothing - kept, not removed.", + "", + "Sass helpers the publisher exported by accident: the value was folded into a neighbour at build", + "time (--dx-tree-view-checkbox-offset composes $tree-view-select-all-item-padding) or has to stay a", + "Sass number because the base layer multiplies it (--dx-scheduler-left-column-width, same status) -", + "both kept, not removed.", + "", + "Published constants, not knobs: --dx-font-size-heading-1..6 and --dx-font-size-xs..xl are declared", + "by all four themes for application markup. In fluent-next the same numbers also ship as", + "--dx-typography-heading-N-font-size, and THAT is the pair the theme reads - so these are a stable", + "constant to read, never a knob to turn. Worth saying out loud rather than deducing twice." + ], + "names": [ + "--dx-border-radius", + "--dx-border-width", + "--dx-button-icon-margin", + "--dx-button-icon-size", + "--dx-button-padding-block", + "--dx-button-padding-inline", + "--dx-calendar-legacy-width", + "--dx-check-box-indeterminate-icon-height", + "--dx-check-box-indeterminate-icon-width", + "--dx-color-border", + "--dx-color-danger", + "--dx-color-icon", + "--dx-color-link", + "--dx-color-main-bg", + "--dx-color-options-panel-bg", + "--dx-color-primary", + "--dx-color-separator", + "--dx-color-spin-icon", + "--dx-color-success", + "--dx-color-text", + "--dx-color-warning", + "--dx-component-color-bg", + "--dx-component-height", + "--dx-data-grid-group-panel-item-padding-block", + "--dx-datagrid-row-alternation-bg", + "--dx-file-manager-file-actions-button-top-bottom-padding", + "--dx-font-size", + "--dx-font-size-heading-1", + "--dx-font-size-heading-2", + "--dx-font-size-heading-3", + "--dx-font-size-heading-4", + "--dx-font-size-heading-5", + "--dx-font-size-heading-6", + "--dx-font-size-icon", + "--dx-font-size-lg", + "--dx-font-size-md", + "--dx-font-size-sm", + "--dx-font-size-xl", + "--dx-font-size-xs", + "--dx-global-inline-widget-inner-height", + "--dx-grid-column-chooser-item-margin", + "--dx-grid-group-panel-item-margin-inline", + "--dx-grid-group-panel-message-line-height", + "--dx-grid-hidden-border", + "--dx-list-item-border-width", + "--dx-list-item-margin-inline", + "--dx-map-marker-tooltip-margin", + "--dx-menu-item-bg-hovered", + "--dx-menu-item-line-height", + "--dx-menu-item-with-icon-padding-inline", + "--dx-progress-bar-range-indeterminate-bg", + "--dx-scheduler-appointment-15min-height", + "--dx-scheduler-appointment-20min-height", + "--dx-scheduler-appointment-25min-height", + "--dx-scheduler-left-column-width", + "--dx-scheduler-workspace-cell-bg-active", + "--dx-slider-height", + "--dx-tabs-item-padding-inline", + "--dx-texteditor-color-label", + "--dx-tree-list-expand-icon-size", + "--dx-tree-view-border-padding", + "--dx-tree-view-checkbox-offset", + "--dx-tree-view-container-with-border-offset", + "--dx-tree-view-item-padding-inline", + "--dx-validation-message-content-padding", + "--dx-validation-summary-margin-block-start" + ] +} diff --git a/packages/devextreme-scss/tools/sizes/inventory.mjs b/packages/devextreme-scss/tools/sizes/inventory.mjs new file mode 100644 index 000000000000..85e8296f0456 --- /dev/null +++ b/packages/devextreme-scss/tools/sizes/inventory.mjs @@ -0,0 +1,313 @@ +/* + * The inventory of fixed sizes in the SHARED layer scss/widgets/base/**. + * + * node tools/sizes/inventory.mjs # write the lists, print the summary + * node tools/sizes/inventory.mjs --check # read-only; exit 1 if a list on disk is stale + * node tools/sizes/inventory.mjs --json # read-only; the summary, machine-readable + * # (jest uses this) + * + * The layer is compiled once per bundle, so a value written into it reaches generic, material, + * fluent and fluent-next at the same time. That is why the sizes are split in two, and the split is + * not a matter of taste: + * + * theme-settable — the literal is the default of a `$x: … !default` declaration. The knob already + * exists: a theme passes its own value through `@use "…/base/x" with ($x: …)` + * and the other themes keep the default, byte for byte. Nothing in base has to + * change. + * base-owned — the literal is written where it applies: in a rule, a mixin body, a local + * variable with no `!default`, a calc(), a @media condition. There is no knob, + * so opening one means editing the shared layer, which is the base owners' call. + * + * The scan is tools/review/px-audit.mjs — the same module the gate and SCALES.md are built from, so + * the inventory cannot claim a different set of places than the gate enforces. + */ + +import { readFileSync, readdirSync, writeFileSync } from 'fs'; +import { dirname, join, relative } from 'path'; +import { fileURLToPath } from 'url'; + +import { scanPxLiterals } from '../review/px-audit.mjs'; + +const here = dirname(fileURLToPath(import.meta.url)); +const packageRoot = join(here, '..', '..'); +const baseDir = join(packageRoot, 'scss', 'widgets', 'base'); +const themeDir = join(packageRoot, 'scss', 'widgets', 'fluent-next'); +const listsDir = join(here, 'lists'); + +const OFF_SCREEN_PX = 1000; +const isOffScreen = (code) => (code.match(/-?\d*\.?\d+px\b/g) ?? []) + .some((literal) => Math.abs(parseFloat(literal)) >= OFF_SCREEN_PX); +const GEOMETRY = /^(?:box-shadow|outline|outline-offset|outline-width|border|border-\w+|border-\w+-\w+|clip|clip-path)\s*:/; + +const codeOf = (text) => { + const at = text.indexOf('//'); + return (at === -1 ? text : text.slice(0, at)).trim(); +}; + +const statusOf = (parameter, configured) => { + if (parameter) return 'parameter'; + return configured ? 'injected' : 'open'; +}; + +const categoryOf = (code) => { + if (/^\$[\w-]+\s*:/.test(code)) return 'local-var'; + if (code.includes('@media') || code.includes('@container')) return 'media'; + if (code.startsWith('@include') || code.startsWith('@mixin')) return 'mixin-arg'; + if (isOffScreen(code)) return 'structural'; + if (GEOMETRY.test(code)) return 'geometry'; + if (code.includes('calc(')) return 'calc'; + return 'inline'; +}; + +const blankBlockComments = (content) => content + .replace(/\/\*[\s\S]*?\*\//g, (comment) => comment.replace(/[^\n]/g, ' ')); + +const signatureCache = new Map(); +const mixinParameterLines = (file) => { + if (signatureCache.has(file)) return signatureCache.get(file); + const inside = new Set(); + let depth = 0; + blankBlockComments(readFileSync(join(packageRoot, file), 'utf8')).split('\n').forEach((line, index) => { + const code = codeOf(line); + const opening = depth === 0 && /@mixin\b/.test(code); + if (!opening && depth === 0) return; + if (depth > 0) inside.add(index + 1); + depth += (code.match(/\(/g)?.length ?? 0) - (code.match(/\)/g)?.length ?? 0); + if (depth < 0) depth = 0; + }); + signatureCache.set(file, inside); + return inside; +}; + +const widgetOf = (file) => { + const [head, ...rest] = relative('scss/widgets/base', file).split('/'); + return rest.length ? head : head.replace(/^_/, '').replace(/\.scss$/, ''); +}; + +const scssFiles = (dir) => readdirSync(dir, { withFileTypes: true }).flatMap((entry) => { + const full = join(dir, entry.name); + if (entry.isDirectory()) return scssFiles(full); + return entry.name.endsWith('.scss') ? [full] : []; +}); + +const splitTopLevel = (body) => { + const parts = []; + let depth = 0; + let current = ''; + [...body].forEach((character) => { + if (character === '(') depth += 1; + if (character === ')') depth -= 1; + if (character === ',' && depth === 0) { + parts.push(current); + current = ''; + return; + } + current += character; + }); + parts.push(current); + return parts; +}; + +const readThemeConfiguration = () => { + const setBy = new Map(); + scssFiles(themeDir).forEach((file) => { + const content = blankBlockComments(readFileSync(file, 'utf8')); + [...content.matchAll(/@use\s+"([^"]*base[^"]*)"[^(\n]*with\s*\(/g)].forEach((match) => { + let depth = 1; + let at = match.index + match[0].length; + while (at < content.length && depth > 0) { + if (content[at] === '(') depth += 1; + if (content[at] === ')') depth -= 1; + at += 1; + } + const body = content.slice(match.index + match[0].length, at - 1).replace(/\/\/[^\n]*/g, ''); + splitTopLevel(body).forEach((part) => { + const name = /^\s*\$([\w-]+)\s*:/.exec(part); + if (!name) return; + const value = part.slice(part.indexOf(':') + 1).trim().replace(/\s+/g, ' '); + setBy.set(name[1], { + file: relative(packageRoot, file), + value, + }); + }); + }); + }); + return setBy; +}; + +const build = () => { + const { marked, unmarked } = scanPxLiterals(baseDir); + const places = [...marked, ...unmarked] + .sort((a, b) => a.file.localeCompare(b.file) || a.line - b.line); + const setBy = readThemeConfiguration(); + + const settable = []; + const owned = []; + + places.forEach((place) => { + const code = codeOf(place.text); + const declaration = /^\$([\w-]+)\s*:/.exec(code); + const parameter = Boolean(declaration) && mixinParameterLines(place.file).has(place.line); + const isKnob = Boolean(declaration) && (code.includes('!default') || parameter); + const common = { + file: place.file, + line: place.line, + widget: widgetOf(place.file), + literals: place.literals, + occurrences: place.occurrences, + marker: place.marker, + text: place.text, + }; + + if (isKnob) { + const configured = setBy.get(declaration[1]); + settable.push({ + ...common, + variable: declaration[1], + kind: parameter ? 'mixin-parameter' : 'module-variable', + status: statusOf(parameter, configured), + ...(configured && !parameter ? { setBy: configured.file, setTo: configured.value } : {}), + }); + return; + } + owned.push({ ...common, category: categoryOf(code) }); + }); + + return { settable, owned }; +}; + +const tally = (rows, key) => rows.reduce((acc, row) => ({ + ...acc, + [row[key]]: (acc[row[key]] ?? 0) + row.occurrences, +}), {}); + +const descending = (totals) => Object.fromEntries( + Object.entries(totals).sort(([, a], [, b]) => b - a), +); + +const sum = (rows) => rows.reduce((total, row) => total + row.occurrences, 0); + +const GENERATED = 'GENERATED by tools/sizes/inventory.mjs — do not edit by hand. ' + + 'Judgment calls belong in that script, not in this file.'; + +const settableJson = (settable) => ({ + $comment: [ + GENERATED, + 'Sizes the theme can set from outside without touching the shared layer: the literal is the ' + + 'default of a `$x: … !default` declaration, so `@use "…/base/x" with ($x: …)` replaces it for ' + + 'one theme and leaves the default — and every other theme — untouched.', + 'kind "module-variable" — a `$x: … !default` declaration; "mixin-parameter" — a default in a ' + + '`@mixin name(…)` signature, which a theme replaces by passing an argument.', + 'status "injected" — fluent-next already passes a value; "open" — the knob exists and nobody ' + + 'turns it; "parameter" — a mixin parameter, where the signature itself is the channel and there ' + + 'is nothing to cross-check by name. An "open" row is theme-side work only.', + 'The match is by variable name. A name declared in a nested module is only reachable once the ' + + 'parent forwards it (see base/chat/_index.scss), which is why an "open" row can sit next to ' + + 'injected ones from the same widget.', + ], + summary: { + occurrences: sum(settable), + variables: new Set(settable.map((row) => row.variable)).size, + injected: sum(settable.filter((row) => row.status === 'injected')), + open: sum(settable.filter((row) => row.status === 'open')), + parameters: sum(settable.filter((row) => row.status === 'parameter')), + }, + places: settable, +}); + +const ownedJson = (owned) => ({ + $comment: [ + GENERATED, + 'Sizes nailed into the shared layer: no `!default` declaration holds them, so opening one means ' + + 'editing scss/widgets/base/** — which every theme compiles. Each place needs either a knob ' + + '(and proof the other themes did not move) or a marker saying why it stays.', + 'category — why there is no knob today: local-var (a $x with no !default), mixin-arg (inside a ' + + '@mixin body or call), media (a @media condition, where var() is invalid), structural (an ' + + 'off-screen parking coordinate, not a designed size), geometry (box-shadow / outline / border ' + + '/ clip-path numbers), calc (already inside a calc()), inline (a plain declaration).', + 'marker — the classification comment already on the line, from tools/review/size-markers.json.', + ], + summary: { + occurrences: sum(owned), + byCategory: descending(tally(owned, 'category')), + byWidget: descending(tally(owned, 'widget')), + unmarked: sum(owned.filter((row) => !row.marker)), + unmarkedByWidget: descending(tally(owned.filter((row) => !row.marker), 'widget')), + }, + places: owned, +}); + +const commentedOccurrences = () => { + const px = /-?\d*\.?\d+px\b/g; + return scssFiles(baseDir).reduce((total, file) => { + const content = readFileSync(file, 'utf8'); + const inCode = blankBlockComments(content).split('\n') + .reduce((count, line) => count + (codeOf(line).match(px)?.length ?? 0), 0); + return total + ((content.match(px)?.length ?? 0) - inCode); + }, 0); +}; + +export const inventory = () => { + const { settable, owned } = build(); + const comments = commentedOccurrences(); + return { + comments, + settable: { + occurrences: sum(settable), + variables: new Set(settable.map((row) => row.variable)).size, + injected: sum(settable.filter((row) => row.status === 'injected')), + open: sum(settable.filter((row) => row.status === 'open')), + parameters: sum(settable.filter((row) => row.status === 'parameter')), + }, + owned: { + occurrences: sum(owned), + unmarked: sum(owned.filter((row) => !row.marker)), + byCategory: descending(tally(owned, 'category')), + byWidget: descending(tally(owned.filter((row) => !row.marker), 'widget')), + }, + artefacts: [ + ['theme-settable.json', `${JSON.stringify(settableJson(settable), null, 2)}\n`], + ['base-owned.json', `${JSON.stringify(ownedJson(owned), null, 2)}\n`], + ], + }; +}; + +if (process.argv[1] === fileURLToPath(import.meta.url)) { + const { + comments, settable, owned, artefacts, + } = inventory(); + const check = process.argv.includes('--check'); + const json = process.argv.includes('--json'); + + const stale = artefacts.filter(([name, content]) => { + try { + return readFileSync(join(listsDir, name), 'utf8') !== content; + } catch { + return true; + } + }); + if (!check && !json) { + artefacts.forEach(([name, content]) => writeFileSync(join(listsDir, name), content)); + } + + if (json) { + process.stdout.write(`${JSON.stringify({ comments, settable, owned }, null, 2)}\n`); + } else { + process.stdout.write([ + `raw grep of scss/widgets/base: ${settable.occurrences + owned.occurrences + comments} px ` + + `occurrences (${comments} of them inside comments)`, + `in code: ${settable.occurrences + owned.occurrences}`, + ` theme-settable ${settable.occurrences} (injected ${settable.injected}, open ${settable.open}, ` + + `mixin parameters ${settable.parameters})`, + ` base-owned ${owned.occurrences} ${Object.entries(owned.byCategory) + .map(([category, count]) => `${category} ${count}`).join(', ')}`, + ` of those still unclassified: ${owned.unmarked}`, + '', + ].join('\n')); + } + + if (check && stale.length) { + process.stdout.write(`stale: ${stale.map(([name]) => name).join(', ')} — run node tools/sizes/inventory.mjs\n`); + process.exit(1); + } +} diff --git a/packages/devextreme-scss/tools/sizes/lists/base-owned.json b/packages/devextreme-scss/tools/sizes/lists/base-owned.json new file mode 100644 index 000000000000..75e41d271422 --- /dev/null +++ b/packages/devextreme-scss/tools/sizes/lists/base-owned.json @@ -0,0 +1,1983 @@ +{ + "$comment": [ + "GENERATED by tools/sizes/inventory.mjs — do not edit by hand. Judgment calls belong in that script, not in this file.", + "Sizes nailed into the shared layer: no `!default` declaration holds them, so opening one means editing scss/widgets/base/** — which every theme compiles. Each place needs either a knob (and proof the other themes did not move) or a marker saying why it stays.", + "category — why there is no knob today: local-var (a $x with no !default), mixin-arg (inside a @mixin body or call), media (a @media condition, where var() is invalid), structural (an off-screen parking coordinate, not a designed size), geometry (box-shadow / outline / border / clip-path numbers), calc (already inside a calc()), inline (a plain declaration).", + "marker — the classification comment already on the line, from tools/review/size-markers.json." + ], + "summary": { + "occurrences": 212, + "byCategory": { + "inline": 91, + "geometry": 61, + "local-var": 35, + "calc": 9, + "structural": 8, + "mixin-arg": 6, + "media": 2 + }, + "byWidget": { + "colorView": 42, + "scheduler": 33, + "textEditor": 26, + "gridBase": 18, + "htmlEditor": 15, + "cardView": 15, + "pivotGrid": 11, + "ui": 8, + "scrollView": 5, + "dataGrid": 5, + "fileManager": 5, + "sortable": 4, + "treeList": 4, + "icon_fonts": 2, + "multiView": 2, + "resizable": 2, + "tagBox": 2, + "filterBuilder": 2, + "fileUploader": 1, + "pagination": 1, + "slider": 1, + "colorBox": 1, + "diagram": 1, + "gantt": 1, + "lookup": 1, + "popover": 1, + "stepper": 1, + "toolbar": 1, + "treeView": 1 + }, + "unmarked": 0, + "unmarkedByWidget": {} + }, + "places": [ + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 211, + "widget": "fileUploader", + "literals": [ + "-6px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -6px; // dx-fixed-size: pulls the status text onto the progress line", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 19, + "widget": "htmlEditor", + "literals": [ + "11px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$resize-handle-size: 11px;", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 20, + "widget": "htmlEditor", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$touch-resize-handle-size: 15px; // dx-fixed-size: the touch variant of the same handle", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 152, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "min-height: 1px; // dx-structural: lets the flex item shrink below its content, not a designed height", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 159, + "widget": "htmlEditor", + "literals": [ + "-100000px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "left: -100000px; // dx-structural: parks Quill's clipboard element off-screen", + "category": "structural" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 160, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "height: 1px; // dx-structural: collapses the off-screen clipboard element, not a designed height", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 224, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px solid #000; // dx-line-width: a table hairline; the colour beside it is hard-coded too", + "category": "geometry" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 353, + "widget": "htmlEditor", + "literals": [ + "0.1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "height: 0.1px; // dx-structural: a non-zero height the placeholder needs, not a designed size", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 374, + "widget": "htmlEditor", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "min-width: 50px; // dx-fixed-size: the narrowest the mention suggestion list may get", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 387, + "widget": "htmlEditor", + "literals": [ + "360px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "min-width: 360px; // dx-fixed-size: the link/image dialog form width", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 412, + "widget": "htmlEditor", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "gap: 6px; // dx-fixed-size: gap between the AI dialog title icon and its text", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 419, + "widget": "htmlEditor", + "literals": [ + "240px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "min-width: 240px; // dx-fixed-size: the same dialog form once the popup goes fullscreen", + "category": "inline" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 432, + "widget": "htmlEditor", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border-bottom: 3px solid transparent; // dx-line-width: the strip under the colour-format icon that shows the picked colour", + "category": "geometry" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 452, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px dashed lightslategrey; // dx-line-width: hairline of the image resize frame", + "category": "geometry" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 463, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px solid white; // dx-line-width: hairline around a resize handle", + "category": "geometry" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 519, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px solid white; // dx-line-width: hairline around a resize handle", + "category": "geometry" + }, + { + "file": "scss/widgets/base/_icon_fonts.scss", + "line": 304, + "widget": "icon_fonts", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": "dx-icon-glyph-size", + "text": "font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes -- dx-icon-glyph-size: the icon font's own size, no icon scale in the package", + "category": "inline" + }, + { + "file": "scss/widgets/base/_icon_fonts.scss", + "line": 672, + "widget": "icon_fonts", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": "dx-icon-glyph-size", + "text": "font: 14px/1 DXIcons; // stylelint-disable-line font-family-no-missing-generic-family-keyword, font-family-name-quotes -- dx-icon-glyph-size: the icon font's own size, no icon scale in the package", + "category": "inline" + }, + { + "file": "scss/widgets/base/_multiView.scss", + "line": 39, + "widget": "multiView", + "literals": [ + "-9999px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "top: -9999px; // dx-structural: parks the hidden slide off-screen", + "category": "structural" + }, + { + "file": "scss/widgets/base/_multiView.scss", + "line": 40, + "widget": "multiView", + "literals": [ + "-9999px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "left: -9999px; // dx-structural: parks the hidden slide off-screen", + "category": "structural" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 17, + "widget": "pagination", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$pagination-paddings: 8px; // dx-fixed-size: the shared source of the two fallbacks below", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_resizable.scss", + "line": 2, + "widget": "resizable", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$one-side-handle-size: 3px + $handle-offset; // dx-fixed-size: handle thickness ($handle-offset is 0)", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_resizable.scss", + "line": 3, + "widget": "resizable", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$two-side-handle-size: 6px + $handle-offset; // dx-fixed-size: handle thickness ($handle-offset is 0)", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 48, + "widget": "scrollView", + "literals": [ + "-20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-left: -20px; // dx-fixed-size: centres the android pull-down on the pocket", + "category": "inline" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 147, + "widget": "scrollView", + "literals": [ + "-15px", + "20px", + "15px" + ], + "occurrences": 3, + "marker": "dx-fixed-size", + "text": "margin: -15px 20px 0 15px; // dx-fixed-size: centres the indicator on its own half-height", + "category": "inline" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 228, + "widget": "scrollView", + "literals": [ + "-20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -20px; // dx-fixed-size: pulls the text onto the indicator's line", + "category": "inline" + }, + { + "file": "scss/widgets/base/_slider.scss", + "line": 5, + "widget": "slider", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$slider-tooltip-arrow-height: 7px; // dx-fixed-size: feeds dx-popover-arrow-size, which divides by sqrt(2)", + "category": "local-var" + }, + { + "file": "scss/widgets/base/_sortable.scss", + "line": 14, + "widget": "sortable", + "literals": [ + "1px", + "3px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "0 1px 3px $sortable-clone-shadow-color-first,", + "category": "inline" + }, + { + "file": "scss/widgets/base/_sortable.scss", + "line": 15, + "widget": "sortable", + "literals": [ + "6px", + "8px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "0 6px 8px $sortable-clone-shadow-color-second !default;", + "category": "inline" + }, + { + "file": "scss/widgets/base/_tagBox.scss", + "line": 15, + "widget": "tagBox", + "literals": [ + "0.1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "width: 0.1px; // T393423, T437866 -- dx-structural: a non-zero width the browsers need, not a designed size", + "category": "inline" + }, + { + "file": "scss/widgets/base/_tagBox.scss", + "line": 43, + "widget": "tagBox", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "max-width: calc(100% - 1px); // dx-px-nudge: a pixel off the full width so the tag never overflows", + "category": "calc" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 13, + "widget": "ui", + "literals": [ + "-10px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "top: -10px; // dx-structural: parks the hidden input off-screen", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 14, + "widget": "ui", + "literals": [ + "-10px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "left: -10px; // dx-structural: parks the hidden input off-screen", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 41, + "widget": "ui", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "height: 1px; // dx-structural: the screen-reader-only clipping box, not a designed size", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 42, + "widget": "ui", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "width: 1px; // dx-structural: the screen-reader-only clipping box, not a designed size", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 226, + "widget": "ui", + "literals": [ + "150px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "transform: translate3d(0, 150px, 0); // dx-fixed-size: how far the android pop animation travels", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 348, + "widget": "ui", + "literals": [ + "-10px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "transform: rotate3d(1, 0, 0, 10deg) translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the 3d drop animation travels", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 362, + "widget": "ui", + "literals": [ + "-10px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "transform: translate3d(0, -10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the fade drop animation travels", + "category": "inline" + }, + { + "file": "scss/widgets/base/_ui.scss", + "line": 376, + "widget": "ui", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "transform: translate3d(0, 10px, 0) scale3d(1.1, 1.1, 1.1); // dx-fixed-size: how far the fade rise animation travels", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/content_view/content/card/_index.scss", + "line": 22, + "widget": "cardView", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline: 2px solid; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "geometry" + }, + { + "file": "scss/widgets/base/cardView/content_view/content/card/_index.scss", + "line": 24, + "widget": "cardView", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline-offset: -2px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "geometry" + }, + { + "file": "scss/widgets/base/cardView/content_view/content/card/header/_index.scss", + "line": 10, + "widget": "cardView", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "padding: 0 12px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/content_view/content/card/header/_index.scss", + "line": 42, + "widget": "cardView", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "width: 20px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/content_view/content/card/header/_index.scss", + "line": 43, + "widget": "cardView", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "height: 20px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/content_view/no_data/_index.scss", + "line": 10, + "widget": "cardView", + "literals": [ + "999px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "border-radius: 999px; // dx-fixed-size: a pill radius; the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "geometry" + }, + { + "file": "scss/widgets/base/cardView/header_panel/_index.scss", + "line": 10, + "widget": "cardView", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$sortable-side-offset: 6px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "local-var" + }, + { + "file": "scss/widgets/base/cardView/header_panel/_index.scss", + "line": 50, + "widget": "cardView", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "gap: 4px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/header_panel/item/_index.scss", + "line": 9, + "widget": "cardView", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "gap: 4px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/header_panel/item/_index.scss", + "line": 55, + "widget": "cardView", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline: 2px solid; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "geometry" + }, + { + "file": "scss/widgets/base/cardView/header_panel/item/_index.scss", + "line": 57, + "widget": "cardView", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline-offset: -2px; // dx-fixed-size: the base/cardView chain is not configurable from a theme yet: nothing in it is passed through @use ... with", + "category": "geometry" + }, + { + "file": "scss/widgets/base/cardView/header_panel/item/_index.scss", + "line": 92, + "widget": "cardView", + "literals": [ + "1px", + "3px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "0 1px 3px $cardview-header-panel__item--dragged-box-shadow-color,", + "category": "inline" + }, + { + "file": "scss/widgets/base/cardView/header_panel/item/_index.scss", + "line": 93, + "widget": "cardView", + "literals": [ + "6px", + "8px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "0 6px 8px $cardview-header-panel__item--dragged-box-shadow-color", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 21, + "widget": "colorBox", + "literals": [ + "25px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "max-width: calc(100% - 25px); // dx-fixed-size: room the colour preview and its gap take from the placeholder", + "category": "calc" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 11, + "widget": "colorView", + "literals": [ + "28px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$colorview-palette-handle-size: 28px; // dx-fixed-size: diameter of the round palette handle, drawn as rings at 6/7/12/13px", + "category": "local-var" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 14, + "widget": "colorView", + "literals": [ + "36px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$colorview-handle-first-side-size: 36px; // dx-fixed-size: long side of the scale handles, drawn by the inset shadows", + "category": "local-var" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 15, + "widget": "colorView", + "literals": [ + "17px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$colorview-handle-second-side-size: 17px; // dx-fixed-size: short side of the scale handles, drawn by the inset shadows", + "category": "local-var" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 78, + "widget": "colorView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "padding: 1px 0; // dx-line-width: room for the 1px hairline ring the cells inside carry, which overflow: hidden would clip", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 114, + "widget": "colorView", + "literals": [ + "-7px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "left: -7px; // dx-px-nudge: centres the handle across the hue scale, counting its own border", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 120, + "widget": "colorView", + "literals": [ + "-6px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "top: -6px; // dx-px-nudge: centres the handle across the alpha scale, counting its own border", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 138, + "widget": "colorView", + "literals": [ + "16px" + ], + "occurrences": 2, + "marker": "dx-fixed-size", + "text": "background-size: 16px 16px; // dx-fixed-size: tile of the transparency checkerboard, drawn by two offset gradients", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 139, + "widget": "colorView", + "literals": [ + "8px" + ], + "occurrences": 2, + "marker": "dx-fixed-size", + "text": "background-position: 0 0, 8px 8px; // dx-fixed-size: half the tile, which is what makes the two gradients read as a checkerboard", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 143, + "widget": "colorView", + "literals": [ + "6px", + "8px", + "14px" + ], + "occurrences": 3, + "marker": "dx-fixed-size", + "text": "background-position: 0 6px, 8px 14px; // dx-fixed-size: the same checkerboard, shifted to sit inside the alpha scale", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 3, + "widget": "colorView", + "literals": [ + "5px", + "6px", + "7px", + "12px", + "13px" + ], + "occurrences": 5, + "marker": "dx-fixed-size", + "text": "background: radial-gradient(transparent 5px, $handle-border-color 6px, $handle-color 7px, $handle-color 12px, $handle-border-color 13px); // dx-fixed-size: the handle is drawn, not laid out — a transparent core to 5px, a 1px ring at 6px, fill to 12px and a 1px ring at 13px, inside the 28px diameter", + "category": "inline" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 4, + "widget": "colorView", + "literals": [ + "1px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "box-shadow: 0 1px 1px 0 $handle-border-color; // dx-shadow-geometry: lifts the round handle off the palette", + "category": "geometry" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 8, + "widget": "colorView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px solid; // dx-line-width: hairline outline of the handle", + "category": "geometry" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 10, + "widget": "colorView", + "literals": [ + "-5px", + "3px", + "5px", + "-6px", + "1px", + "4px", + "6px" + ], + "occurrences": 10, + "marker": "dx-shadow-geometry", + "text": "box-shadow: inset -5px 0 0 3px $handle-color, inset 5px 0 0 3px $handle-color, inset -6px 0 1px 4px $handle-border-color, inset 6px 0 1px 4px $handle-border-color; // dx-shadow-geometry: the grip is drawn entirely with inset shadows — 5px bars inset from both sides, each edged by a 1px ring at 6px", + "category": "geometry" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 14, + "widget": "colorView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 1px solid; // dx-line-width: hairline outline of the handle", + "category": "geometry" + }, + { + "file": "scss/widgets/base/colorView/_mixins.scss", + "line": 16, + "widget": "colorView", + "literals": [ + "-5px", + "3px", + "5px", + "-6px", + "1px", + "4px", + "6px" + ], + "occurrences": 10, + "marker": "dx-shadow-geometry", + "text": "box-shadow: inset 0 -5px 0 3px $handle-color, inset 0 5px 0 3px $handle-color, inset 0 -6px 1px 4px $handle-border-color, inset 0 6px 1px 4px $handle-border-color; // dx-shadow-geometry: the same grip turned 90deg for the horizontal scale", + "category": "geometry" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 148, + "widget": "dataGrid", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "geometry" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 184, + "widget": "dataGrid", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-icon-sizing(14px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 310, + "widget": "dataGrid", + "literals": [ + "21px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-icon-sizing(21px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 374, + "widget": "dataGrid", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "outline-offset: -1px; // dx-px-nudge: a one-pixel inset for the sticky-column overlay", + "category": "geometry" + }, + { + "file": "scss/widgets/base/dataGrid/layout/cell.scss", + "line": 283, + "widget": "dataGrid", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "geometry" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 176, + "widget": "diagram", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "width: calc(100% - 2px) !important; // stylelint-disable-line declaration-no-important -- dx-px-nudge: 2px shaved off a full-width popup", + "category": "calc" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 85, + "widget": "fileManager", + "literals": [ + "431px" + ], + "occurrences": 1, + "marker": "dx-literal-required", + "text": "@media (min-width: 431px) { // dx-literal-required: a media condition, var() is invalid here", + "category": "media" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 299, + "widget": "fileManager", + "literals": [ + "-5000px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "top: -5000px; // dx-structural: parks the container off-screen until it is positioned", + "category": "structural" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 300, + "widget": "fileManager", + "literals": [ + "-5000px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "left: -5000px; // dx-structural: parks the container off-screen until it is positioned", + "category": "structural" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 305, + "widget": "fileManager", + "literals": [ + "-5000px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "top: -5000px; // dx-structural: parks the container off-screen until it is positioned", + "category": "structural" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 306, + "widget": "fileManager", + "literals": [ + "-5000px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "left: -5000px; // dx-structural: parks the container off-screen until it is positioned", + "category": "structural" + }, + { + "file": "scss/widgets/base/filterBuilder/_common.scss", + "line": 79, + "widget": "filterBuilder", + "literals": [ + "-7px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -7px; // dx-fixed-size: pulls the row onto the group line", + "category": "inline" + }, + { + "file": "scss/widgets/base/filterBuilder/_common.scss", + "line": 80, + "widget": "filterBuilder", + "literals": [ + "-4px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-bottom: -4px; // dx-fixed-size: pulls the row onto the group line", + "category": "inline" + }, + { + "file": "scss/widgets/base/gantt/_index.scss", + "line": 59, + "widget": "gantt", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-top: -1px; // dx-px-nudge: a one-pixel correction on top of the row height", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 28, + "widget": "gridBase", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-right: 5px !important; // stylelint-disable-line declaration-no-important -- dx-fixed-size: legacy compat helper class, kept for the Foundation layout below", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 46, + "widget": "gridBase", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-top: -1px; // dx-px-nudge: pulls the pager up by one border so its top edge overlaps the grid bottom edge", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 77, + "widget": "gridBase", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "padding-top: 1px; // dx-px-nudge: lifts the first submenu row off the menu border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 305, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "max-width: 10px; // dx-structural: deliberately tiny so the table sizes to its columns rather than the container — the fixed variant below resets it to none", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 422, + "widget": "gridBase", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border: 2px solid transparent; // dx-line-width: thickness of the invalid-cell ring, drawn on a pseudo-element", + "category": "geometry" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 424, + "widget": "gridBase", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "left: 1px; // dx-px-nudge: insets that ring by the cell border on the left", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 472, + "widget": "gridBase", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "min-height: 1px; // dx-structural: one-pixel floor so the headers block keeps layout presence when it has no rows; not a designed height", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 548, + "widget": "gridBase", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "top: -1px; // dx-px-nudge: pulls the focus ring out over the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 549, + "widget": "gridBase", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "bottom: -1px; // dx-px-nudge: pulls the focus ring out over the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 550, + "widget": "gridBase", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "left: -1px; // dx-px-nudge: pulls the focus ring out over the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 551, + "widget": "gridBase", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "right: -1px; // dx-px-nudge: pulls the focus ring out over the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 558, + "widget": "gridBase", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border-top: 1px solid transparent; // dx-line-width: hairline placeholder keeping the range-end input aligned with the range-start one", + "category": "geometry" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 652, + "widget": "gridBase", + "literals": [ + "9px", + "6px", + "8px" + ], + "occurrences": 4, + "marker": "dx-px-nudge", + "text": "padding: 9px 6px 8px 6px; // dx-px-nudge: +1px on each side of the resting padding above, compensating the border the disabled item loses on hover", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/_index.scss", + "line": 943, + "widget": "gridBase", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-right: -2px; // dx-px-nudge: RTL mirror — pulls the menu out by its own border", + "category": "inline" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_mixins.scss", + "line": 47, + "widget": "gridBase", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border-width: 1px; // dx-line-width: hairline border of the incoming message bubble", + "category": "geometry" + }, + { + "file": "scss/widgets/base/lookup/_index.scss", + "line": 9, + "widget": "lookup", + "literals": [ + "45px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "height: calc(100% - 45px); // dx-fixed-size: the height the popup toolbar takes from the list", + "category": "calc" + }, + { + "file": "scss/widgets/base/pivotGrid/_common.scss", + "line": 238, + "widget": "pivotGrid", + "literals": [ + "-9999px" + ], + "occurrences": 1, + "marker": "dx-structural", + "text": "top: -9999px; // dx-structural: parks the scrollbar probe off-screen", + "category": "structural" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 62, + "widget": "pivotGrid", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$pivotgrid-drag-header-first-shadow: 0 0 1px $pivotgrid-drag-header-first-shadow-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 63, + "widget": "pivotGrid", + "literals": [ + "1px", + "3px" + ], + "occurrences": 2, + "marker": "dx-shadow-geometry", + "text": "$pivotgrid-drag-header-second-shadow: 0 1px 3px $pivotgrid-drag-header-second-shadow-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 68, + "widget": "pivotGrid", + "literals": [ + "-5px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$pivotgrid-expand-icon-offset: -5px; // dx-fixed-size: negated at its use site", + "category": "local-var" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 74, + "widget": "pivotGrid", + "literals": [ + "-4px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -4px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 75, + "widget": "pivotGrid", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-left: -1px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 79, + "widget": "pivotGrid", + "literals": [ + "-3px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -3px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 84, + "widget": "pivotGrid", + "literals": [ + "-3px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-left: -3px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 337, + "widget": "pivotGrid", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: -1px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 608, + "widget": "pivotGrid", + "literals": [ + "-3px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-left: -3px; // dx-fixed-size: pulls the element onto the grid line", + "category": "inline" + }, + { + "file": "scss/widgets/base/popover/_index.scss", + "line": 2, + "widget": "popover", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-popover-arrow-size(20px); // dx-fixed-size: the arrow width; the mixin divides it by sqrt(2), so a var() cannot pass", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/scheduler/_common.scss", + "line": 4, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-appointment-collector-margin: 3px; // dx-fixed-size: the collector margin, multiplied elsewhere so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_common.scss", + "line": 68, + "widget": "scheduler", + "literals": [ + "450px" + ], + "occurrences": 1, + "marker": "dx-literal-required", + "text": "@media (max-width: 450px) { // dx-literal-required: a media condition, var() is invalid here", + "category": "media" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 82, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-hovered-appointment-top-shadow-size: 5px; // dx-fixed-size: negated and composed into shadows, so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 83, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-focused-cell-shadow: inset 0 0 0 1px $scheduler-appointment-base-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 85, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-vertical-appointment-resizable-hovering-shadow: inset 0 $scheduler-hovered-appointment-top-shadow-size 0 0 $scheduler-appointment-start-color, inset 0 -2px 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 87, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-vertical-appointment-shadow: inset 0 2px 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 88, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-vertical-appointment-resizing-shadow: inset 0 -2px 0 0 $scheduler-appointment-start-color, $scheduler-vertical-appointment-shadow; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 92, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-horizontal-appointment-resizable-hovering-shadow: inset $scheduler-hovered-appointment-top-shadow-size 0 0 0 $scheduler-appointment-start-color, inset -2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 93, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-horizontal-appointment-resizable-hovering-shadow-rtl: inset (-$scheduler-hovered-appointment-top-shadow-size) 0 0 0 $scheduler-appointment-start-color, inset 2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 96, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-horizontal-appointment-shadow: inset 2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 97, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-horizontal-appointment-shadow-rtl: inset -2px 0 0 0 $scheduler-appointment-start-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 98, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-horizontal-appointment-resizing-shadow: inset -2px 0 0 0 $scheduler-appointment-start-color, $scheduler-horizontal-appointment-shadow; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 124, + "widget": "scheduler", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-time-indicator-top: 14px; // dx-fixed-size: negated at its use site", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 125, + "widget": "scheduler", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-time-indicator-left: 12px; // dx-fixed-size: negated at its use site", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 128, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-time-indicator-shadow: 0 1px 0 0 $scheduler-time-indicator-shadow-color; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 129, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-shadow-geometry", + "text": "$scheduler-time-indicator-text-shadow: $scheduler-time-indicator-shadow-color 1px 0 0; // dx-shadow-geometry", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 454, + "widget": "scheduler", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "bottom: -1px; // dx-px-nudge: sits on the 1px border, see the note above", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/appointment/regular/_index.scss", + "line": 150, + "widget": "scheduler", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "left: -1px; // dx-px-nudge: pulls the resize handle onto the appointment's 1px border", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/layout/_header.scss", + "line": 9, + "widget": "scheduler", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-bottom: -1px; // dx-px-nudge: collapses the header border with the row below", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 42, + "widget": "scheduler", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-timepanel-cell-offset: 20px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 46, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-current-time-cell-border-size: 2px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 48, + "widget": "scheduler", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-workspace-date-table-cell-height: 50px; // dx-fixed-size: derived heights multiply it, so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 50, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 2, + "marker": "dx-px-nudge", + "text": "$scheduler-header-panel-table-cell-height: if(meta.type-of($scheduler-workspace-date-table-cell-height) == number, $scheduler-workspace-date-table-cell-height - 10px, calc(#{$scheduler-workspace-date-table-cell-height} - 10px)); // dx-px-nudge: -10px under the workspace cell height", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 53, + "widget": "scheduler", + "literals": [ + "80px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "$scheduler-group-header-table-cell-width: 80px; // dx-fixed-size: multiplied elsewhere, so a var() cannot pass", + "category": "local-var" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 114, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "top: if(meta.type-of($scheduler-header-panel-table-cell-height) == number and meta.type-of($scheduler-current-time-cell-border-size) == number, $scheduler-header-panel-table-cell-height - $scheduler-current-time-cell-border-size - 1, calc(#{$scheduler-header-panel-table-cell-height} - #{$scheduler-current-time-cell-border-size} - 1px)); // dx-px-nudge: -1px under the derived top offset, so the indicator overlaps the border", + "category": "calc" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 392, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "padding: 0 5px; // dx-fixed-size: horizontal padding of the time panel cell", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 667, + "widget": "scheduler", + "literals": [ + "-13px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-top: -13px; // dx-px-nudge: lifts the hour label to straddle the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 677, + "widget": "scheduler", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "bottom: -1px; // dx-px-nudge: sits the time indicator on the cell border", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 830, + "widget": "scheduler", + "literals": [ + "-1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "box-shadow: inset 0 -1px 0 $scheduler-base-border-color; // dx-line-width: hairline standing in for the removed border-bottom", + "category": "geometry" + }, + { + "file": "scss/widgets/base/scheduler/views/day/_index.scss", + "line": 45, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-px-nudge", + "text": "margin-top: 1px; // dx-px-nudge: keeps the ungrouped header panel off the border above", + "category": "inline" + }, + { + "file": "scss/widgets/base/scheduler/views/month/_index.scss", + "line": 68, + "widget": "scheduler", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "box-shadow: 0 -2px 0 $scheduler-base-border-color; // dx-line-width: 2px line standing in for the removed border-bottom", + "category": "geometry" + }, + { + "file": "scss/widgets/base/scheduler/views/timelines/_index.scss", + "line": 188, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border-bottom: 1px solid; // dx-line-width: hairline under the empty header cell", + "category": "geometry" + }, + { + "file": "scss/widgets/base/stepper/layout/step/_index.scss", + "line": 20, + "widget": "stepper", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-line-width", + "text": "border-width: 1px; // dx-line-width: hairline, the same in every theme", + "category": "geometry" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 53, + "widget": "textEditor", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "padding: 0 2px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes", + "category": "inline" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 199, + "widget": "textEditor", + "literals": [ + "1px", + "-1px" + ], + "occurrences": 3, + "marker": "dx-line-width", + "text": ")} 1px -1px 1px);", + "category": "inline" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 223, + "widget": "textEditor", + "literals": [ + "-1px", + "1px" + ], + "occurrences": 4, + "marker": "dx-line-width", + "text": "clip-path: inset(-1px 1px -1px -1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale", + "category": "geometry" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 238, + "widget": "textEditor", + "literals": [ + "-1px", + "1px" + ], + "occurrences": 4, + "marker": "dx-line-width", + "text": "clip-path: inset(-1px -1px -1px 1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale", + "category": "geometry" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 243, + "widget": "textEditor", + "literals": [ + "-1px", + "1px" + ], + "occurrences": 4, + "marker": "dx-line-width", + "text": "clip-path: inset(-1px -1px -1px 1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale", + "category": "geometry" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 247, + "widget": "textEditor", + "literals": [ + "-1px", + "1px" + ], + "occurrences": 4, + "marker": "dx-line-width", + "text": "clip-path: inset(-1px 1px -1px -1px); // dx-line-width: the notch is carved at the label border, a hairline that must not thicken with the scale", + "category": "geometry" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 651, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-top: 1px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes", + "category": "inline" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 652, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-bottom: 1px; // dx-fixed-size: fluent-next does not call this mixin, so the value only reaches the legacy themes", + "category": "inline" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 784, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 2, + "marker": "dx-px-nudge", + "text": "padding-top: if(meta.type-of($material-button-vertical-padding) == number, $material-button-vertical-padding - 1px, calc(#{$material-button-vertical-padding} - 1px)); // dx-px-nudge: -1px under the button's own padding", + "category": "calc" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 838, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 2, + "marker": "dx-px-nudge", + "text": "padding-top: if(meta.type-of($material-button-vertical-padding) == number, $material-button-vertical-padding - 1px, calc(#{$material-button-vertical-padding} - 1px)); // dx-px-nudge: -1px under the button's own padding", + "category": "calc" + }, + { + "file": "scss/widgets/base/toolbar/_index.scss", + "line": 100, + "widget": "toolbar", + "literals": [ + "-5px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin: 0 -5px; // dx-fixed-size: pulls the items flush with the toolbar edge", + "category": "inline" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 175, + "widget": "treeList", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-icon-sizing(14px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 270, + "widget": "treeList", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-icon-sizing(16px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 278, + "widget": "treeList", + "literals": [ + "21px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "@include dx-icon-sizing(21px); // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "mixin-arg" + }, + { + "file": "scss/widgets/base/treeList/layout/cell.scss", + "line": 229, + "widget": "treeList", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "outline-offset: -2px; // dx-fixed-size: the gridBase tier already paints this across the family; a widget-scoped name would collide under the other grid roots", + "category": "geometry" + }, + { + "file": "scss/widgets/base/treeView/_common.scss", + "line": 79, + "widget": "treeView", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": "dx-fixed-size", + "text": "margin-inline-end: 8px; // dx-fixed-size: demos hand-write this class outside the widget, where a tier var would not reach", + "category": "inline" + } + ] +} diff --git a/packages/devextreme-scss/tools/sizes/lists/theme-settable.json b/packages/devextreme-scss/tools/sizes/lists/theme-settable.json new file mode 100644 index 000000000000..934baf77138f --- /dev/null +++ b/packages/devextreme-scss/tools/sizes/lists/theme-settable.json @@ -0,0 +1,7253 @@ +{ + "$comment": [ + "GENERATED by tools/sizes/inventory.mjs — do not edit by hand. Judgment calls belong in that script, not in this file.", + "Sizes the theme can set from outside without touching the shared layer: the literal is the default of a `$x: … !default` declaration, so `@use \"…/base/x\" with ($x: …)` replaces it for one theme and leaves the default — and every other theme — untouched.", + "kind \"module-variable\" — a `$x: … !default` declaration; \"mixin-parameter\" — a default in a `@mixin name(…)` signature, which a theme replaces by passing an argument.", + "status \"injected\" — fluent-next already passes a value; \"open\" — the knob exists and nobody turns it; \"parameter\" — a mixin parameter, where the signature itself is the channel and there is nothing to cross-check by name. An \"open\" row is theme-side work only.", + "The match is by variable name. A name declared in a nested module is only reachable once the parent forwards it (see base/chat/_index.scss), which is why an \"open\" row can sit next to injected ones from the same widget." + ], + "summary": { + "occurrences": 488, + "variables": 426, + "injected": 462, + "open": 0, + "parameters": 26 + }, + "places": [ + { + "file": "scss/widgets/base/_contextMenu.scss", + "line": 1, + "widget": "contextMenu", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$contextmenu-menu-items-container-padding: 1px !default;", + "variable": "contextmenu-menu-items-container-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/contextMenu/_index.scss", + "setTo": "false" + }, + { + "file": "scss/widgets/base/_contextMenu.scss", + "line": 2, + "widget": "contextMenu", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$contextmenu-menu-separator-height: 1px !default;", + "variable": "contextmenu-menu-separator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/contextMenu/_index.scss", + "setTo": "var(--dx-context-menu-separator-height)" + }, + { + "file": "scss/widgets/base/_contextMenu.scss", + "line": 3, + "widget": "contextMenu", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$contextmenu-menu-separator-margin: 5px 0 !default;", + "variable": "contextmenu-menu-separator-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/contextMenu/_index.scss", + "setTo": "var(--dx-context-menu-separator-margin)" + }, + { + "file": "scss/widgets/base/_dateBox.scss", + "line": 3, + "widget": "dateBox", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$datebox-texteditor-height: 20px !default;", + "variable": "datebox-texteditor-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dateBox/_index.scss", + "setTo": "var(--dx-date-box-input-height)" + }, + { + "file": "scss/widgets/base/_dateBox.scss", + "line": 4, + "widget": "dateBox", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$datebox-popup-content-padding-top: 20px !default;", + "variable": "datebox-popup-content-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dateBox/_index.scss", + "setTo": "var(--dx-date-box-popup-content-padding-block-start)" + }, + { + "file": "scss/widgets/base/_dateBox.scss", + "line": 5, + "widget": "dateBox", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$datebox-popup-content-padding-bottom: 20px !default;", + "variable": "datebox-popup-content-padding-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dateBox/_index.scss", + "setTo": "var(--dx-date-box-popup-content-padding-block-end)" + }, + { + "file": "scss/widgets/base/_dateBox.scss", + "line": 6, + "widget": "dateBox", + "literals": [ + "90px" + ], + "occurrences": 1, + "marker": null, + "text": "$datebox-button-min-width: 90px !default;", + "variable": "datebox-button-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dateBox/_index.scss", + "setTo": "var(--dx-date-box-button-min-width)" + }, + { + "file": "scss/widgets/base/_dateBox.scss", + "line": 7, + "widget": "dateBox", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$datebox-apply-button-margin-right: 10px !default;", + "variable": "datebox-apply-button-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dateBox/_index.scss", + "setTo": "var(--dx-date-box-apply-button-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_fieldset.scss", + "line": 3, + "widget": "fieldset", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$fieldset-root-margin-bottom: 20px !default;", + "variable": "fieldset-root-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fieldset/_index.scss", + "setTo": "var(--dx-fieldset-margin-block-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 3, + "widget": "fileUploader", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-button-margin-left: 12px !default;", + "variable": "fileuploader-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-button-margin-inline-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 4, + "widget": "fileUploader", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-upload-button-margin-top: 10px !default;", + "variable": "fileuploader-upload-button-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-upload-button-margin-block-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 5, + "widget": "fileUploader", + "literals": [ + "22px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-show-file-list-padding-top: 22px !default;", + "variable": "fileuploader-show-file-list-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-show-file-list-padding-block-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 6, + "widget": "fileUploader", + "literals": [ + "4px" + ], + "occurrences": 2, + "marker": null, + "text": "$fileuploader-file-container-padding: 4px 0 4px !default;", + "variable": "fileuploader-file-container-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "false" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 7, + "widget": "fileUploader", + "literals": [ + "28px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-button-width: 28px !default;", + "variable": "fileuploader-button-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-button-width)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 8, + "widget": "fileUploader", + "literals": [ + "28px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-button-height: 28px !default;", + "variable": "fileuploader-button-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-button-height)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 9, + "widget": "fileUploader", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-button-margin-right: 10px !default;", + "variable": "fileuploader-button-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-button-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 10, + "widget": "fileUploader", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-cancel-button-position-end-margin-left: 4px !default;", + "variable": "fileuploader-cancel-button-position-end-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-cancel-button-position-end-margin-inline-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 11, + "widget": "fileUploader", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-status-message-height: 16px !default;", + "variable": "fileuploader-file-status-message-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-status-message-height)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 12, + "widget": "fileUploader", + "literals": [ + "22px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-progressbar-height: 22px !default;", + "variable": "fileuploader-progressbar-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-progress-bar-height)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 13, + "widget": "fileUploader", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-size-padding-left: 4px !default;", + "variable": "fileuploader-file-size-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-size-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 14, + "widget": "fileUploader", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-icon-padding-right: 6px !default;", + "variable": "fileuploader-file-icon-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-icon-padding-inline-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 15, + "widget": "fileUploader", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-container-button-margin-left: 10px !default;", + "variable": "fileuploader-file-container-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-container-button-rtl-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 16, + "widget": "fileUploader", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-cancel-button-position-end-margin-right: 4px !default;", + "variable": "fileuploader-cancel-button-position-end-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-cancel-button-position-end-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 17, + "widget": "fileUploader", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-size-padding-right: 4px !default;", + "variable": "fileuploader-file-size-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-size-padding-inline-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 18, + "widget": "fileUploader", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-status-message-line-margin-bottom: 2px !default;", + "variable": "fileuploader-file-status-message-line-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-status-message-line-margin-block-end)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 19, + "widget": "fileUploader", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-cancel-button-margin-top: 5px !default;", + "variable": "fileuploader-cancel-button-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-cancel-button-margin-block-start)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 21, + "widget": "fileUploader", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-status-message-font-size: 12px !default;", + "variable": "fileuploader-status-message-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-status-message-font-size)" + }, + { + "file": "scss/widgets/base/_fileUploader.scss", + "line": 22, + "widget": "fileUploader", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$fileuploader-file-size-font-size: 10px !default;", + "variable": "fileuploader-file-size-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileUploader/_index.scss", + "setTo": "var(--dx-file-uploader-file-size-font-size)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 1, + "widget": "form", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-first-row-padding-top: 10px !default;", + "variable": "form-first-row-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-first-row-padding-block-start)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 2, + "widget": "form", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-switch-margin-top: 7px !default;", + "variable": "form-switch-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-switch-margin-block-start)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 3, + "widget": "form", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-switch-margin-bottom: 4px !default;", + "variable": "form-switch-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-switch-margin-block-end)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 4, + "widget": "form", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-multiview-item-content-padding: 20px !default;", + "variable": "form-multiview-item-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-multiview-item-content-padding)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 5, + "widget": "form", + "literals": [ + "19px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-group-content-padding-top: 19px !default;", + "variable": "form-group-content-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-group-content-padding-block-start)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 6, + "widget": "form", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-group-content-margin-top: 6px !default;", + "variable": "form-group-content-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-group-content-margin-block-start)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 7, + "widget": "form", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-field-item-label-location-left-padding-inline-end: 10px !default;", + "variable": "form-field-item-label-location-left-padding-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-field-item-label-location-left-padding-inline-end)" + }, + { + "file": "scss/widgets/base/_form.scss", + "line": 8, + "widget": "form", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$form-field-item-label-location-right-padding-inline-start: 10px !default;", + "variable": "form-field-item-label-location-right-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/form/_index.scss", + "setTo": "var(--dx-form-field-item-label-location-right-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_gallery.scss", + "line": 3, + "widget": "gallery", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$gallery-root-border-width: 1px !default;", + "variable": "gallery-root-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gallery/_index.scss", + "setTo": "var(--dx-gallery-border-width)" + }, + { + "file": "scss/widgets/base/_gallery.scss", + "line": 4, + "widget": "gallery", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$gallery-indicator-bottom: 10px !default;", + "variable": "gallery-indicator-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gallery/_index.scss", + "setTo": "var(--dx-gallery-indicator-inset-block-end)" + }, + { + "file": "scss/widgets/base/_gallery.scss", + "line": 5, + "widget": "gallery", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$gallery-indicator-height: 10px !default;", + "variable": "gallery-indicator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gallery/_index.scss", + "setTo": "var(--dx-gallery-indicator-height)" + }, + { + "file": "scss/widgets/base/_gallery.scss", + "line": 6, + "widget": "gallery", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$gallery-indicator-item-margin: 0 2px !default;", + "variable": "gallery-indicator-item-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gallery/_index.scss", + "setTo": "var(--dx-gallery-indicator-item-margin)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 24, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$htmleditor-border-width: 1px !default;", + "variable": "htmleditor-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-border-width)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 27, + "widget": "htmlEditor", + "literals": [ + "3px", + "6px" + ], + "occurrences": 2, + "marker": null, + "text": "$variable-padding: 3px 6px !default;", + "variable": "variable-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-variable-padding)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 28, + "widget": "htmlEditor", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$variable-border-radius: 8px !default;", + "variable": "variable-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-variable-border-radius)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 29, + "widget": "htmlEditor", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$blockquote-padding-inline-start: 12px !default;", + "variable": "blockquote-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-blockquote-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 30, + "widget": "htmlEditor", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$blockquote-border-inline-start-width: 4px !default;", + "variable": "blockquote-border-inline-start-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-blockquote-border-inline-start-width)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 31, + "widget": "htmlEditor", + "literals": [ + "2px", + "5px" + ], + "occurrences": 2, + "marker": null, + "text": "$table-cell-padding: 2px 5px !default;", + "variable": "table-cell-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-table-cell-padding)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 32, + "widget": "htmlEditor", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$placeholder-inset-inline: 15px !default;", + "variable": "placeholder-inset-inline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-placeholder-inset-inline)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 33, + "widget": "htmlEditor", + "literals": [ + "12px", + "15px" + ], + "occurrences": 2, + "marker": null, + "text": "$htmleditor-content-padding: 12px 15px !default;", + "variable": "htmleditor-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-padding-block) var(--dx-html-editor-padding-inline)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 34, + "widget": "htmlEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$mention-padding-block: 1px !default;", + "variable": "mention-padding-block", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-mention-padding-block)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 35, + "widget": "htmlEditor", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$mention-border-radius: 2px !default;", + "variable": "mention-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-mention-border-radius)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 36, + "widget": "htmlEditor", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$mention-margin-inline: 2px !default;", + "variable": "mention-margin-inline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-mention-margin-inline)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 37, + "widget": "htmlEditor", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$table-resizer-thickness: 5px !default;", + "variable": "table-resizer-thickness", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-table-resizer-thickness)" + }, + { + "file": "scss/widgets/base/_htmlEditor.scss", + "line": 38, + "widget": "htmlEditor", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$table-resizer-highlight-thickness: 3px !default;", + "variable": "table-resizer-highlight-thickness", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/htmlEditor/_index.scss", + "setTo": "var(--dx-html-editor-table-resizer-highlight-thickness)" + }, + { + "file": "scss/widgets/base/_loadIndicator.scss", + "line": 4, + "widget": "loadIndicator", + "literals": [ + "32px" + ], + "occurrences": 1, + "marker": null, + "text": "$loadindicator-width: 32px !default;", + "variable": "loadindicator-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/loadIndicator/_index.scss", + "setTo": "var(--dx-load-indicator-size)" + }, + { + "file": "scss/widgets/base/_loadIndicator.scss", + "line": 5, + "widget": "loadIndicator", + "literals": [ + "32px" + ], + "occurrences": 1, + "marker": null, + "text": "$loadindicator-height: 32px !default;", + "variable": "loadindicator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/loadIndicator/_index.scss", + "setTo": "var(--dx-load-indicator-size)" + }, + { + "file": "scss/widgets/base/_loadPanel.scss", + "line": 3, + "widget": "loadPanel", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$loadpanel-content-padding: 10px !default;", + "variable": "loadpanel-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/loadPanel/_index.scss", + "setTo": "var(--dx-load-panel-content-padding)" + }, + { + "file": "scss/widgets/base/_map.scss", + "line": 1, + "widget": "map", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$map-marker-tooltip-margin: 10px !default;", + "variable": "map-marker-tooltip-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/map/_index.scss", + "setTo": "mapSizes.$map-marker-tooltip-margin" + }, + { + "file": "scss/widgets/base/_menu.scss", + "line": 3, + "widget": "menu", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$menu-separator-margin-inline-end: 15px !default;", + "variable": "menu-separator-margin-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/menu/_index.scss", + "setTo": "var(--dx-menu-separator-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_menu.scss", + "line": 4, + "widget": "menu", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$menu-separator-margin-bottom: 15px !default;", + "variable": "menu-separator-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/menu/_index.scss", + "setTo": "var(--dx-menu-separator-margin-block-end)" + }, + { + "file": "scss/widgets/base/_menu.scss", + "line": 5, + "widget": "menu", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$menu-treeview-node-padding: 1px !default;", + "variable": "menu-treeview-node-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/menu/_index.scss", + "setTo": "var(--dx-menu-tree-view-node-padding)" + }, + { + "file": "scss/widgets/base/_menu.scss", + "line": 6, + "widget": "menu", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$menu-item-content-padding-inline-start: 15px !default;", + "variable": "menu-item-content-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/menu/_index.scss", + "setTo": "var(--dx-menu-item-content-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 3, + "widget": "pagination", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-page-margin-left: 5px !default;", + "variable": "pagination-page-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-page-margin-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 4, + "widget": "pagination", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-page-margin-right: 1px !default;", + "variable": "pagination-page-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-page-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 5, + "widget": "pagination", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-first-child-margin-left: 1px !default;", + "variable": "pagination-first-child-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-first-child-margin-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 6, + "widget": "pagination", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-first-child-padding-left: 10px !default;", + "variable": "pagination-first-child-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-first-child-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 7, + "widget": "pagination", + "literals": [ + "9px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-first-child-padding-right: 9px !default;", + "variable": "pagination-first-child-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-first-child-padding-inline-end)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 8, + "widget": "pagination", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-first-child-padding-top: 7px !default;", + "variable": "pagination-first-child-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-first-child-padding-block-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 9, + "widget": "pagination", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-first-child-padding-bottom: 8px !default;", + "variable": "pagination-first-child-padding-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-first-child-padding-block-end)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 10, + "widget": "pagination", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-page-size-margin-left: 4px !default;", + "variable": "pagination-page-size-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-page-size-margin-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 11, + "widget": "pagination", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-page-index-width: 40px !default;", + "variable": "pagination-page-index-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-page-index-width)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 12, + "widget": "pagination", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-pages-count-padding-left: 6px !default;", + "variable": "pagination-pages-count-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-pages-count-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_pagination.scss", + "line": 18, + "widget": "pagination", + "literals": [ + "9px" + ], + "occurrences": 1, + "marker": null, + "text": "$pagination-info-paddings: 9px !default;", + "variable": "pagination-info-paddings", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pagination/_index.scss", + "setTo": "var(--dx-pagination-info-margin-inline)" + }, + { + "file": "scss/widgets/base/_popup.scss", + "line": 6, + "widget": "popup", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$popup-title-padding: 10px !default;", + "variable": "popup-title-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/popup/_index.scss", + "setTo": "var(--dx-popup-title-padding)" + }, + { + "file": "scss/widgets/base/_progressBar.scss", + "line": 3, + "widget": "progressBar", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$progressbar-status-font-size: 12px !default;", + "variable": "progressbar-status-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/progressBar/_index.scss", + "setTo": "var(--dx-progress-bar-status-font-size)" + }, + { + "file": "scss/widgets/base/_progressBar.scss", + "line": 5, + "widget": "progressBar", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$progressbar-status-padding-right: 8px !default;", + "variable": "progressbar-status-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/progressBar/_index.scss", + "setTo": "var(--dx-progress-bar-status-padding-inline-end)" + }, + { + "file": "scss/widgets/base/_progressBar.scss", + "line": 6, + "widget": "progressBar", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$progressbar-status-padding-left: 8px !default;", + "variable": "progressbar-status-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/progressBar/_index.scss", + "setTo": "var(--dx-progress-bar-status-padding-inline-start)" + }, + { + "file": "scss/widgets/base/_recurrenceEditor.scss", + "line": 1, + "widget": "recurrenceEditor", + "literals": [ + "25px" + ], + "occurrences": 1, + "marker": null, + "text": "$recurrence-interval-number-box-margin-top: 25px !default;", + "variable": "recurrence-interval-number-box-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/recurrenceEditor/_index.scss", + "setTo": "var(--dx-recurrence-editor-interval-number-box-margin-block-start)" + }, + { + "file": "scss/widgets/base/_recurrenceEditor.scss", + "line": 2, + "widget": "recurrenceEditor", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$recurrence-radio-group-item-padding: 10px !default;", + "variable": "recurrence-radio-group-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/recurrenceEditor/_index.scss", + "setTo": "var(--dx-recurrence-editor-radio-group-item-padding-block-end)" + }, + { + "file": "scss/widgets/base/_recurrenceEditor.scss", + "line": 3, + "widget": "recurrenceEditor", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$recurrence-button-group-item-padding: 8px !default;", + "variable": "recurrence-button-group-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/recurrenceEditor/_index.scss", + "setTo": "var(--dx-recurrence-editor-button-group-padding)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 4, + "widget": "scrollView", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-top-pocket-width: 40px !default;", + "variable": "scrollview-top-pocket-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-top-pocket-width)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 5, + "widget": "scrollView", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-top-pocket-height: 40px !default;", + "variable": "scrollview-top-pocket-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-top-pocket-height)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 6, + "widget": "scrollView", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-pull-down-indicator-padding: 4px !default;", + "variable": "scrollview-pull-down-indicator-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-indicator-padding)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 7, + "widget": "scrollView", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-icon-pulldown-padding: 8px !default;", + "variable": "scrollview-icon-pulldown-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-icon-pull-down-padding)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 8, + "widget": "scrollView", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-pull-down-indicator-width: 20px !default;", + "variable": "scrollview-pull-down-indicator-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-indicator-width)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 9, + "widget": "scrollView", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-pull-down-image-margin: 0 20px !default;", + "variable": "scrollview-pull-down-image-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-image-margin)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 10, + "widget": "scrollView", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-pull-down-image-height: 50px !default;", + "variable": "scrollview-pull-down-image-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-image-height)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 11, + "widget": "scrollView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-scrollbottom-padding: 10px 0 !default;", + "variable": "scrollview-scrollbottom-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-scroll-bottom-padding)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 12, + "widget": "scrollView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-scrollbottom-indicator-margin: 0 10px 0 0 !default;", + "variable": "scrollview-scrollbottom-indicator-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-scroll-bottom-indicator-margin)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 13, + "widget": "scrollView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-scrollbottom-indicator-margin-rtl: 0 0 0 10px !default;", + "variable": "scrollview-scrollbottom-indicator-margin-rtl", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-scroll-bottom-indicator-rtl-margin)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 15, + "widget": "scrollView", + "literals": [ + "24px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollview-pulldown-icon-font-size: 24px !default;", + "variable": "scrollview-pulldown-icon-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-icon-font-size)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 16, + "widget": "scrollView", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$pulldown-height: 50px !default;", + "variable": "pulldown-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-height)" + }, + { + "file": "scss/widgets/base/_scrollView.scss", + "line": 17, + "widget": "scrollView", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$pulldown-padding: 15px !default;", + "variable": "pulldown-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollView/_index.scss", + "setTo": "var(--dx-scroll-view-pull-down-padding)" + }, + { + "file": "scss/widgets/base/_slider.scss", + "line": 4, + "widget": "slider", + "literals": [ + "28px" + ], + "occurrences": 1, + "marker": null, + "text": "$slider-tooltip-content-height: 28px !default;", + "variable": "slider-tooltip-content-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/slider/_index.scss", + "setTo": "var(--dx-slider-tooltip-height)" + }, + { + "file": "scss/widgets/base/_slider.scss", + "line": 7, + "widget": "slider", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$slider-label-position-bottom-padding-bottom: 14px !default;", + "variable": "slider-label-position-bottom-padding-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/slider/_index.scss", + "setTo": "var(--dx-slider-label-bottom-padding-block-end)" + }, + { + "file": "scss/widgets/base/_slider.scss", + "line": 8, + "widget": "slider", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$slider-label-position-top-padding-top: 14px !default;", + "variable": "slider-label-position-top-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/slider/_index.scss", + "setTo": "var(--dx-slider-label-top-padding-block-start)" + }, + { + "file": "scss/widgets/base/_sortable.scss", + "line": 22, + "widget": "sortable", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$sortable-placeholder-border: 1px solid !default;", + "variable": "sortable-placeholder-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/sortable/_index.scss", + "setTo": "var(--dx-sortable-placeholder-border-width) solid" + }, + { + "file": "scss/widgets/base/_sortable.scss", + "line": 23, + "widget": "sortable", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$sortable-placeholder-inside-border-width: 2px !default;", + "variable": "sortable-placeholder-inside-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/sortable/_index.scss", + "setTo": "var(--dx-sortable-placeholder-inside-border-width)" + }, + { + "file": "scss/widgets/base/_speedDialAction.scss", + "line": 5, + "widget": "speedDialAction", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$speeddialaction-fa-button-label-border-radius: 4px !default;", + "variable": "speeddialaction-fa-button-label-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/speedDialAction/_index.scss", + "setTo": "var(--dx-speed-dial-action-fa-button-label-border-radius)" + }, + { + "file": "scss/widgets/base/_splitterBar.scss", + "line": 3, + "widget": "splitterBar", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$splitterbar-splitter-border-width: 7px !default;", + "variable": "splitterbar-splitter-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/splitterBar/_index.scss", + "setTo": "var(--dx-splitter-bar-border-width)" + }, + { + "file": "scss/widgets/base/_splitterBar.scss", + "line": 4, + "widget": "splitterBar", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$splitterbar-splitter-bar-width: 1px !default;", + "variable": "splitterbar-splitter-bar-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/splitterBar/_index.scss", + "setTo": "var(--dx-splitter-bar-width)" + }, + { + "file": "scss/widgets/base/_tileView.scss", + "line": 1, + "widget": "tileView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$tileview-wrapper-height: 1px !default;", + "variable": "tileview-wrapper-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/tileView/_index.scss", + "setTo": "var(--dx-tile-view-wrapper-height)" + }, + { + "file": "scss/widgets/base/_toast.scss", + "line": 1, + "widget": "toast", + "literals": [ + "35px" + ], + "occurrences": 1, + "marker": null, + "text": "$toast-icon-width: 35px !default;", + "variable": "toast-icon-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toast/_index.scss", + "setTo": "var(--dx-toast-icon-width)" + }, + { + "file": "scss/widgets/base/_toast.scss", + "line": 2, + "widget": "toast", + "literals": [ + "35px" + ], + "occurrences": 1, + "marker": null, + "text": "$toast-icon-height: 35px !default;", + "variable": "toast-icon-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toast/_index.scss", + "setTo": "var(--dx-toast-icon-height)" + }, + { + "file": "scss/widgets/base/_toast.scss", + "line": 3, + "widget": "toast", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$toast-icon-margin-right: 10px !default;", + "variable": "toast-icon-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toast/_index.scss", + "setTo": "var(--dx-toast-icon-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_toast.scss", + "line": 4, + "widget": "toast", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$toast-icon-margin-left: 10px !default;", + "variable": "toast-icon-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toast/_index.scss", + "setTo": "var(--dx-toast-icon-rtl-margin-inline-end)" + }, + { + "file": "scss/widgets/base/_toast.scss", + "line": 5, + "widget": "toast", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$toast-stack-gap: 3px !default;", + "variable": "toast-stack-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toast/_index.scss", + "setTo": "var(--dx-toast-stack-gap)" + }, + { + "file": "scss/widgets/base/_tooltip.scss", + "line": 1, + "widget": "tooltip", + "literals": [ + "34px" + ], + "occurrences": 1, + "marker": null, + "text": "$tooltip-overlay-content-min-width: 34px !default;", + "variable": "tooltip-overlay-content-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/tooltip/_index.scss", + "setTo": "var(--dx-tooltip-overlay-content-min-width)" + }, + { + "file": "scss/widgets/base/_tooltip.scss", + "line": 2, + "widget": "tooltip", + "literals": [ + "26px" + ], + "occurrences": 1, + "marker": null, + "text": "$tooltip-overlay-content-min-height: 26px !default;", + "variable": "tooltip-overlay-content-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/tooltip/_index.scss", + "setTo": "var(--dx-tooltip-overlay-content-min-height)" + }, + { + "file": "scss/widgets/base/_tooltip.scss", + "line": 3, + "widget": "tooltip", + "literals": [ + "12px", + "17px" + ], + "occurrences": 2, + "marker": null, + "text": "$tooltip-popup-content-padding: 12px 17px !default;", + "variable": "tooltip-popup-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/tooltip/_index.scss", + "setTo": "var(--dx-tooltip-popup-content-padding)" + }, + { + "file": "scss/widgets/base/_validation.scss", + "line": 1, + "widget": "validation", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$validation-summary-margin-top: 20px !default;", + "variable": "validation-summary-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/common/_mixins.scss", + "setTo": "validationSizes.$validation-summary-margin-block-start" + }, + { + "file": "scss/widgets/base/_validation.scss", + "line": 2, + "widget": "validation", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$validation-message-content-padding: 10px !default;", + "variable": "validation-message-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/common/_mixins.scss", + "setTo": "validationSizes.$validation-message-content-padding" + }, + { + "file": "scss/widgets/base/_validation.scss", + "line": 5, + "widget": "validation", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$validation-summary-item-border-bottom-width: 1px !default;", + "variable": "validation-summary-item-border-bottom-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/common/_mixins.scss", + "setTo": "var(--dx-validation-summary-item-border-block-end-width)" + }, + { + "file": "scss/widgets/base/buttonGroup/_index.scss", + "line": 3, + "widget": "buttonGroup", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$buttongroup-mode-text-column-gap: 1px !default;", + "variable": "buttongroup-mode-text-column-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/buttonGroup/_index.scss", + "setTo": "var(--dx-button-group-text-column-gap)" + }, + { + "file": "scss/widgets/base/calendar/_calendar.scss", + "line": 3, + "widget": "calendar", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$calendar-border-width: 1px !default;", + "variable": "calendar-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/calendar/_index.scss", + "setTo": "var(--dx-calendar-border-width)" + }, + { + "file": "scss/widgets/base/calendar/_calendar.scss", + "line": 4, + "widget": "calendar", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$calendar-multiview-table-padding: 0 10px !default;", + "variable": "calendar-multiview-table-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/calendar/_index.scss", + "setTo": "0 var(--dx-calendar-view-multiview-padding-inline)" + }, + { + "file": "scss/widgets/base/calendar/_calendar.scss", + "line": 6, + "widget": "calendar", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$calendar-week-day-header-font-size: 10px !default;", + "variable": "calendar-week-day-header-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/calendar/_index.scss", + "setTo": "var(--dx-calendar-week-day-header-font-size)" + }, + { + "file": "scss/widgets/base/calendar/_mixins.scss", + "line": 132, + "widget": "calendar", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$cell-today-border-width: 2px,", + "variable": "cell-today-border-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/calendar/_mixins.scss", + "line": 133, + "widget": "calendar", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$cell-contoured-ring-width: 2px,", + "variable": "cell-contoured-ring-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/chat/_index.scss", + "line": 5, + "widget": "chat", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$chat-messagebox-border-block-start-width: 1px !default;", + "variable": "chat-messagebox-border-block-start-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/chat/_index.scss", + "setTo": "var(--dx-chat-message-box-border-block-start-width)" + }, + { + "file": "scss/widgets/base/chat/_index.scss", + "line": 6, + "widget": "chat", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$chat-messagebubble-padding-image: 4px !default;", + "variable": "chat-messagebubble-padding-image", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/chat/_index.scss", + "setTo": "var(--dx-chat-bubble-image-padding)" + }, + { + "file": "scss/widgets/base/chat/_index.scss", + "line": 7, + "widget": "chat", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$chat-messagebubble-border-radius-image: 8px !default;", + "variable": "chat-messagebubble-border-radius-image", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/chat/_index.scss", + "setTo": "var(--dx-chat-bubble-image-border-radius)" + }, + { + "file": "scss/widgets/base/chat/_index.scss", + "line": 8, + "widget": "chat", + "literals": [ + "400px" + ], + "occurrences": 1, + "marker": null, + "text": "$chat-messagebubble-max-width-image: 400px !default;", + "variable": "chat-messagebubble-max-width-image", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/chat/_index.scss", + "setTo": "var(--dx-chat-bubble-image-max-width)" + }, + { + "file": "scss/widgets/base/chat/_index.scss", + "line": 9, + "widget": "chat", + "literals": [ + "400px" + ], + "occurrences": 1, + "marker": null, + "text": "$chat-messagebubble-max-height-image: 400px !default;", + "variable": "chat-messagebubble-max-height-image", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/chat/_index.scss", + "setTo": "var(--dx-chat-bubble-image-max-height)" + }, + { + "file": "scss/widgets/base/chat/layout/chat/_mixins.scss", + "line": 5, + "widget": "chat", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$border-width: 1px,", + "variable": "border-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/checkBox/_index.scss", + "line": 4, + "widget": "checkBox", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$checkbox-text-padding-inline-start: 5px !default;", + "variable": "checkbox-text-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/checkBox/_index.scss", + "setTo": "false" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 5, + "widget": "colorBox", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$colorbox-input-left-padding: 40px !default;", + "variable": "colorbox-input-left-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorBox/_index.scss", + "setTo": "var(--dx-color-box-input-min-width)" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 7, + "widget": "colorBox", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$colorbox-texteditor-input-container-width: 15px !default;", + "variable": "colorbox-texteditor-input-container-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorBox/_index.scss", + "setTo": "var(--dx-color-box-input-container-width)" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 8, + "widget": "colorBox", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$colorbox-texteditor-input-container-height: 15px !default;", + "variable": "colorbox-texteditor-input-container-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorBox/_index.scss", + "setTo": "var(--dx-color-box-input-container-height)" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 9, + "widget": "colorBox", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$colorbox-texteditor-input-container-inset-inline-start: 14px !default;", + "variable": "colorbox-texteditor-input-container-inset-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorBox/_index.scss", + "setTo": "var(--dx-color-box-input-container-inset-inline-start)" + }, + { + "file": "scss/widgets/base/colorBox/_index.scss", + "line": 11, + "widget": "colorBox", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$colorbox-toolbar-item-padding-right: 10px !default;", + "variable": "colorbox-toolbar-item-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorBox/_index.scss", + "setTo": "var(--dx-color-box-toolbar-item-padding-inline-end)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 3, + "widget": "colorView", + "literals": [ + "450px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-container-width: 450px !default;", + "variable": "color-view-container-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 4, + "widget": "colorView", + "literals": [ + "288px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-palette-width: 288px !default;", + "variable": "color-view-palette-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-palette-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 5, + "widget": "colorView", + "literals": [ + "299px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-palette-height: 299px !default;", + "variable": "color-view-palette-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-palette-height)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 6, + "widget": "colorView", + "literals": [ + "292px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-cell-width: 292px !default;", + "variable": "color-view-alpha-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-alpha-cell-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 7, + "widget": "colorView", + "literals": [ + "18px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-hue-scale-width: 18px !default;", + "variable": "color-view-hue-scale-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-hue-scale-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 17, + "widget": "colorView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-label-hex-margin: 10px 0 0 0 !default;", + "variable": "color-view-label-hex-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-hex-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 18, + "widget": "colorView", + "literals": [ + "43px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-label-margin-inline-start: 43px !default;", + "variable": "color-view-alpha-label-margin-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-alpha-label-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 19, + "widget": "colorView", + "literals": [ + "41px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-label-margin-inline-start-rtl: 41px !default;", + "variable": "color-view-alpha-label-margin-inline-start-rtl", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-alpha-label-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 20, + "widget": "colorView", + "literals": [ + "115px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-label-width: 115px !default;", + "variable": "color-view-alpha-label-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-alpha-label-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 21, + "widget": "colorView", + "literals": [ + "69px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-textbox-width: 69px !default;", + "variable": "color-view-textbox-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-textbox-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 22, + "widget": "colorView", + "literals": [ + "1px", + "10px" + ], + "occurrences": 3, + "marker": null, + "text": "$color-view-textbox-margin: 1px 1px 10px 0 !default;", + "variable": "color-view-textbox-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-container-textbox-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 23, + "widget": "colorView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-row-margin-block-start: 10px !default;", + "variable": "color-view-alpha-row-margin-block-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-alpha-row-margin-block-start)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 24, + "widget": "colorView", + "literals": [ + "19px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-hue-scale-cell-margin-inline-start: 19px !default;", + "variable": "color-view-hue-scale-cell-margin-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-hue-scale-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 25, + "widget": "colorView", + "literals": [ + "90px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-controls-width: 90px !default;", + "variable": "color-view-controls-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-controls-container-width)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 26, + "widget": "colorView", + "literals": [ + "27px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-controls-margin-inline-start: 27px !default;", + "variable": "color-view-controls-margin-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-controls-container-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 27, + "widget": "colorView", + "literals": [ + "25px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-controls-margin-inline-start-rtl: 25px !default;", + "variable": "color-view-controls-margin-inline-start-rtl", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-controls-container-margin)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 28, + "widget": "colorView", + "literals": [ + "86px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-color-preview-width: 86px !default;", + "variable": "color-view-color-preview-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "100%" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 29, + "widget": "colorView", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-color-preview-height: 40px !default;", + "variable": "color-view-color-preview-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-color-preview-height)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 30, + "widget": "colorView", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-scale-height: 20px !default;", + "variable": "color-view-alpha-scale-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-alpha-scale-height)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 31, + "widget": "colorView", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-alpha-cell-margin-block: 6px !default;", + "variable": "color-view-alpha-cell-margin-block", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-alpha-cell-margin-block)" + }, + { + "file": "scss/widgets/base/colorView/_index.scss", + "line": 32, + "widget": "colorView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$color-view-apply-button-margin-inline-end: 10px !default;", + "variable": "color-view-apply-button-margin-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/colorView/_index.scss", + "setTo": "var(--dx-color-view-apply-button-margin-inline-end)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 15, + "widget": "dataGrid", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-group-row-border: 1px solid !default;", + "variable": "datagrid-group-row-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-group-row-border)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 16, + "widget": "dataGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-sticky-column-border: 2px solid !default;", + "variable": "datagrid-sticky-column-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-sticky-column-border)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 17, + "widget": "dataGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-cell-focus-outline: 2px solid !default;", + "variable": "datagrid-cell-focus-outline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-cell-outline-focused)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 23, + "widget": "dataGrid", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-common-group-min-width: 30px !default;", + "variable": "datagrid-common-group-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-group-panel-item-min-width)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 24, + "widget": "dataGrid", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-common-addrow-margin-left: 6px !default;", + "variable": "datagrid-common-addrow-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-group-panel-item-sort-margin-inline-start)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 25, + "widget": "dataGrid", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-common-form-buttons-border-radius: 3px !default;", + "variable": "datagrid-common-form-buttons-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-block-separator-border-radius)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 26, + "widget": "dataGrid", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-common-form-buttons-margin-right: 6px !default;", + "variable": "datagrid-common-form-buttons-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-group-panel-item-sort-rtl-margin-inline-start)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 51, + "widget": "dataGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-header-filter-outline: 2px solid !default;", + "variable": "datagrid-header-filter-outline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-grid-outline-focused)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 52, + "widget": "dataGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-header-filter-outline-offset: 2px !default;", + "variable": "datagrid-header-filter-outline-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-outline-offset-focused)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 53, + "widget": "dataGrid", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-filter-panel-clear-filter-outline-offset: 3px !default;", + "variable": "datagrid-filter-panel-clear-filter-outline-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-filter-panel-outline-offset-focused)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 54, + "widget": "dataGrid", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-button-margin-left: 10px !default;", + "variable": "datagrid-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-form-buttons-margin-inline-start)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 55, + "widget": "dataGrid", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-button-margin-top: 10px !default;", + "variable": "datagrid-button-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-form-buttons-margin-block-start)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 56, + "widget": "dataGrid", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-error-message-margin-bottom: 20px !default;", + "variable": "datagrid-error-message-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-error-message-margin-block-end)" + }, + { + "file": "scss/widgets/base/dataGrid/_index.scss", + "line": 57, + "widget": "dataGrid", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$datagrid-button-margin-right: 10px !default;", + "variable": "datagrid-button-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dataGrid/_index.scss", + "setTo": "var(--dx-data-grid-form-buttons-rtl-margin-inline-start)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 5, + "widget": "diagram", + "literals": [ + "600px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-root-height: 600px !default;", + "variable": "diagram-root-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-height)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 6, + "widget": "diagram", + "literals": [ + "350px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-root-min-height: 350px !default;", + "variable": "diagram-root-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-min-height)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 7, + "widget": "diagram", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-toolbar-wrapper-padding: 5px !default;", + "variable": "diagram-toolbar-wrapper-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-toolbar-wrapper-padding)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 8, + "widget": "diagram", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-button-min-height: 14px !default;", + "variable": "diagram-button-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-toolbox-input-button-min-height)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 9, + "widget": "diagram", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-popup-content-padding: 8px !default;", + "variable": "diagram-popup-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-popup-content-padding)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 10, + "widget": "diagram", + "literals": [ + "300px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-colorview-palette-min-width: 300px !default;", + "variable": "diagram-colorview-palette-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-color-view-palette-min-width)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 11, + "widget": "diagram", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-colorview-hue-scale-cell-margin-left: 12px !default;", + "variable": "diagram-colorview-hue-scale-cell-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-color-view-hue-scale-cell-margin-inline-start)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 12, + "widget": "diagram", + "literals": [ + "64px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-loading-indicator-width: 64px !default;", + "variable": "diagram-loading-indicator-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-loading-indicator-width)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 13, + "widget": "diagram", + "literals": [ + "64px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-loading-indicator-height: 64px !default;", + "variable": "diagram-loading-indicator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-loading-indicator-height)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 14, + "widget": "diagram", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-context-toolbox-target-width: 1px !default;", + "variable": "diagram-context-toolbox-target-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-context-toolbox-target-width)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 15, + "widget": "diagram", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-context-toolbox-target-height: 1px !default;", + "variable": "diagram-context-toolbox-target-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-context-toolbox-target-height)" + }, + { + "file": "scss/widgets/base/diagram/_index.scss", + "line": 19, + "widget": "diagram", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$diagram-border-width: 1px !default;", + "variable": "diagram-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/diagram/_index.scss", + "setTo": "var(--dx-diagram-border-width)" + }, + { + "file": "scss/widgets/base/dropDownButton/_mixins.scss", + "line": 4, + "widget": "dropDownButton", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$dropdownbutton-icon-right-margin-inline-start: 4px,", + "variable": "dropdownbutton-icon-right-margin-inline-start", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/dropDownMenu/_index.scss", + "line": 1, + "widget": "dropDownMenu", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$dropdownmenu-list-min-width: 100px !default;", + "variable": "dropdownmenu-list-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dropDownMenu/_index.scss", + "setTo": "var(--dx-drop-down-menu-list-min-width)" + }, + { + "file": "scss/widgets/base/dropDownMenu/_index.scss", + "line": 2, + "widget": "dropDownMenu", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$dropdownmenu-list-border-radius: 8px !default;", + "variable": "dropdownmenu-list-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dropDownMenu/_index.scss", + "setTo": "var(--dx-drop-down-menu-list-border-radius)" + }, + { + "file": "scss/widgets/base/dropDownMenu/_index.scss", + "line": 3, + "widget": "dropDownMenu", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$dropdownmenu-popup-content-padding: 1px !default;", + "variable": "dropdownmenu-popup-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/dropDownMenu/_index.scss", + "setTo": "var(--dx-drop-down-menu-popup-content-padding)" + }, + { + "file": "scss/widgets/base/dropDownMenu/_mixins.scss", + "line": 5, + "widget": "dropDownMenu", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$outline-width: 2px,", + "variable": "outline-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/dropDownMenu/_mixins.scss", + "line": 6, + "widget": "dropDownMenu", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$outline-offset: 1px,", + "variable": "outline-offset", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 3, + "widget": "fileManager", + "literals": [ + "500px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-root-height: 500px !default;", + "variable": "filemanager-root-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 4, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-root-border: 1px solid !default;", + "variable": "filemanager-root-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-border-width) solid" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 5, + "widget": "fileManager", + "literals": [ + "240px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-overlay-content-min-width: 240px !default;", + "variable": "filemanager-overlay-content-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-overlay-content-min-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 6, + "widget": "fileManager", + "literals": [ + "400px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-overlay-content-max-width: 400px !default;", + "variable": "filemanager-overlay-content-max-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-overlay-content-max-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 7, + "widget": "fileManager", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-popup-content-padding: 15px !default;", + "variable": "filemanager-popup-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-popup-content-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 8, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-padding: 5px 0 0 !default;", + "variable": "filemanager-progress-box-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 9, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-notification-common-padding-bottom: 10px !default;", + "variable": "filemanager-notification-common-padding-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-notification-padding-block-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 10, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-notification-common-border-bottom-width: 1px !default;", + "variable": "filemanager-notification-common-border-bottom-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-notification-border-block-end-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 11, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-panel-border-left-width: 1px !default;", + "variable": "filemanager-progress-panel-border-left-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-border-inline-start-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 12, + "widget": "fileManager", + "literals": [ + "340px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-panel-width: 340px !default;", + "variable": "filemanager-progress-panel-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 13, + "widget": "fileManager", + "literals": [ + "10px", + "20px" + ], + "occurrences": 4, + "marker": null, + "text": "$filemanager-progress-panel-container-padding: 10px 20px 20px 20px !default;", + "variable": "filemanager-progress-panel-container-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-container-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 14, + "widget": "fileManager", + "literals": [ + "5px", + "10px" + ], + "occurrences": 2, + "marker": null, + "text": "$filemanager-progress-panel-title-padding: 0 0 5px 10px !default;", + "variable": "filemanager-progress-panel-title-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-title-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 15, + "widget": "fileManager", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-panel-separator-height: 20px !default;", + "variable": "filemanager-progress-panel-separator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-separator-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 16, + "widget": "fileManager", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-i-cancel-width: 16px !default;", + "variable": "filemanager-i-cancel-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-i-cancel-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 17, + "widget": "fileManager", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-i-cancel-height: 16px !default;", + "variable": "filemanager-i-cancel-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-i-cancel-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 18, + "widget": "fileManager", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-margin-bottom: 8px !default;", + "variable": "filemanager-progress-box-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-margin-block-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 19, + "widget": "fileManager", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-border-radius: 2px !default;", + "variable": "filemanager-progress-box-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-border-radius)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 20, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 3, + "marker": null, + "text": "$filemanager-progress-panel-box-padding: 10px 0 10px 10px !default;", + "variable": "filemanager-progress-panel-box-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-panel-box-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 21, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-without-close-button-padding-right: 10px !default;", + "variable": "filemanager-progress-box-without-close-button-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-without-close-button-padding-inline-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 22, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-image-margin-right: 10px !default;", + "variable": "filemanager-progress-box-image-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-image-margin-inline-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 23, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-common-padding: 5px 0 !default;", + "variable": "filemanager-progress-box-common-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-content-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 24, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-close-button-margin-left: 5px !default;", + "variable": "filemanager-progress-box-close-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-close-button-margin-inline-start)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 25, + "widget": "fileManager", + "literals": [ + "2px", + "8px", + "3px" + ], + "occurrences": 3, + "marker": null, + "text": "$filemanager-progress-box-error-padding: 2px 8px 3px !default;", + "variable": "filemanager-progress-box-error-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-error-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 26, + "widget": "fileManager", + "literals": [ + "150px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-box-error-max-height: 150px !default;", + "variable": "filemanager-progress-box-error-max-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-error-max-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 27, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-toolbar-separator-item-width: 1px !default;", + "variable": "filemanager-toolbar-separator-item-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-toolbar-separator-item-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 28, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-toolbar-separator-item-margin-right: 5px !default;", + "variable": "filemanager-toolbar-separator-item-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-toolbar-separator-item-margin-inline-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 29, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-container-border-top: 1px solid !default;", + "variable": "filemanager-container-border-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-container-border-block-start)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 30, + "widget": "fileManager", + "literals": [ + "5px", + "10px" + ], + "occurrences": 2, + "marker": null, + "text": "$filemanager-dirs-panel-padding: 5px 10px !default;", + "variable": "filemanager-dirs-panel-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-dirs-panel-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 31, + "widget": "fileManager", + "literals": [ + "250px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-drawer-panel-content-initial-min-width: 250px !default;", + "variable": "filemanager-drawer-panel-content-initial-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-drawer-panel-content-initial-min-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 32, + "widget": "fileManager", + "literals": [ + "300px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-drawer-panel-content-initial-max-width: 300px !default;", + "variable": "filemanager-drawer-panel-content-initial-max-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-drawer-panel-content-initial-max-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 33, + "widget": "fileManager", + "literals": [ + "2px", + "11px" + ], + "occurrences": 2, + "marker": null, + "text": "$filemanager-breadcrumbs-padding: 2px 11px !default;", + "variable": "filemanager-breadcrumbs-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-breadcrumbs-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 34, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-breadcrumbs-border-bottom: 1px solid !default;", + "variable": "filemanager-breadcrumbs-border-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-breadcrumbs-border-block-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 35, + "widget": "fileManager", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-menu-item-content-padding-left: 2px !default;", + "variable": "filemanager-menu-item-content-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-menu-item-content-padding-inline-start)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 36, + "widget": "fileManager", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-menu-item-content-padding-right: 2px !default;", + "variable": "filemanager-menu-item-content-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-menu-item-content-padding-inline-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 37, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-menu-item-content-margin: 0 10px !default;", + "variable": "filemanager-menu-item-content-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-menu-item-content-margin)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 38, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-breadcrumbs-path-separator-padding-left: 1px !default;", + "variable": "filemanager-breadcrumbs-path-separator-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-breadcrumbs-path-separator-padding-inline-start)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 39, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-breadcrumbs-path-separator-padding-right: 1px !default;", + "variable": "filemanager-breadcrumbs-path-separator-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-breadcrumbs-path-separator-padding-inline-end)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 40, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-view-port-padding: 5px !default;", + "variable": "filemanager-thumbnails-view-port-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-view-port-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 41, + "widget": "fileManager", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-item-width: 100px !default;", + "variable": "filemanager-thumbnails-item-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 42, + "widget": "fileManager", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-item-height: 100px !default;", + "variable": "filemanager-thumbnails-item-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 43, + "widget": "fileManager", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-item-border: 1px dashed transparent !default;", + "variable": "filemanager-thumbnails-item-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-border)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 44, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-item-margin: 5px !default;", + "variable": "filemanager-thumbnails-item-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-margin)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 45, + "widget": "fileManager", + "literals": [ + "13px", + "10px" + ], + "occurrences": 2, + "marker": null, + "text": "$filemanager-thumbnails-item-content-padding: 13px 0 10px !default;", + "variable": "filemanager-thumbnails-item-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-content-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 46, + "widget": "fileManager", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-thumbnails-item-spacer-height: 10px !default;", + "variable": "filemanager-thumbnails-item-spacer-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-thumbnails-item-spacer-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 47, + "widget": "fileManager", + "literals": [ + "10px", + "11px" + ], + "occurrences": 2, + "marker": null, + "text": "$filemanager-button-content-padding: 10px 11px !default;", + "variable": "filemanager-button-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-view-mode-button-content-padding)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 48, + "widget": "fileManager", + "literals": [ + "300px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-dialog-min-width: 300px !default;", + "variable": "filemanager-dialog-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-dialog-min-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 49, + "widget": "fileManager", + "literals": [ + "300px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-overlay-content-min-height: 300px !default;", + "variable": "filemanager-overlay-content-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-overlay-content-min-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 50, + "widget": "fileManager", + "literals": [ + "400px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-overlay-content-max-height: 400px !default;", + "variable": "filemanager-overlay-content-max-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-overlay-content-max-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 51, + "widget": "fileManager", + "literals": [ + "340px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-dialog-name-editor-max-width: 340px !default;", + "variable": "filemanager-dialog-name-editor-max-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-dialog-name-editor-max-width)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 52, + "widget": "fileManager", + "literals": [ + "180px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-dialog-name-editor-min-height: 180px !default;", + "variable": "filemanager-dialog-name-editor-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-dialog-name-editor-min-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 53, + "widget": "fileManager", + "literals": [ + "180px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-dialog-name-editor-max-height: 180px !default;", + "variable": "filemanager-dialog-name-editor-max-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-dialog-name-editor-max-height)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 54, + "widget": "fileManager", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progressbox-cancel-button-margin-top: 5px !default;", + "variable": "filemanager-progressbox-cancel-button-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-box-cancel-button-margin-block-start)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 56, + "widget": "fileManager", + "literals": [ + "18px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-progress-title-font-size: 18px !default;", + "variable": "filemanager-progress-title-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-progress-title-font-size)" + }, + { + "file": "scss/widgets/base/fileManager/_index.scss", + "line": 63, + "widget": "fileManager", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$filemanager-splitter-wrapper-right: 3px !default;", + "variable": "filemanager-splitter-wrapper-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/fileManager/_index.scss", + "setTo": "var(--dx-file-manager-splitter-wrapper-inset-inline-end)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 27, + "widget": "filterBuilder", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-action-icon-margin-left: 5px !default;", + "variable": "filterbuilder-action-icon-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-action-icon-margin-inline-start)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 28, + "widget": "filterBuilder", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-action-icon-margin-right: 5px !default;", + "variable": "filterbuilder-action-icon-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-action-icon-margin-inline-end)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 29, + "widget": "filterBuilder", + "literals": [ + "26px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-group-content-padding-right: 26px !default;", + "variable": "filterbuilder-group-content-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-group-content-padding-inline-end)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 30, + "widget": "filterBuilder", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-range-separator-margin: 0 7px !default;", + "variable": "filterbuilder-range-separator-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-range-separator-margin)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 31, + "widget": "filterBuilder", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-item-value-text-min-width: 20px !default;", + "variable": "filterbuilder-item-value-text-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-item-value-text-min-width)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 32, + "widget": "filterBuilder", + "literals": [ + "2px", + "7px", + "3px" + ], + "occurrences": 4, + "marker": null, + "text": "$filterbuilder-item-value-text-padding: 2px 7px 3px 7px !default;", + "variable": "filterbuilder-item-value-text-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-item-value-text-padding)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 33, + "widget": "filterBuilder", + "literals": [ + "5px", + "8px" + ], + "occurrences": 2, + "marker": null, + "text": "$filterbuilder-action-icon-padding: 5px 8px !default;", + "variable": "filterbuilder-action-icon-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-action-icon-padding)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 34, + "widget": "filterBuilder", + "literals": [ + "26px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-group-content-padding-left: 26px !default;", + "variable": "filterbuilder-group-content-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-group-content-padding-inline-start)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 35, + "widget": "filterBuilder", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-treeview-item-padding-left: 5px !default;", + "variable": "filterbuilder-treeview-item-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-tree-view-item-padding-inline-start)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 36, + "widget": "filterBuilder", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-treeview-item-padding-right: 5px !default;", + "variable": "filterbuilder-treeview-item-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-tree-view-item-padding-inline-end)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 37, + "widget": "filterBuilder", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-treeview-node-margin-left: 15px !default;", + "variable": "filterbuilder-treeview-node-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-tree-view-node-margin-inline-start)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 38, + "widget": "filterBuilder", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-treeview-node-margin-right: 15px !default;", + "variable": "filterbuilder-treeview-node-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-tree-view-node-margin-inline-end)" + }, + { + "file": "scss/widgets/base/filterBuilder/_index.scss", + "line": 39, + "widget": "filterBuilder", + "literals": [ + "360px" + ], + "occurrences": 1, + "marker": null, + "text": "$filterbuilder-scrollable-max-height: 360px !default;", + "variable": "filterbuilder-scrollable-max-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/filterBuilder/_index.scss", + "setTo": "var(--dx-filter-builder-scrollable-max-height)" + }, + { + "file": "scss/widgets/base/gantt/_index.scss", + "line": 1, + "widget": "gantt", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$gantt-toolbar-separator-border-left: 1px solid transparent !default;", + "variable": "gantt-toolbar-separator-border-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gantt/_index.scss", + "setTo": "var(--dx-gantt-toolbar-separator-border-inline-start)" + }, + { + "file": "scss/widgets/base/gantt/_index.scss", + "line": 2, + "widget": "gantt", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$gantt-splitter-bar-width: 2px !default;", + "variable": "gantt-splitter-bar-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gantt/_index.scss", + "setTo": "var(--dx-gantt-splitter-bar-width)" + }, + { + "file": "scss/widgets/base/gantt/_index.scss", + "line": 3, + "widget": "gantt", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$gantt-view-min-width: 1px !default;", + "variable": "gantt-view-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gantt/_index.scss", + "setTo": "var(--dx-gantt-view-min-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 4, + "widget": "gridBase", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-cell-padding: 7px !default;", + "variable": "grid-cell-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-cell-content-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 5, + "widget": "gridBase", + "literals": [ + "32px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-texteditor-input-padding: 32px !default;", + "variable": "grid-texteditor-input-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-editor-input-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 7, + "widget": "gridBase", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-total-footer-padding-block: 14px !default;", + "variable": "grid-total-footer-padding-block", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-summary-padding-block)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 8, + "widget": "gridBase", + "literals": [ + "70px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-command-select-column-width: 70px !default;", + "variable": "grid-command-select-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-command-select-column-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 9, + "widget": "gridBase", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-command-edit-column-width: 100px !default;", + "variable": "grid-command-edit-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-command-edit-column-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 10, + "widget": "gridBase", + "literals": [ + "80px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-command-edit-column-with-icons-width: 80px !default;", + "variable": "grid-command-edit-column-with-icons-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-command-edit-column-with-icons-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 11, + "widget": "gridBase", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-command-expand-column-width: 30px !default;", + "variable": "grid-command-expand-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-command-expand-column-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 12, + "widget": "gridBase", + "literals": [ + "36px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-command-adaptive-column-width: 36px !default;", + "variable": "grid-command-adaptive-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-command-adaptive-column-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 13, + "widget": "gridBase", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-column-header-indicator-width: 14px !default;", + "variable": "grid-column-header-indicator-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-indicator-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 14, + "widget": "gridBase", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-text-content-margin: 3px !default;", + "variable": "grid-text-content-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-header-text-margin-inline)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 15, + "widget": "gridBase", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-sort-index-width: 12px !default;", + "variable": "grid-sort-index-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-sort-index-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 16, + "widget": "gridBase", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-sort-index-offset: 3px !default;", + "variable": "grid-sort-index-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-sort-index-offset)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 17, + "widget": "gridBase", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-ai-assistant-confirm-dialog-button-width: 50px !default;", + "variable": "grid-ai-assistant-confirm-dialog-button-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-confirm-dialog-button-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 19, + "widget": "gridBase", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-context-menu-item-padding-block: 7px !default;", + "variable": "grid-context-menu-item-padding-block", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-context-menu-item-padding-block)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 20, + "widget": "gridBase", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-context-menu-item-padding-inline-start: 5px !default;", + "variable": "grid-context-menu-item-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-context-menu-item-padding-inline-start)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 21, + "widget": "gridBase", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-context-menu-item-padding-inline-end: 30px !default;", + "variable": "grid-context-menu-item-padding-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-context-menu-item-padding-inline-end)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 22, + "widget": "gridBase", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-context-menu-overlay-item-padding: 5px !default;", + "variable": "grid-context-menu-overlay-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-context-menu-overlay-item-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 23, + "widget": "gridBase", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-context-menu-overlay-item-padding-inline-end: 30px !default;", + "variable": "grid-context-menu-overlay-item-padding-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-context-menu-overlay-item-padding-inline-end)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 24, + "widget": "gridBase", + "literals": [ + "8px", + "5px", + "7px" + ], + "occurrences": 4, + "marker": null, + "text": "$grid-menu-bar-item-padding: 8px 5px 7px 5px !default;", + "variable": "grid-menu-bar-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-menu-bar-item-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 25, + "widget": "gridBase", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-menu-caption-padding-inline-start: 6px !default;", + "variable": "grid-menu-caption-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-menu-caption-padding-inline-start)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 26, + "widget": "gridBase", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-column-chooser-title-font-size: 16px !default;", + "variable": "grid-column-chooser-title-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-chooser-title-font-size)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 27, + "widget": "gridBase", + "literals": [ + "20px" + ], + "occurrences": 3, + "marker": null, + "text": "$grid-column-chooser-content-padding: 0 20px 20px 20px !default;", + "variable": "grid-column-chooser-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-chooser-content-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 28, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-column-chooser-item-margin-block-end: 10px !default;", + "variable": "grid-column-chooser-item-margin-block-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-chooser-item-margin-block-end)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 29, + "widget": "gridBase", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-column-chooser-tree-view-item-padding-inline-start: 4px !default;", + "variable": "grid-column-chooser-tree-view-item-padding-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-chooser-tree-view-item-padding-inline-start)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 30, + "widget": "gridBase", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-column-separator-width: 3px !default;", + "variable": "grid-column-separator-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-column-separator-width)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 31, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-toolbar-button-margin-inline-start: 10px !default;", + "variable": "grid-toolbar-button-margin-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-toolbar-button-margin-inline-start)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 32, + "widget": "gridBase", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-search-panel-margin-inline-start: 15px !default;", + "variable": "grid-search-panel-margin-inline-start", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-search-panel-margin-inline-start)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 33, + "widget": "gridBase", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-rowsview-empty-height: 100px !default;", + "variable": "grid-rowsview-empty-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-rowsview-empty-height)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 34, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-bottom-load-panel-padding: 10px !default;", + "variable": "grid-bottom-load-panel-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-bottom-load-panel-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 35, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-filter-panel-padding: 10px !default;", + "variable": "grid-filter-panel-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-filter-panel-padding)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 36, + "widget": "gridBase", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-filter-panel-checkbox-padding-inline-end: 10px !default;", + "variable": "grid-filter-panel-checkbox-padding-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-filter-panel-checkbox-padding-inline-end)" + }, + { + "file": "scss/widgets/base/gridBase/_variables.scss", + "line": 37, + "widget": "gridBase", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$grid-filter-panel-icon-margin-inline-end: 7px !default;", + "variable": "grid-filter-panel-icon-margin-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-filter-panel-icon-margin-inline-end)" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_variables.scss", + "line": 1, + "widget": "gridBase", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$ai-chat-toolbar-item-spacing: 4px !default;", + "variable": "ai-chat-toolbar-item-spacing", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-chat-toolbar-item-padding-inline-end)" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_variables.scss", + "line": 2, + "widget": "gridBase", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$ai-chat-message-gap: 8px !default;", + "variable": "ai-chat-message-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-chat-message-gap)" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_variables.scss", + "line": 3, + "widget": "gridBase", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$ai-chat-message-content-gap: 4px !default;", + "variable": "ai-chat-message-content-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-chat-message-content-gap)" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_variables.scss", + "line": 4, + "widget": "gridBase", + "literals": [ + "280px" + ], + "occurrences": 1, + "marker": null, + "text": "$ai-chat-message-width: 280px !default;", + "variable": "ai-chat-message-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-chat-message-min-width)" + }, + { + "file": "scss/widgets/base/gridBase/layout/aiChat/_variables.scss", + "line": 5, + "widget": "gridBase", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$ai-chat-message-regenerate-button-border-radius: 4px !default;", + "variable": "ai-chat-message-regenerate-button-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/gridBase/_index.scss", + "setTo": "var(--dx-grid-ai-chat-message-regenerate-button-border-radius)" + }, + { + "file": "scss/widgets/base/list/_index.scss", + "line": 6, + "widget": "list", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$list-searchbox-margin-bottom: 5px !default;", + "variable": "list-searchbox-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/list/_index.scss", + "setTo": "var(--dx-list-search-box-margin-block-end)" + }, + { + "file": "scss/widgets/base/list/_index.scss", + "line": 8, + "widget": "list", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$list-item-badge-container-width: 20px !default;", + "variable": "list-item-badge-container-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/list/_index.scss", + "setTo": "var(--dx-list-item-badge-container-width)" + }, + { + "file": "scss/widgets/base/list/_index.scss", + "line": 9, + "widget": "list", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$list-slide-menu-button-padding: 0 10px !default;", + "variable": "list-slide-menu-button-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/list/_index.scss", + "setTo": "var(--dx-list-slide-menu-button-padding)" + }, + { + "file": "scss/widgets/base/list/_index.scss", + "line": 10, + "widget": "list", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$list-next-button-padding: 5px !default;", + "variable": "list-next-button-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/list/_index.scss", + "setTo": "var(--dx-list-next-button-padding)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 4, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-position-indicator-vertical-height: 2px !default;", + "variable": "pivotgrid-position-indicator-vertical-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-position-indicator-vertical-height)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 5, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-position-indicator-horizontal-width: 2px !default;", + "variable": "pivotgrid-position-indicator-horizontal-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-position-indicator-horizontal-width)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 6, + "widget": "pivotGrid", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-position-indicator-last-margin-left: 3px !default;", + "variable": "pivotgrid-position-indicator-last-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-position-indicator-last-margin-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 7, + "widget": "pivotGrid", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-area-box-margin-bottom: 4px !default;", + "variable": "pivotgrid-area-box-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-area-box-margin-block-end)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 8, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-expand-icon-container-outline: 2px solid !default;", + "variable": "pivotgrid-expand-icon-container-outline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-expand-icon-container-outline)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 9, + "widget": "pivotGrid", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-toolbar-margin-right: 10px !default;", + "variable": "pivotgrid-toolbar-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-toolbar-margin-inline-end)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 10, + "widget": "pivotGrid", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-field-chooser-button-margin-right: 4px !default;", + "variable": "pivotgrid-field-chooser-button-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-field-chooser-button-margin-inline-end)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 11, + "widget": "pivotGrid", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-button-margin: 1px !default;", + "variable": "pivotgrid-button-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-button-margin)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 12, + "widget": "pivotGrid", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-last-cell-min-width: 50px !default;", + "variable": "pivotgrid-last-cell-min-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-last-cell-min-width)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 13, + "widget": "pivotGrid", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-icon-sorted-margin-left: 5px !default;", + "variable": "pivotgrid-icon-sorted-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-icon-sorted-margin-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 14, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-fields-area-head-padding: 0 2px !default;", + "variable": "pivotgrid-fields-area-head-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-fields-area-head-padding)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 15, + "widget": "pivotGrid", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-treeview-search-margin: 5px !default;", + "variable": "pivotgrid-treeview-search-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-tree-view-search-margin)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 16, + "widget": "pivotGrid", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-area-padding: 5px !default;", + "variable": "pivotgrid-area-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-area-padding)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 17, + "widget": "pivotGrid", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-area-fields-margin-top: 3px !default;", + "variable": "pivotgrid-area-fields-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-area-fields-margin-block-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 18, + "widget": "pivotGrid", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-position-indicator-last-margin-left-rtl: 1px !default;", + "variable": "pivotgrid-position-indicator-last-margin-left-rtl", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-position-indicator-last-rtl-margin-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 19, + "widget": "pivotGrid", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-toolbar-margin-left: 10px !default;", + "variable": "pivotgrid-toolbar-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-toolbar-margin-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 20, + "widget": "pivotGrid", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-field-chooser-button-margin-left: 4px !default;", + "variable": "pivotgrid-field-chooser-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-field-chooser-button-margin-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 21, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-fields-area-head-padding-left: 2px !default;", + "variable": "pivotgrid-fields-area-head-padding-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-fields-area-head-padding-inline-start)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 22, + "widget": "pivotGrid", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-icon-sorted-margin-right: 5px !default;", + "variable": "pivotgrid-icon-sorted-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-icon-sorted-margin-inline-end)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 23, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-header-cell-side-padding: 2px !default;", + "variable": "pivotgrid-header-cell-side-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-header-cell-padding-inline)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 24, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-fields-area-head-cell-side-padding: 2px !default;", + "variable": "pivotgrid-fields-area-head-cell-side-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-fields-area-head-cell-padding-inline)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 49, + "widget": "pivotGrid", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-common-field-chooser-drag-width: 100px !default;", + "variable": "pivotgrid-common-field-chooser-drag-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-field-chooser-drag-width)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 50, + "widget": "pivotGrid", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-common-field-chooser-drag-height: 100px !default;", + "variable": "pivotgrid-common-field-chooser-drag-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-field-chooser-drag-height)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 58, + "widget": "pivotGrid", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-border-width: 1px !default;", + "variable": "pivotgrid-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-border-width)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 59, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-focus-outline-width: 2px !default;", + "variable": "pivotgrid-focus-outline-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-focus-rect-outline-width)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 60, + "widget": "pivotGrid", + "literals": [ + "-2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-focus-outline-offset: -2px !default;", + "variable": "pivotgrid-focus-outline-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-focus-rect-outline-offset-inset)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 65, + "widget": "pivotGrid", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-icon-size: 14px !default;", + "variable": "pivotgrid-icon-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-icon-size)" + }, + { + "file": "scss/widgets/base/pivotGrid/_index.scss", + "line": 66, + "widget": "pivotGrid", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivotgrid-common-field-padding: 2px !default;", + "variable": "pivotgrid-common-field-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/pivotGrid/_index.scss", + "setTo": "var(--dx-pivot-grid-field-padding)" + }, + { + "file": "scss/widgets/base/radioGroup/_index.scss", + "line": 3, + "widget": "radioGroup", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$radiogroup-radio-value-container-padding-inline-end: 10px !default;", + "variable": "radiogroup-radio-value-container-padding-inline-end", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/radioGroup/_index.scss", + "setTo": "var(--dx-radio-button-value-container-padding-inline-end)" + }, + { + "file": "scss/widgets/base/radioGroup/_index.scss", + "line": 4, + "widget": "radioGroup", + "literals": [ + "17px" + ], + "occurrences": 1, + "marker": null, + "text": "$radiogroup-collection-column-gap: 17px !default;", + "variable": "radiogroup-collection-column-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/radioGroup/_index.scss", + "setTo": "var(--dx-radio-group-collection-horizontal-column-gap)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 42, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-common-collector-margin: 0 3px !default;", + "variable": "scheduler-common-collector-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-common-collector-margin)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 43, + "widget": "scheduler", + "literals": [ + "28px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-common-collector-size: 28px !default;", + "variable": "scheduler-common-collector-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-common-collector-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 49, + "widget": "scheduler", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-shadow: 0 0 15px 0 rgba(0, 0, 0, 0.15) !default;", + "variable": "scheduler-tooltip-shadow", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-shadow)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 51, + "widget": "scheduler", + "literals": [ + "360px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-width: 360px !default;", + "variable": "scheduler-tooltip-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 52, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-content-padding: 5px !default;", + "variable": "scheduler-tooltip-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-content-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 53, + "widget": "scheduler", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-title-margin-top: 7px !default;", + "variable": "scheduler-tooltip-title-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-title-margin-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 54, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-title-margin-left: 5px !default;", + "variable": "scheduler-tooltip-title-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-title-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 55, + "widget": "scheduler", + "literals": [ + "5px", + "10px" + ], + "occurrences": 2, + "marker": null, + "text": "$scheduler-tooltip-date-margin: 5px 10px !default;", + "variable": "scheduler-tooltip-date-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-date-margin)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 56, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-remove-margin-top: 10px !default;", + "variable": "scheduler-tooltip-remove-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-remove-margin-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 57, + "widget": "scheduler", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-subject-font-size: 16px !default;", + "variable": "scheduler-tooltip-subject-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-subject-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 58, + "widget": "scheduler", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-tooltip-date-font-size: 12px !default;", + "variable": "scheduler-tooltip-date-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-tooltip-date-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 60, + "widget": "scheduler", + "literals": [ + "11px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-content-details-font-size: 11px !default;", + "variable": "scheduler-appointment-content-details-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-content-details-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 79, + "widget": "scheduler", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-min-size: 4px !default;", + "variable": "scheduler-appointment-min-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-min-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 80, + "widget": "scheduler", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-reduced-content-padding: 40px !default;", + "variable": "scheduler-appointment-reduced-content-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-reduced-content-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 90, + "widget": "scheduler", + "literals": [ + "7px", + "15px" + ], + "occurrences": 3, + "marker": null, + "text": "$scheduler-appointment-dragging-shadow: 7px 7px 15px 0 rgba(50, 50, 50, 0.2) !default;", + "variable": "scheduler-appointment-dragging-shadow", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-dragging-shadow)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 100, + "widget": "scheduler", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-grouped-appointment-month-text-size: 12px !default;", + "variable": "scheduler-grouped-appointment-month-text-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-month-text-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 102, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-border-width: 1px !default;", + "variable": "scheduler-border-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-border-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 103, + "widget": "scheduler", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-workspace-info-font-size: 20px !default;", + "variable": "scheduler-workspace-info-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-workspace-info-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 104, + "widget": "scheduler", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-small-font-size: 14px !default;", + "variable": "scheduler-small-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-small-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 105, + "widget": "scheduler", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-group-header-table-cell-height: 30px !default;", + "variable": "scheduler-group-header-table-cell-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-group-header-cell-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 106, + "widget": "scheduler", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-month-date-text-size: 16px !default;", + "variable": "scheduler-month-date-text-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-month-date-text-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 107, + "widget": "scheduler", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-month-date-text-padding: 6px !default;", + "variable": "scheduler-month-date-text-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-month-date-text-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 112, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-reduced-icon-offset: 5px !default;", + "variable": "scheduler-reduced-icon-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-reduced-icon-inset-inline)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 113, + "widget": "scheduler", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-recurrence-icon-offset: 20px !default;", + "variable": "scheduler-recurrence-icon-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-recurrence-icon-inset-inline)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 115, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-appointment-margin: 5px !default;", + "variable": "scheduler-agenda-appointment-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-margin)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 116, + "widget": "scheduler", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-last-in-date-appointment-margin: 20px !default;", + "variable": "scheduler-agenda-last-in-date-appointment-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-last-margin)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 122, + "widget": "scheduler", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-time-indicator-font-size: 30px !default;", + "variable": "scheduler-time-indicator-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-time-indicator-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 123, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-time-indicator-size: 1px !default;", + "variable": "scheduler-time-indicator-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-time-indicator-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 131, + "widget": "scheduler", + "literals": [ + "18px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-icon-font-size: 18px !default;", + "variable": "scheduler-appointment-icon-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-icon-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 137, + "widget": "scheduler", + "literals": [ + "12px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-details-font-size: 12px !default;", + "variable": "agenda-appointment-details-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-details-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 140, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-reduced-icon-top: 3px !default;", + "variable": "scheduler-appointment-reduced-icon-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-reduced-icon-inset-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 141, + "widget": "scheduler", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-active-marker-border-radius: 4px !default;", + "variable": "scheduler-appointment-active-marker-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-marker-border-radius-active)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 142, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-content-details-margin-top: 2px !default;", + "variable": "scheduler-appointment-content-details-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-content-details-margin-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 143, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-reduced-icon-rtl-left: 3px !default;", + "variable": "scheduler-appointment-reduced-icon-rtl-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-reduced-icon-rtl-inset-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 144, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-item-padding: 10px !default;", + "variable": "agenda-appointment-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-item-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 145, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-item-border-radius: 5px !default;", + "variable": "agenda-appointment-item-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-item-border-radius)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 146, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-right-layout-margin-left: 10px !default;", + "variable": "agenda-appointment-right-layout-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-right-layout-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 147, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-allday-padding-right: 5px !default;", + "variable": "agenda-appointment-allday-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-allday-padding-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 148, + "widget": "scheduler", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-resource-item-margin-left: 15px !default;", + "variable": "agenda-appointment-resource-item-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-resource-item-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 149, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-resource-value-margin-left: 3px !default;", + "variable": "agenda-appointment-resource-value-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-resource-value-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 150, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-rtl-margin-right: 10px !default;", + "variable": "agenda-appointment-rtl-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-rtl-margin-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 194, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-header-border: 2px solid !default;", + "variable": "scheduler-views-header-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-header-border)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 195, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-empty-cell-border-bottom: 1px solid !default;", + "variable": "scheduler-views-empty-cell-border-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-empty-cell-border-block-end)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 196, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-empty-cell-border-right: 1px solid !default;", + "variable": "scheduler-views-empty-cell-border-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-empty-cell-border-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 197, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-empty-cell-border-left: 1px solid !default;", + "variable": "scheduler-views-empty-cell-border-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-empty-cell-border-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 198, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-first-child-border-left: 1px solid transparent !default;", + "variable": "scheduler-views-first-child-border-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-first-child-border-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 199, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-time-panel-border-bottom: 1px solid transparent !default;", + "variable": "scheduler-views-time-panel-border-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-time-panel-border-block-end)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 200, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-group-header-padding: 0 5px !default;", + "variable": "scheduler-views-group-header-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-group-header-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 201, + "widget": "scheduler", + "literals": [ + "5px", + "10px" + ], + "occurrences": 2, + "marker": null, + "text": "$scheduler-views-group-header-padding-alt: 0 5px 0 10px !default;", + "variable": "scheduler-views-group-header-padding-alt", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-sidebar-group-header-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 202, + "widget": "scheduler", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-time-indicator-height: 1px !default;", + "variable": "scheduler-views-time-indicator-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-time-indicator-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 203, + "widget": "scheduler", + "literals": [ + "40px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-group-header-content-height: 40px !default;", + "variable": "scheduler-views-group-header-content-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-group-header-content-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 204, + "widget": "scheduler", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-views-vertical-group-min-height: 100px !default;", + "variable": "scheduler-views-vertical-group-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-views-vertical-group-min-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 206, + "widget": "scheduler", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-min-height: 100px !default;", + "variable": "scheduler-timeline-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-min-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 207, + "widget": "scheduler", + "literals": [ + "160px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-two-empty-cell-width: 160px !default;", + "variable": "scheduler-timeline-group-two-empty-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-two-empty-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 208, + "widget": "scheduler", + "literals": [ + "80px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-header-width: 80px !default;", + "variable": "scheduler-timeline-group-header-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-header-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 209, + "widget": "scheduler", + "literals": [ + "240px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-three-empty-cell-width: 240px !default;", + "variable": "scheduler-timeline-group-three-empty-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-three-empty-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 210, + "widget": "scheduler", + "literals": [ + "200px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-cell-width: 200px !default;", + "variable": "scheduler-timeline-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 211, + "widget": "scheduler", + "literals": [ + "70px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-left-column-width: 70px !default;", + "variable": "scheduler-agenda-left-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-left-column-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 212, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-date-table-padding-top: 10px !default;", + "variable": "scheduler-agenda-date-table-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-date-table-padding-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 213, + "widget": "scheduler", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-renovation-virtual-row-height: 50px !default;", + "variable": "scheduler-renovation-virtual-row-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-virtual-row-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 270, + "widget": "scheduler", + "literals": [ + "7px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-content-horizontal-padding: 0 7px !default;", + "variable": "scheduler-appointment-content-horizontal-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-all-day-appointment-content-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 271, + "widget": "scheduler", + "literals": [ + "9px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-recurrence-icon-top: 9px !default;", + "variable": "scheduler-appointment-recurrence-icon-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-recurrence-icon-inset-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 272, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-header-panel-current-time-cell-height: 2px !default;", + "variable": "scheduler-header-panel-current-time-cell-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-header-panel-current-time-cell-height)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 273, + "widget": "scheduler", + "literals": [ + "25px", + "7px" + ], + "occurrences": 2, + "marker": null, + "text": "$scheduler-appointment-content-recurrence-padding: 0 25px 0 7px !default;", + "variable": "scheduler-appointment-content-recurrence-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-recurrence-appointment-content-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 274, + "widget": "scheduler", + "literals": [ + "7px", + "25px" + ], + "occurrences": 2, + "marker": null, + "text": "$scheduler-rtl-padding: 0 7px 0 25px !default;", + "variable": "scheduler-rtl-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-rtl-padding)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 275, + "widget": "scheduler", + "literals": [ + "24px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-collector-width: 24px !default;", + "variable": "scheduler-appointment-collector-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-collector-width)" + }, + { + "file": "scss/widgets/base/scheduler/_index.scss", + "line": 276, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-content-padding-right: 5px !default;", + "variable": "scheduler-appointment-content-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-content-padding-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 31, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-reduced-icon-top: 3px !default;", + "variable": "scheduler-appointment-reduced-icon-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-reduced-icon-inset-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 32, + "widget": "scheduler", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-active-marker-border-radius: 4px !default;", + "variable": "scheduler-appointment-active-marker-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-marker-border-radius-active)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 33, + "widget": "scheduler", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-content-details-margin-top: 2px !default;", + "variable": "scheduler-appointment-content-details-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-content-details-margin-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 34, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-appointment-reduced-icon-rtl-left: 3px !default;", + "variable": "scheduler-appointment-reduced-icon-rtl-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-appointment-reduced-icon-rtl-inset-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 62, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-item-padding: 10px !default;", + "variable": "agenda-appointment-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-item-padding)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 63, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-item-border-radius: 5px !default;", + "variable": "agenda-appointment-item-border-radius", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-item-border-radius)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 64, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-right-layout-margin-left: 10px !default;", + "variable": "agenda-appointment-right-layout-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-right-layout-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 65, + "widget": "scheduler", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-allday-padding-right: 5px !default;", + "variable": "agenda-appointment-allday-padding-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-allday-padding-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 66, + "widget": "scheduler", + "literals": [ + "15px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-resource-item-margin-left: 15px !default;", + "variable": "agenda-appointment-resource-item-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-resource-item-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 67, + "widget": "scheduler", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-resource-value-margin-left: 3px !default;", + "variable": "agenda-appointment-resource-value-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-resource-value-margin-inline-start)" + }, + { + "file": "scss/widgets/base/scheduler/appointment/_index.scss", + "line": 68, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$agenda-appointment-rtl-margin-right: 10px !default;", + "variable": "agenda-appointment-rtl-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-appointment-rtl-margin-inline-end)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 43, + "widget": "scheduler", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-workspace-info-font-size: 20px !default;", + "variable": "scheduler-workspace-info-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-workspace-info-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 44, + "widget": "scheduler", + "literals": [ + "14px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-small-font-size: 14px !default;", + "variable": "scheduler-small-font-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-small-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 51, + "widget": "scheduler", + "literals": [ + "30px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-group-header-table-cell-height: 30px !default;", + "variable": "scheduler-group-header-table-cell-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-group-header-cell-height)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 55, + "widget": "scheduler", + "literals": [ + "16px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-month-date-text-size: 16px !default;", + "variable": "scheduler-month-date-text-size", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-month-date-text-font-size)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 57, + "widget": "scheduler", + "literals": [ + "6px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-month-date-text-padding: 6px !default;", + "variable": "scheduler-month-date-text-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-month-date-text-padding)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 72, + "widget": "scheduler", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-min-height: 100px !default;", + "variable": "scheduler-timeline-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-min-height)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 73, + "widget": "scheduler", + "literals": [ + "160px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-two-empty-cell-width: 160px !default;", + "variable": "scheduler-timeline-group-two-empty-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-two-empty-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 74, + "widget": "scheduler", + "literals": [ + "80px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-header-width: 80px !default;", + "variable": "scheduler-timeline-group-header-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-header-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 75, + "widget": "scheduler", + "literals": [ + "240px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-group-three-empty-cell-width: 240px !default;", + "variable": "scheduler-timeline-group-three-empty-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-group-three-empty-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 76, + "widget": "scheduler", + "literals": [ + "200px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-cell-width: 200px !default;", + "variable": "scheduler-timeline-cell-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-cell-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 90, + "widget": "scheduler", + "literals": [ + "70px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-left-column-width: 70px !default;", + "variable": "scheduler-agenda-left-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-left-column-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 91, + "widget": "scheduler", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-date-table-padding-top: 10px !default;", + "variable": "scheduler-agenda-date-table-padding-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-date-table-padding-block-start)" + }, + { + "file": "scss/widgets/base/scheduler/views/_index.scss", + "line": 102, + "widget": "scheduler", + "literals": [ + "50px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-renovation-virtual-row-height: 50px !default;", + "variable": "scheduler-renovation-virtual-row-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-virtual-row-height)" + }, + { + "file": "scss/widgets/base/scheduler/views/agenda/_index.scss", + "line": 7, + "widget": "scheduler", + "literals": [ + "70px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-agenda-left-column-width: 70px !default;", + "variable": "scheduler-agenda-left-column-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-agenda-left-column-width)" + }, + { + "file": "scss/widgets/base/scheduler/views/timelines/_index.scss", + "line": 9, + "widget": "scheduler", + "literals": [ + "100px" + ], + "occurrences": 1, + "marker": null, + "text": "$scheduler-timeline-min-height: 100px !default;", + "variable": "scheduler-timeline-min-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scheduler/_index.scss", + "setTo": "var(--dx-scheduler-timeline-min-height)" + }, + { + "file": "scss/widgets/base/scrollable/_index.scss", + "line": 4, + "widget": "scrollable", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$scrollable-scroll-padding: 2px !default;", + "variable": "scrollable-scroll-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/scrollable/_index.scss", + "setTo": "var(--dx-scrollable-scroll-padding)" + }, + { + "file": "scss/widgets/base/splitter/_index.scss", + "line": 1, + "widget": "splitter", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$splitter-resize-handle-gap: 8px !default;", + "variable": "splitter-resize-handle-gap", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/splitter/_index.scss", + "setTo": "var(--dx-splitter-resize-handle-gap)" + }, + { + "file": "scss/widgets/base/stepper/layout/step/_mixins.scss", + "line": 71, + "widget": "stepper", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$indicator-ring-inset: 2px,", + "variable": "indicator-ring-inset", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/stepper/layout/step/_mixins.scss", + "line": 72, + "widget": "stepper", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$indicator-ring-size: 4px,", + "variable": "indicator-ring-size", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/stepper/layout/step/_mixins.scss", + "line": 73, + "widget": "stepper", + "literals": [ + "8px" + ], + "occurrences": 1, + "marker": null, + "text": "$indicator-halo-size: 8px,", + "variable": "indicator-halo-size", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/switch/_mixins.scss", + "line": 15, + "widget": "switch", + "literals": [ + "500px" + ], + "occurrences": 1, + "marker": null, + "text": "$switch-container-border-radius: 500px,", + "variable": "switch-container-border-radius", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/switch/_mixins.scss", + "line": 16, + "widget": "switch", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$switch-label-padding: 4px 0,", + "variable": "switch-label-padding", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/switch/_mixins.scss", + "line": 17, + "widget": "switch", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$switch-off-padding-bottom: 10px,", + "variable": "switch-off-padding-bottom", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_index.scss", + "line": 5, + "widget": "textEditor", + "literals": [ + "34px" + ], + "occurrences": 1, + "marker": null, + "text": "$texteditor-clear-button-area-width: 34px !default;", + "variable": "texteditor-clear-button-area-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/textEditor/_index.scss", + "setTo": "var(--dx-text-editor-clear-button-width)" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 160, + "widget": "textEditor", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$label-padding-inline: 2px,", + "variable": "label-padding-inline", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 161, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$label-border-radius: 1px,", + "variable": "label-border-radius", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 162, + "widget": "textEditor", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$label-backdrop-height: 3px,", + "variable": "label-backdrop-height", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 714, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$button-margin-block-start: 1px,", + "variable": "button-margin-block-start", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 715, + "widget": "textEditor", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$button-margin-block-end: 3px,", + "variable": "button-margin-block-end", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 716, + "widget": "textEditor", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$button-icon-margin-block-start: 1px,", + "variable": "button-icon-margin-block-start", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 717, + "widget": "textEditor", + "literals": [ + "3px" + ], + "occurrences": 1, + "marker": null, + "text": "$button-icon-margin-block-start-with-text: 3px,", + "variable": "button-icon-margin-block-start-with-text", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/textEditor/_mixins.scss", + "line": 718, + "widget": "textEditor", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$button-icononly-padding: 2px,", + "variable": "button-icononly-padding", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/timeView/_mixins.scss", + "line": 28, + "widget": "timeView", + "literals": [ + "182px" + ], + "occurrences": 1, + "marker": null, + "text": "$clock-size: 182px,", + "variable": "clock-size", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/timeView/_mixins.scss", + "line": 29, + "widget": "timeView", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$arrow-width: 10px,", + "variable": "arrow-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/timeView/_mixins.scss", + "line": 37, + "widget": "timeView", + "literals": [ + "4px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivot-size: 4px,", + "variable": "pivot-size", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/timeView/_mixins.scss", + "line": 38, + "widget": "timeView", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$pivot-offset: 5px,", + "variable": "pivot-offset", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/toolbar/_index.scss", + "line": 3, + "widget": "toolbar", + "literals": [ + "5px" + ], + "occurrences": 1, + "marker": null, + "text": "$toolbar-item-padding: 0 5px !default;", + "variable": "toolbar-item-padding", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toolbar/_index.scss", + "setTo": "var(--dx-toolbar-item-padding)" + }, + { + "file": "scss/widgets/base/toolbar/_index.scss", + "line": 4, + "widget": "toolbar", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$toolbar-group-margin: 0 10px !default;", + "variable": "toolbar-group-margin", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toolbar/_index.scss", + "setTo": "var(--dx-toolbar-group-margin)" + }, + { + "file": "scss/widgets/base/toolbar/_index.scss", + "line": 5, + "widget": "toolbar", + "literals": [ + "150px" + ], + "occurrences": 1, + "marker": null, + "text": "$toolbar-texteditor-width: 150px !default;", + "variable": "toolbar-texteditor-width", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/toolbar/_index.scss", + "setTo": "var(--dx-toolbar-text-editor-width)" + }, + { + "file": "scss/widgets/base/toolbar/_mixins.scss", + "line": 4, + "widget": "toolbar", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$outline-width: 2px,", + "variable": "outline-width", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/toolbar/_mixins.scss", + "line": 5, + "widget": "toolbar", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$outline-offset: 1px,", + "variable": "outline-offset", + "kind": "mixin-parameter", + "status": "parameter" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 27, + "widget": "treeList", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-expandable-node-line-height: 1px !default;", + "variable": "treelist-expandable-node-line-height", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-empty-space-height)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 32, + "widget": "treeList", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-sticky-column-border: 2px solid !default;", + "variable": "treelist-sticky-column-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-sticky-column-border)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 33, + "widget": "treeList", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-cell-focus-outline: 2px solid !default;", + "variable": "treelist-cell-focus-outline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-cell-outline-focused)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 55, + "widget": "treeList", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-header-filter-outline: 2px solid !default;", + "variable": "treelist-header-filter-outline", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-grid-outline-focused)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 56, + "widget": "treeList", + "literals": [ + "2px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-header-filter-outline-offset: 2px !default;", + "variable": "treelist-header-filter-outline-offset", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-outline-offset-focused)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 57, + "widget": "treeList", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-button-margin-left: 10px !default;", + "variable": "treelist-button-margin-left", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-form-buttons-margin-inline-start)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 58, + "widget": "treeList", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-button-margin-top: 10px !default;", + "variable": "treelist-button-margin-top", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-form-buttons-margin-block-start)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 59, + "widget": "treeList", + "literals": [ + "20px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-error-message-margin-bottom: 20px !default;", + "variable": "treelist-error-message-margin-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-error-message-margin-block-end)" + }, + { + "file": "scss/widgets/base/treeList/_index.scss", + "line": 60, + "widget": "treeList", + "literals": [ + "10px" + ], + "occurrences": 1, + "marker": null, + "text": "$treelist-button-margin-right: 10px !default;", + "variable": "treelist-button-margin-right", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeList/_index.scss", + "setTo": "var(--dx-tree-list-form-buttons-rtl-margin-inline-start)" + }, + { + "file": "scss/widgets/base/treeView/_index.scss", + "line": 10, + "widget": "treeView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$treeview-select-all-item-border-bottom: 1px solid !default;", + "variable": "treeview-select-all-item-border-bottom", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeView/_index.scss", + "setTo": "var(--dx-tree-view-select-all-item-border-block-end)" + }, + { + "file": "scss/widgets/base/treeView/_index.scss", + "line": 11, + "widget": "treeView", + "literals": [ + "1px" + ], + "occurrences": 1, + "marker": null, + "text": "$treeview-border-visible-border: 1px solid !default;", + "variable": "treeview-border-visible-border", + "kind": "module-variable", + "status": "injected", + "setBy": "scss/widgets/fluent-next/treeView/_index.scss", + "setTo": "var(--dx-tree-view-border-visible-border)" + } + ] +} diff --git a/packages/devextreme-scss/tools/stylelint/module-variable-default.mjs b/packages/devextreme-scss/tools/stylelint/module-variable-default.mjs index 1bf97bfbf8ce..e130b7831a05 100644 --- a/packages/devextreme-scss/tools/stylelint/module-variable-default.mjs +++ b/packages/devextreme-scss/tools/stylelint/module-variable-default.mjs @@ -1,3 +1,6 @@ +import { readFileSync } from 'fs'; +import { fileURLToPath } from 'url'; +import { dirname, join, resolve } from 'path'; import stylelint from 'stylelint'; const { @@ -13,6 +16,33 @@ const messages = ruleMessages(ruleName, { const meta = { fixable: true }; +const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..', '..'); + +const readMarkers = (vocabularyPath) => { + const { categories } = JSON.parse(readFileSync(join(packageRoot, vocabularyPath), 'utf8')); + return categories.map(({ marker }) => marker).filter(Boolean); +}; + +const classifyingComments = (decl) => { + const parts = []; + const trailing = decl.next(); + if (trailing?.type === 'comment' && trailing.source?.start?.line === decl.source?.end?.line) { + parts.push(trailing.text); + } + + let node = decl.prev(); + let gap = decl.raws.before ?? ''; + while (node?.type === 'comment' && !/\n\s*\n/.test(gap)) { + const owner = node.prev(); + if (owner && owner.source?.end?.line === node.source?.start?.line) break; + parts.push(node.text); + gap = node.raws.before ?? ''; + node = node.prev(); + } + + return parts.join('\n'); +}; + const isConditional = (node) => node.type === 'atrule' && ['if', 'else'].includes(node.name); const isModuleLevel = (decl) => { let node = decl.parent; @@ -22,8 +52,17 @@ const isModuleLevel = (decl) => { const hasFlag = (decl, flag) => new RegExp(`!${flag}\\b`, 'i').test(decl.value); const isNull = (decl) => /^null(\s+!default)?$/.test(decl.value.trim()); -const ruleFunction = (primary) => (root, result) => { - if (!validateOptions(result, ruleName, { actual: primary, possible: [true] })) return; +const ruleFunction = (primary, secondary) => (root, result) => { + if (!validateOptions( + result, + ruleName, + { actual: primary, possible: [true] }, + { actual: secondary, possible: { exemptMarkersFrom: [(value) => typeof value === 'string'] }, optional: true }, + )) return; + + const markers = secondary?.exemptMarkersFrom ? readMarkers(secondary.exemptMarkersFrom) : []; + const isClassified = (decl) => markers.length > 0 + && markers.some((marker) => classifyingComments(decl).includes(marker)); const assigned = new Set(); @@ -33,6 +72,7 @@ const ruleFunction = (primary) => (root, result) => { const reassignment = assigned.has(decl.prop); if (decl.parent.type === 'root' && !isNull(decl)) assigned.add(decl.prop); if (reassignment || hasFlag(decl, 'default') || hasFlag(decl, 'global')) return; + if (isClassified(decl)) return; report({ message: messages.expected, diff --git a/packages/devextreme-scss/tools/stylelint/no-identical-branch-declarations.mjs b/packages/devextreme-scss/tools/stylelint/no-identical-branch-declarations.mjs index 088b41e742bd..29c5b06e2e23 100644 --- a/packages/devextreme-scss/tools/stylelint/no-identical-branch-declarations.mjs +++ b/packages/devextreme-scss/tools/stylelint/no-identical-branch-declarations.mjs @@ -80,7 +80,8 @@ const identicalDeclarations = (branches) => { for (const [name, decl] of first) { const declarations = [decl, ...rest.map((byName) => byName.get(name))]; const value = normalise(decl.value); - if (declarations.every((other) => other && normalise(other.value) === value)) identical.set(name, declarations); + const sameEverywhere = declarations.every((other) => other && normalise(other.value) === value); + if (sameEverywhere) identical.set(name, declarations); } return identical; }; @@ -111,7 +112,8 @@ const planMoves = (branches, identical) => { } }; const readByStaying = (name) => walkFinds(branches, (decl, branch) => ( - !(movable.has(decl.prop) && decl.parent === branch) && localReferences(decl.value).includes(name) + !(movable.has(decl.prop) && decl.parent === branch) + && localReferences(decl.value).includes(name) )); for (let changed = true; changed;) { @@ -140,6 +142,17 @@ const declaredBetween = (parent, after, before, name) => parent.nodes .slice(parent.index(after) + 1, parent.index(before)) .some((node) => isVariable(node) && node.prop === name); +const trailingComment = (decl) => { + const next = decl.next(); + const sameLine = next?.type === 'comment' && next.source?.start?.line === decl.source?.end?.line; + return sameLine ? next : undefined; +}; + +const trailersAgree = (declarations) => { + const texts = declarations.map((decl) => trailingComment(decl)?.text); + return texts.every((text) => text === texts[0]); +}; + const attachedComment = (decl) => { const previous = decl.prev(); const attached = previous?.type === 'comment' && !/\n[ \t]*\n/.test(decl.raws.before ?? ''); @@ -171,7 +184,10 @@ const ruleFunction = (primary) => (root, result) => { const [first] = declarations; const earlier = earlierDeclaration(parent, ifRule, name); const overridden = earlier !== undefined && !isNull(earlier.value); - const fixable = overridden ? declarations.every((decl) => hasDefaultFlag(decl.value)) : movable.has(name); + const fixable = trailersAgree(declarations) + && (overridden + ? declarations.every((decl) => hasDefaultFlag(decl.value)) + : movable.has(name)); const fix = () => { const live = branches.filter((branch) => branch.parent); @@ -184,16 +200,23 @@ const ruleFunction = (primary) => (root, result) => { if (parent.type === 'root' && parent.first) parent.first.raws.before = ''; }; + const dropDeclarations = () => declarations.forEach((decl) => { + trailingComment(decl)?.remove(); + decl.remove(); + }); + if (overridden) { - declarations.forEach((decl) => decl.remove()); + dropDeclarations(); tidy(); return; } const hoisted = first.clone(); + const trailerSource = trailingComment(first); + const trailer = trailerSource?.clone({ raws: { ...trailerSource.raws, before: ' ' } }); const references = localReferences(first.value); const comment = earlier && attachedComment(earlier); - declarations.forEach((decl) => decl.remove()); + dropDeclarations(); const relocate = (insert, gap) => { const indent = indentOf(ifRule); @@ -201,6 +224,7 @@ const ruleFunction = (primary) => (root, result) => { hoisted.raws.before = moved ? `\n${indent}` : `${gap}${indent}`; if (moved) insert(moved); insert(hoisted, moved); + if (trailer) parent.insertAfter(hoisted, trailer); comment?.remove(); earlier?.remove(); }; @@ -209,9 +233,11 @@ const ruleFunction = (primary) => (root, result) => { const anchor = lastHoisted.get(ifRule) ?? live[live.length - 1]; relocate((node, previous) => parent.insertAfter(previous ?? anchor, node), lastHoisted.has(ifRule) ? '\n' : '\n\n'); lastHoisted.set(ifRule, hoisted); - } else if (earlier && !references.some((ref) => declaredBetween(parent, earlier, ifRule, ref))) { + } else if (earlier + && !references.some((ref) => declaredBetween(parent, earlier, ifRule, ref))) { hoisted.raws.before = earlier.raws.before; earlier.replaceWith(hoisted); + if (trailer) parent.insertAfter(hoisted, trailer); } else { relocate((node, previous) => (previous ? parent.insertAfter(previous, node) : parent.insertBefore(ifRule, node)), '\n'); } diff --git a/packages/devextreme-scss/tools/tokens/report.ts b/packages/devextreme-scss/tools/tokens/report.ts new file mode 100644 index 000000000000..48c125518477 --- /dev/null +++ b/packages/devextreme-scss/tools/tokens/report.ts @@ -0,0 +1,260 @@ +/* + * What a design-token package bump did, as data and as the markdown tools/tokens/update.mjs prints. + * + * Kept free of the file system and of `process` so both sides can use it: the update command loads + * it through Node's type stripping, tests/tokens-report.test.ts imports it directly. The same split + * build/tokens/consumed-tokens.ts uses. + */ + +export type Declarations = Map; + +export type GeneratedOutput = Map; + +export interface NameDiff { added: string[]; removed: string[] } + +export interface ValueChange { file: string; name: string; was: string; now: string } + +export interface DeclarationRef { file: string; name: string } + +export interface OutputDiff { + changed: ValueChange[]; + gone: DeclarationRef[]; + appeared: DeclarationRef[]; +} + +export interface Report { + package: string; + versionBefore: string; + versionAfter: string; + countBefore: number; + countAfter: number; + names: NameDiff; + lostConsumed: string[]; + output: OutputDiff; +} + +export const parseDeclarations = (css: string): Declarations => new Map( + [...css.matchAll(/(--dxds-[\w-]+)\s*:\s*([^;\n}]+)/g)].map(([, name, value]) => [name, value.trim()]), +); + +const byCodepoint = (left: string, right: string): number => (left < right ? -1 : 1); + +const missingFrom = (names: Iterable, present: ReadonlySet): string[] => [ + ...new Set([...names].filter((name) => !present.has(name))), +].sort(byCodepoint); + +export const diffNames = (before: Iterable, after: Iterable): NameDiff => ({ + added: missingFrom(after, new Set(before)), + removed: missingFrom(before, new Set(after)), +}); + +export const findLostConsumed = ( + consumed: Iterable, + available: ReadonlySet, +): string[] => missingFrom(consumed, available); + +const byFileThenName = ( + left: DeclarationRef, + right: DeclarationRef, +): number => (left.file === right.file + ? byCodepoint(left.name, right.name) + : byCodepoint(left.file, right.file)); + +export const diffGenerated = (before: GeneratedOutput, after: GeneratedOutput): OutputDiff => { + const changed: ValueChange[] = []; + const gone: DeclarationRef[] = []; + const appeared: DeclarationRef[] = []; + + before.forEach((declarations, file) => { + const now = after.get(file) ?? new Map(); + + declarations.forEach((was, name) => { + const value = now.get(name); + + if (value === undefined) { + gone.push({ file, name }); + } else if (value !== was) { + changed.push({ + file, name, was, now: value, + }); + } + }); + }); + + after.forEach((declarations, file) => { + const previously = before.get(file) ?? new Map(); + + declarations.forEach((_, name) => { + if (!previously.has(name)) { + appeared.push({ file, name }); + } + }); + }); + + return { + changed: changed.sort(byFileThenName), + gone: gone.sort(byFileThenName), + appeared: appeared.sort(byFileThenName), + }; +}; + +const section = (title: string, lines: string[]): string => [ + `## ${title}`, + '', + lines.length ? lines.join('\n') : '_none_', + '', +].join('\n'); + +const reference = ({ file, name }: DeclarationRef): string => `- \`${file}\`: \`${name}\``; + +export const renderReport = (report: Report): string => { + const { names, output } = report; + + const heading = report.versionBefore === report.versionAfter + ? `# ${report.package} ${report.versionAfter}` + : `# ${report.package}: ${report.versionBefore} → ${report.versionAfter}`; + + return [ + heading, + '', + '| | before | after |', + '|---|---|---|', + `| tokens | ${report.countBefore} | ${report.countAfter} |`, + `| added | | ${names.added.length} |`, + `| removed | | ${names.removed.length} |`, + '', + section( + `Read by the theme, gone from the package (${report.lostConsumed.length})`, + report.lostConsumed.map((name) => `- \`${name}\` — the token build will refuse to run`), + ), + section( + `Values that moved in the generated output (${output.changed.length})`, + output.changed.map(({ + file, name, was, now, + }) => `- \`${file}\`: \`${name}\`\n` + + ` - was: \`${was}\`\n - now: \`${now}\``), + ), + section(`Gone from the generated output (${output.gone.length})`, output.gone.map(reference)), + section( + `New in the generated output (${output.appeared.length})`, + output.appeared.map(reference), + ), + ...(output.changed.length || output.gone.length + ? ['This is what the bump costs: values moved, so the etalon screenshots have to be ' + + 're-recorded and looked at.', ''] + : []), + ].join('\n'); +}; + +export interface TerminalOptions { + color?: boolean; + limit?: number; +} + +const DEFAULT_LIMIT = 12; + +const paint = (code: string, text: string, color: boolean): string => (color ? `\u001B[${code}m${text}\u001B[0m` : text); + +const bold = (text: string, color: boolean): string => paint('1', text, color); +const dim = (text: string, color: boolean): string => paint('2', text, color); +const red = (text: string, color: boolean): string => paint('31', text, color); +const yellow = (text: string, color: boolean): string => paint('33', text, color); + +const capped = (lines: string[], limit: number): string[] => (lines.length > limit + ? [...lines.slice(0, limit), ` … and ${lines.length - limit} more`] + : lines); + +const pad = (text: string, width: number): string => text + ' '.repeat(Math.max(0, width - text.length)); + +const groupByFile = ( + entries: T[], + line: (entry: T, width: number) => string, +): string[] => { + const files = [...new Set(entries.map(({ file }) => file))]; + + return files.flatMap((file) => { + const inFile = entries.filter((entry) => entry.file === file); + const width = Math.max(...inFile.map(({ name }) => name.length)); + + return [` ${file}`, ...inFile.map((entry) => line(entry, width))]; + }); +}; + +const groupCapped = ( + entries: T[], + limit: number, + line: (entry: T, width: number) => string, +): string[] => { + const shown = entries.slice(0, limit); + const omitted = entries.slice(limit); + const seen = new Set(shown.map(({ file }) => file)); + const unseen = new Set( + omitted.filter(({ file }) => !seen.has(file)).map(({ file }) => file), + ).size; + + return [ + ...groupByFile(shown, line), + ...(omitted.length + ? [` … and ${omitted.length} more${unseen ? `, ${unseen} file(s) not shown` : ''}`] + : []), + ]; +}; + +export const renderPreamble = (report: Report, options: TerminalOptions = {}): string => { + const color = options.color ?? false; + const limit = options.limit ?? DEFAULT_LIMIT; + const { names } = report; + const lines: string[] = []; + + lines.push(report.versionBefore === report.versionAfter + ? `${bold(report.package, color)} ${report.versionAfter}` + : `${bold(report.package, color)} ${report.versionBefore} → ${bold(report.versionAfter, color)}`); + + const delta = names.added.length || names.removed.length + ? dim(` (+${names.added.length} −${names.removed.length})`, color) + : ''; + + lines.push(`tokens ${report.countBefore} → ${report.countAfter}${delta}`, ''); + + if (report.lostConsumed.length) { + lines.push(red(`the theme reads ${report.lostConsumed.length} name(s) this package no longer has`, color)); + lines.push(...capped(report.lostConsumed.map((name) => ` ${name}`), limit)); + lines.push(dim(' the token build will refuse to run', color), ''); + } + + return lines.join('\n'); +}; + +export const renderTerminal = (report: Report, options: TerminalOptions = {}): string => { + const color = options.color ?? false; + const limit = options.limit ?? DEFAULT_LIMIT; + const { output } = report; + const lines: string[] = [renderPreamble(report, options)]; + + if (output.changed.length) { + lines.push(`values that moved (${output.changed.length})`); + lines.push(...groupCapped( + output.changed, + limit, + ({ name, was, now }, width) => ` ${pad(name, width)} ${was} → ${bold(now, color)}`, + ), ''); + } + + if (output.gone.length) { + lines.push(`gone from the generated output (${output.gone.length})`); + lines.push(...groupCapped(output.gone, limit, ({ name }) => ` ${name}`), ''); + } + + if (output.appeared.length) { + lines.push(`new in the generated output (${output.appeared.length})`); + lines.push(...groupCapped(output.appeared, limit, ({ name }) => ` ${name}`), ''); + } + + if (output.changed.length || output.gone.length) { + lines.push(yellow('values moved — re-record the etalon screenshots and look at them', color), ''); + } else if (!report.lostConsumed.length) { + lines.push(dim('nothing moved in the generated output', color), ''); + } + + return lines.join('\n'); +}; diff --git a/packages/devextreme-scss/tools/tokens/update.mjs b/packages/devextreme-scss/tools/tokens/update.mjs new file mode 100644 index 000000000000..1cdfca8d2ee1 --- /dev/null +++ b/packages/devextreme-scss/tools/tokens/update.mjs @@ -0,0 +1,182 @@ +/* + * One command for a design-token package bump, and the report that goes with it. + * + * pnpm run tokens:update 262.24.0 # bump, reinstall, rebuild, regenerate, report + * pnpm run tokens:update # report the installed package, change nothing + * pnpm run tokens:update --report # the same, stated explicitly + * + * The four manual steps — edit the dependency, reinstall, rebuild the tokens, regenerate the + * registries — are the cheap part. It stops there: the themes are not rebuilt, so the CSS bundles + * on disk still come from the previous package until `nx build:themes` runs. The expensive part is + * knowing what the new package did, and that is what the report is for: names the theme reads and + * the package no longer has (the build refuses those), and every generated value that moved. The + * second list is the one that costs etalon screenshots, so it is printed per file with old and new + * side by side. + * + * What stays manual on purpose: approving the Renovate pull request, and re-recording the etalons. + * A bot can do neither — our etalons are pixels, and a value change has to be looked at. + * + * The install runs with --no-frozen-lockfile, which is the only way to move a pinned dependency, + * and pnpm takes the opportunity to normalise the rest of the lockfile. Read that diff before + * committing it: everything beyond this package is pnpm's housekeeping, not part of the bump. + * + * Everything here is file system and process; the diffing and the markdown live in report.ts, where + * tests/tokens-report.test.ts can reach them. + */ + +import { execFileSync } from 'node:child_process'; +import { readdirSync, readFileSync, writeFileSync } from 'node:fs'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; + +import { getBridgeFiles, THEME_FOLDER } from '../../build/tokens/sources.mjs'; +import { + buildAvailableNames, + collectCustomPropertyReferences, + collectTokenReferences, +} from '../../build/tokens/consumed-tokens.ts'; +import { + diffGenerated, + diffNames, + findLostConsumed, + parseDeclarations, + renderPreamble, + renderReport, + renderTerminal, +} from './report.ts'; + +const here = path.dirname(fileURLToPath(import.meta.url)); +const packageRoot = path.resolve(here, '..', '..'); +const repoRoot = path.resolve(packageRoot, '..', '..'); +const generatedRoot = path.join(packageRoot, 'scss', '_design-system'); +const themeRoot = path.join(packageRoot, 'scss', 'widgets', THEME_FOLDER); +const manifestPath = path.join(packageRoot, 'package.json'); +const PACKAGE = '@devexpress/design-tokens-internal'; + +const tokensPackage = path.join(packageRoot, 'node_modules', PACKAGE); + +const walk = (dir, extension) => readdirSync(dir, { withFileTypes: true, recursive: true }) + .filter((entry) => entry.isFile() && entry.name.endsWith(extension)) + .map((entry) => path.join(entry.parentPath, entry.name)); + +const readFlatTokens = () => { + const { version, tokens } = JSON.parse( + readFileSync(path.join(tokensPackage, 'tokens.flat.json'), 'utf8'), + ); + + return { version, names: Object.keys(tokens) }; +}; + +const readGenerated = () => new Map(walk(generatedRoot, '.scss').map((file) => [ + path.relative(generatedRoot, file), + parseDeclarations(readFileSync(file, 'utf8')), +])); + +const readConsumed = () => { + const consumed = new Set(); + + walk(themeRoot, '.scss').forEach((file) => { + const content = readFileSync(file, 'utf8'); + const source = path.relative(themeRoot, file); + + collectTokenReferences(content, source).forEach((name) => consumed.add(name)); + collectCustomPropertyReferences(content, source).forEach((name) => consumed.add(name)); + }); + + return consumed; +}; + +const plain = Boolean(process.env.NO_COLOR); +const interactive = process.stdout.isTTY === true; +const color = interactive && !plain; + +const progressColor = process.stderr.isTTY === true && !plain; + +const show = (report) => { + process.stdout.write(interactive + ? `\n${renderTerminal(report, { color })}` + : `\n${renderReport(report)}`); +}; + +const run = (command, args, cwd) => { + process.stderr.write(`\n$ ${command} ${args.join(' ')}\n`); + + try { + execFileSync(command, args, { cwd, stdio: ['inherit', 2, 'inherit'] }); + + return true; + } catch { + process.stderr.write(`\n${command} ${args.join(' ')} failed — see its output above.\n`); + + return false; + } +}; + +const setDependency = (version) => { + const manifest = JSON.parse(readFileSync(manifestPath, 'utf8')); + + manifest.devDependencies[PACKAGE] = version; + writeFileSync(manifestPath, `${JSON.stringify(manifest, null, 2)}\n`); +}; + +const [target] = process.argv.slice(2); + +const reportOnly = target === undefined || target === '--report'; + +if (!reportOnly && !/^\d+\.\d+\.\d+(-[\w.]+)?$/.test(target)) { + process.stderr.write(`"${target}" is not a version\n` + + 'usage: pnpm run tokens:update [] # without a version: report only\n'); + process.exit(1); +} +const before = { ...readFlatTokens(), generated: readGenerated() }; + +const giveUp = (version) => { + process.stderr.write(`\npackage.json asks for ${version} now.\n` + + `To go back: pnpm run tokens:update ${before.version}\n`); + process.exit(1); +}; + +if (!reportOnly) { + setDependency(target); + + if (!run('pnpm', ['install', '--no-frozen-lockfile'], repoRoot)) { + giveUp(target); + } +} + +const after = readFlatTokens(); +const summary = { + package: PACKAGE, + versionBefore: before.version, + versionAfter: after.version, + countBefore: before.names.length, + countAfter: after.names.length, + names: diffNames(before.names, after.names), + lostConsumed: findLostConsumed( + readConsumed(), + buildAvailableNames(after.names, new Set(getBridgeFiles())), + ), +}; + +if (!reportOnly) { + process.stderr.write(`\n${renderPreamble(summary, { color: progressColor })}\n`); + + const rebuilt = run('node', ['build/tokens/build-tokens.mjs'], packageRoot) + && run('node', ['tools/naming/derive-registries.mjs'], packageRoot); + + if (!rebuilt) { + giveUp(after.version); + } +} + +const report = { ...summary, output: diffGenerated(before.generated, readGenerated()) }; + +show(report); + +if (!reportOnly) { + process.stderr.write('\nThis rebuilt the token layer, not the themes — ' + + 'packages/devextreme/artifacts/css still holds the previous bundles.\n' + + 'Next: pnpm nx build:themes devextreme-scss, then the etalons if any value moved.\n' + + `\nCheck \`git diff pnpm-lock.yaml\`: anything in it beyond ${PACKAGE} is pnpm normalising ` + + 'the lockfile, not this bump.\n'); +} diff --git a/packages/devextreme-scss/tsconfig.json b/packages/devextreme-scss/tsconfig.json new file mode 100644 index 000000000000..1e0f6a258254 --- /dev/null +++ b/packages/devextreme-scss/tsconfig.json @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "noEmit": true, + "strict": true, + "target": "es2022", + "module": "preserve", + "moduleResolution": "bundler", + "lib": [ + "es2022" + ], + "types": [ + "node", + "jest" + ], + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "esModuleInterop": true, + "noUnusedLocals": true, + "noUnusedParameters": true + }, + "include": [ + "build/tokens/**/*.ts", + "tools/naming/**/*.ts", + "tools/tokens/**/*.ts", + "tests/**/*.ts" + ] +} diff --git a/packages/devextreme-themebuilder/src/metadata/collector.ts b/packages/devextreme-themebuilder/src/metadata/collector.ts index 09fbf044e686..4301b7a680ac 100644 --- a/packages/devextreme-themebuilder/src/metadata/collector.ts +++ b/packages/devextreme-themebuilder/src/metadata/collector.ts @@ -1,13 +1,21 @@ import { promises as fs } from 'fs'; import { - resolve, relative, join, dirname, + resolve, relative, join, dirname, sep, } from 'path'; import MetadataGenerator from './generator'; +import internalScssPaths from '../../../devextreme-scss/build/internal-scss-paths.json'; + +const isInternalScssPath = (relativePath: string): boolean => { + const posixPath = relativePath.split(sep).join('/'); + return internalScssPaths.some((internalPath) => posixPath.startsWith(internalPath)); +}; export default class MetadataCollector { generator = new MetadataGenerator(); static async saveScssFiles(files: Promise, destination: string): Promise { + await fs.rm(resolve(destination), { recursive: true, force: true }); + await Promise.all((await files).map(async (file) => { const absolutePath = resolve(join(destination, file.path)); const directory = dirname(absolutePath); @@ -35,7 +43,8 @@ export default class MetadataCollector { dirName: string, handler: (content: string) => string, ): Promise { - const fileList = await this.getFileList(dirName); + const fileList = (await this.getFileList(dirName)) + .filter((filePath) => !isInternalScssPath(relative(dirName, filePath))); return Promise.all(fileList.map(async (filePath) => { const relativePath = relative(dirName, filePath); diff --git a/packages/devextreme-themebuilder/tests/data/scss/_design-system/fluent/accents/blue.scss b/packages/devextreme-themebuilder/tests/data/scss/_design-system/fluent/accents/blue.scss new file mode 100644 index 000000000000..b7fb0c97dace --- /dev/null +++ b/packages/devextreme-themebuilder/tests/data/scss/_design-system/fluent/accents/blue.scss @@ -0,0 +1,3 @@ +:root { + --dxds-primary-100: #0f6cbd; +} diff --git a/packages/devextreme-themebuilder/tests/data/scss/_design-system/variables/_ds.scss b/packages/devextreme-themebuilder/tests/data/scss/_design-system/variables/_ds.scss new file mode 100644 index 000000000000..09edaffa3110 --- /dev/null +++ b/packages/devextreme-themebuilder/tests/data/scss/_design-system/variables/_ds.scss @@ -0,0 +1 @@ +$primary-100: var(--dxds-primary-100); diff --git a/packages/devextreme-themebuilder/tests/data/scss/bundles/dx.fluent-next.blue.light.scss b/packages/devextreme-themebuilder/tests/data/scss/bundles/dx.fluent-next.blue.light.scss new file mode 100644 index 000000000000..7e67cd53ee5f --- /dev/null +++ b/packages/devextreme-themebuilder/tests/data/scss/bundles/dx.fluent-next.blue.light.scss @@ -0,0 +1 @@ +@use "../widgets/fluent-next/colors" with ($color: "blue", $mode: "light"); diff --git a/packages/devextreme-themebuilder/tests/data/scss/widgets/fluent-next/_colors.scss b/packages/devextreme-themebuilder/tests/data/scss/widgets/fluent-next/_colors.scss new file mode 100644 index 000000000000..feece888aa44 --- /dev/null +++ b/packages/devextreme-themebuilder/tests/data/scss/widgets/fluent-next/_colors.scss @@ -0,0 +1,3 @@ +@use "../../_design-system/variables/ds" as ds; + +$base-accent: ds.$primary-100; diff --git a/packages/devextreme-themebuilder/tests/metadata/collector.test.ts b/packages/devextreme-themebuilder/tests/metadata/collector.test.ts index 1334e81f9621..a213745ecb74 100644 --- a/packages/devextreme-themebuilder/tests/metadata/collector.test.ts +++ b/packages/devextreme-themebuilder/tests/metadata/collector.test.ts @@ -1,4 +1,6 @@ -import { join, resolve, dirname } from 'path'; +import { + join, resolve, dirname, relative, +} from 'path'; import { promises } from 'fs'; import MetadataCollector from '../../src/metadata/collector'; @@ -7,7 +9,7 @@ const rootDir = join(__dirname, '..', '..'); const scssDir = join(rootDir, 'tests', 'data', 'scss'); describe('MetadataCollector', () => { - const expectedFileList: string[] = [ + const exposedFileList: string[] = [ join('bundles', 'dx.light.scss'), join('bundles', 'dx.material.blue.light.scss'), join('widgets', 'generic', 'accordion', '_colors.scss'), @@ -21,8 +23,16 @@ describe('MetadataCollector', () => { join('widgets', 'material', '_index.scss'), ]; + const internalFileList: string[] = [ + join('_design-system', 'fluent', 'accents', 'blue.scss'), + join('_design-system', 'variables', '_ds.scss'), + join('widgets', 'fluent-next', '_colors.scss'), + join('bundles', 'dx.fluent-next.blue.light.scss'), + ]; + promises.mkdir = jest.fn(); promises.writeFile = jest.fn(); + promises.rm = jest.fn(); beforeEach(() => { jest.clearAllMocks(); @@ -31,22 +41,26 @@ describe('MetadataCollector', () => { test('getFileList', async () => { const collector = new MetadataCollector(); const fileList = await collector.getFileList(join(rootDir, 'tests', 'data', 'scss')); - const expectedFullPaths = expectedFileList.map((file) => join(scssDir, file)); + const expectedFullPaths = [...exposedFileList, ...internalFileList] + .map((file) => join(scssDir, file)); expect(fileList.length).toBe(expectedFullPaths.length); fileList.forEach((file) => expect(expectedFullPaths).toContain(file)); }); - test('readFiles', async () => { + test('readFiles keeps out the paths the scss package marks as internal', async () => { const collector = new MetadataCollector(); const handler = (content: string): string => content; - const filesInfo = await collector.readFiles(join(rootDir, 'tests', 'data', 'scss'), handler); + const onDisk = (await collector.getFileList(scssDir)).map((file) => relative(scssDir, file)); + const filesInfo = await collector.readFiles(scssDir, handler); + const returnedPaths = filesInfo.map((file) => file.path); - expect(filesInfo.length).toBe(expectedFileList.length); + expect(onDisk.filter((file) => !returnedPaths.includes(file)).sort()) + .toEqual([...internalFileList].sort()); + expect(returnedPaths.sort()).toEqual([...exposedFileList].sort()); filesInfo.forEach((file) => { - expect(expectedFileList).toContain(file.path); expect(typeof file.content).toBe('string'); expect(file.content.length).toBeGreaterThan(0); }); @@ -79,6 +93,17 @@ describe('MetadataCollector', () => { expect(promises.writeFile).toHaveBeenCalledWith(expectedDestinationPath, fileContent); }); + test('saveScssFiles wipes the destination so sources deleted upstream stop shipping', async () => { + const destinationPath = './scss'; + + await MetadataCollector.saveScssFiles(Promise.resolve([]), destinationPath); + + expect(promises.rm).toHaveBeenCalledWith( + resolve(destinationPath), + { recursive: true, force: true }, + ); + }); + test('saveMetadata', async () => { const collector = new MetadataCollector(); const version = '1.1.1'; diff --git a/packages/devextreme-themebuilder/tests/modules/themes.test.ts b/packages/devextreme-themebuilder/tests/modules/themes.test.ts index c6fbef7def7a..e78a325a5f37 100644 --- a/packages/devextreme-themebuilder/tests/modules/themes.test.ts +++ b/packages/devextreme-themebuilder/tests/modules/themes.test.ts @@ -4,10 +4,12 @@ import themes from '../../src/modules/themes'; describe('Themes', () => { test('check components and theme builder themes', () => { - const knownThemes: string[] = getThemes().map( - ([theme, size, color, mode = null]: [string, string, string, string | null]): string => - `${theme}.${color}${mode ? `-${mode}` : ''}${size === 'default' ? '' : '-compact'}` - ); + const knownThemes: string[] = getThemes() + .filter(([theme]: [string]) => theme !== 'fluent-next') + .map( + ([theme, size, color, mode = null]: [string, string, string, string | null]): string => + `${theme}.${color}${mode ? `-${mode}` : ''}${size === 'default' ? '' : '-compact'}` + ); const builderThemes: string[] = themes.map((t) => `${t.name}.${t.colorScheme}`); const nonListedBuilderThemes: string[] = knownThemes.filter((t) => !builderThemes.includes(t)); diff --git a/packages/devextreme/js/__internal/core/errors.ts b/packages/devextreme/js/__internal/core/errors.ts index 75b859fe73a2..4e52eca493ea 100644 --- a/packages/devextreme/js/__internal/core/errors.ts +++ b/packages/devextreme/js/__internal/core/errors.ts @@ -126,4 +126,8 @@ export default errorUtils({ W0023: 'DevExtreme: the following \'devextreme\' package version does not match versions of other DevExpress products used in this application:\n\n' + '{0}\n\n' + 'Interoperability between different versions of the products listed herein cannot be guaranteed.\n\n', + + W0024: 'Invalid accent color: \'{0}\'. The previous accent color remains in effect.', + + W0025: 'The \'{0}\' theme does not support custom accent colors. Apply a Fluent Next theme to use the \'customAccentColor\' method.', }); diff --git a/packages/devextreme/js/__internal/core/utils/__tests__/css_variables.test.ts b/packages/devextreme/js/__internal/core/utils/__tests__/css_variables.test.ts new file mode 100644 index 000000000000..7aabec10ac50 --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/__tests__/css_variables.test.ts @@ -0,0 +1,219 @@ +import { + describe, expect, it, jest, +} from '@jest/globals'; +import { + copyResolvedStyles, + fallbackOf, + isCssVariableReference, + paintedColor, + portableColor, + resolvedInScope, +} from '@ts/core/utils/css_variables'; + +describe('telling a reference from a value', () => { + it.each([ + 'var(--dx-viz-blue, #0078d4)', + 'var( --dx-viz-blue )', + 'color-mix(in srgb, var(--dx-viz-blue, #0078d4) 50%, #fff)', + ])('sees a name in %s', (value) => { + expect(isCssVariableReference(value)).toBe(true); + }); + + it.each(['#0078d4', 'rgb(0, 120, 212)', '', undefined, null, 42])('sees no name in %s', (value) => { + expect(isCssVariableReference(value)).toBe(false); + }); +}); + +describe('the literal written beside a name', () => { + it('is what the theme falls back to', () => { + expect(fallbackOf('var(--dx-viz-blue, #0078d4)')).toBe('#0078d4'); + }); + + it('is read through the spacing the author used', () => { + expect(fallbackOf('var( --dx-viz-blue , #0078d4 )')).toBe('#0078d4'); + }); + + it('is the first one when a value mixes two names', () => { + expect(fallbackOf('color-mix(in srgb, var(--dx-viz-blue, #0078d4) 50%, var(--dx-viz-green, #008f04))')) + .toBe('#0078d4'); + }); + + it('is the value itself when there is nothing to fall back to', () => { + expect(fallbackOf('#0078d4')).toBe('#0078d4'); + expect(fallbackOf('var(--dx-viz-blue)')).toBe('var(--dx-viz-blue)'); + }); +}); + +describe('resolving a value against the scope it is painted in', () => { + it('hands back anything that is not a reference', () => { + expect(resolvedInScope('#0078d4', document.body)).toBe('#0078d4'); + }); + + it('falls back to the literal when the page declares no such name', () => { + expect(resolvedInScope('var(--nowhere-at-all, #0078d4)', document.body)).toBe('#0078d4'); + }); + + it('falls back to the literal when there is no element to ask', () => { + expect(resolvedInScope('var(--dx-viz-blue, #0078d4)', undefined)).toBe('#0078d4'); + }); +}); + +describe('a painted value in a form any reader takes', () => { + it.each([ + ['rgb(11, 7, 3)', '#0b0703'], + ['rgba(1, 2, 3, 0.5)', 'rgba(1, 2, 3, 0.5)'], + ['color(srgb 0 0.5 0.4)', '#008066'], + ['color(srgb 1.02745 -0.2 0.5 / 0.25)', 'rgba(255, 0, 128, 0.25)'], + ])('turns %s into %s', (painted, handedOut) => { + expect(portableColor(painted)).toBe(handedOut); + }); + + it.each([ + 'oklch(0.55 0.15 250)', + 'color(display-p3 1 0 0)', + 'none', + 'rgb(from var(--dx-viz-blue, #0078d4) r g b)', + ])('does not read %s as channels', (painted) => { + expect(portableColor(painted)).toBeUndefined(); + }); +}); + +describe('the colour a value is painted with, handed out', () => { + const paintedWith = (...answers: string[]): { element: HTMLElement; restore: () => void } => { + const element = document.createElement('div'); + const computed = jest.spyOn(window, 'getComputedStyle'); + + answers.forEach((fill) => { + computed.mockReturnValueOnce({ fill } as unknown as CSSStyleDeclaration); + }); + document.body.appendChild(element); + + return { + element, + restore: (): void => { + computed.mockRestore(); + element.remove(); + }, + }; + }; + + it('is what the browser painted, when it answers in sRGB', () => { + const { element, restore } = paintedWith('rgb(11, 7, 3)'); + + expect(paintedColor('var(--dx-viz-blue, #0078d4)', element)).toBe('#0b0703'); + + restore(); + }); + + it('is brought to sRGB when the page declared the name in another colour space', () => { + const { element, restore } = paintedWith('oklch(0.55 0.15 250)', 'color(srgb 0.0595434 0.455324 0.770876)'); + + expect(paintedColor('var(--dx-viz-blue, #0078d4)', element)).toBe('#0f74c5'); + + restore(); + }); + + it('is the literal written beside the name when the browser answers no colour at all', () => { + const { element, restore } = paintedWith('none', 'none'); + + expect(paintedColor('var(--dx-viz-blue, #0078d4)', element)).toBe('#0078d4'); + + restore(); + }); +}); + +describe('copying resolved styles onto a detached copy', () => { + const svgWith = (markup: string): SVGElement => { + const host = document.createElement('div'); + + host.innerHTML = `${markup}`; + document.body.appendChild(host); + + return host.firstElementChild as SVGElement; + }; + + it('replaces a reference in a style with what the live node is painted with', () => { + const source = svgWith(''); + const rect = source.firstElementChild as SVGElement; + + rect.style.setProperty('fill', 'red'); + + const copy = source.cloneNode(true) as SVGElement; + const copiedRect = copy.firstElementChild as SVGElement; + + copiedRect.style.setProperty('fill', 'var(--dx-viz-blue, #0078d4)'); + copyResolvedStyles(source, copy); + + expect(copiedRect.style.getPropertyValue('fill')).toBe('red'); + }); + + it('replaces a reference in an attribute the same way', () => { + const source = svgWith(''); + const rect = source.firstElementChild as SVGElement; + + rect.style.setProperty('fill', 'red'); + + const copy = source.cloneNode(true) as SVGElement; + const copiedRect = copy.firstElementChild as SVGElement; + + copiedRect.setAttribute('fill', 'var(--dx-viz-blue, #0078d4)'); + copyResolvedStyles(source, copy); + + expect(copiedRect.getAttribute('fill')).toBe('red'); + }); + + it('leaves a literal alone', () => { + const source = svgWith(''); + const copy = source.cloneNode(true) as SVGElement; + const copiedRect = copy.firstElementChild as SVGElement; + + copiedRect.style.setProperty('fill', '#00ff00'); + copiedRect.setAttribute('stroke', '#0000ff'); + copyResolvedStyles(source, copy); + + expect(copiedRect.style.getPropertyValue('fill')).toBe('#00ff00'); + expect(copiedRect.getAttribute('stroke')).toBe('#0000ff'); + }); + + it('hands a colour the browser worked out over in a form any SVG reader takes', () => { + const source = svgWith(''); + const copy = source.cloneNode(true) as SVGElement; + const copiedRect = copy.firstElementChild as SVGElement; + const computed = jest.spyOn(window, 'getComputedStyle').mockReturnValue({ + getPropertyValue: (property: string) => ({ + stroke: 'color(srgb 0 0.5 0.4)', + fill: 'color(srgb 0 0.5 0.4 / 0.5)', + })[property] ?? '', + } as unknown as CSSStyleDeclaration); + + copiedRect.setAttribute('stroke', 'color-mix(in srgb, var(--dx-viz-blue, #0078d4) 50%, #008f04)'); + copiedRect.style.setProperty('fill', 'var(--dx-viz-blue, #0078d4)'); + copyResolvedStyles(source, copy); + computed.mockRestore(); + + expect(copiedRect.getAttribute('stroke')).toBe('#008066'); + expect(copiedRect.style.getPropertyValue('fill')).toBe('rgba(0, 128, 102, 0.5)'); + }); + + it('steps over a node that carries no style at all', () => { + const source = new DOMParser().parseFromString('a', 'image/svg+xml').documentElement; + const copy = source.cloneNode(true) as Element; + + expect(() => copyResolvedStyles(source, copy)).not.toThrow(); + }); + + it('reaches the stroke a text node carries on a tspan of its own', () => { + const source = svgWith(''); + const tspan = source.querySelector('tspan') as SVGElement; + + tspan.style.setProperty('stroke', 'blue'); + + const copy = source.cloneNode(true) as SVGElement; + const copiedTspan = copy.querySelector('tspan') as SVGElement; + + copiedTspan.setAttribute('stroke', 'var(--dx-viz-bg, #ffffff)'); + copyResolvedStyles(source, copy); + + expect(copiedTspan.getAttribute('stroke')).toBe('blue'); + }); +}); diff --git a/packages/devextreme/js/__internal/core/utils/__tests__/swatch_container.test.ts b/packages/devextreme/js/__internal/core/utils/__tests__/swatch_container.test.ts new file mode 100644 index 000000000000..9d7d8a96646a --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/__tests__/swatch_container.test.ts @@ -0,0 +1,235 @@ +import { + afterEach, beforeEach, describe, expect, it, jest, +} from '@jest/globals'; +import $ from '@js/core/renderer'; +import { value as viewPort } from '@js/core/utils/view_port'; +import swatchContainer from '@ts/core/utils/swatch_container'; + +jest.mock('@js/core/utils/view_port'); + +const viewPortMock = viewPort as unknown as jest.Mock<() => unknown>; + +const { getSwatchContainer } = swatchContainer; + +const MODE_STYLES = ` + .mode-light { --dx-theme-mode: light; } + .mode-dark { --dx-theme-mode: dark; } + .mode-sepia { --dx-theme-mode: sepia; } +`; + +const classesOf = (element: Element): string[] => [...element.classList].sort(); + +describe('getSwatchContainer', () => { + let $viewport = document.createElement('div'); + + const render = (markup: string): HTMLElement => { + const host = document.createElement('div'); + + host.innerHTML = markup; + document.body.appendChild(host); + + return host.querySelector('.target') as HTMLElement; + }; + + const containerFor = ( + markup: string, + ): Element => getSwatchContainer(render(markup))?.get(0) as Element; + + beforeEach(() => { + document.head.innerHTML = ``; + $viewport = document.createElement('div'); + $viewport.className = 'dx-viewport'; + document.body.appendChild($viewport); + viewPortMock.mockReturnValue($($viewport)); + }); + + afterEach(() => { + document.head.innerHTML = ''; + document.body.innerHTML = ''; + viewPortMock.mockReset(); + }); + + it('returns the viewport itself when the element is in no swatch and in no mode', () => { + expect(containerFor('
')).toBe($viewport); + }); + + describe('swatches', () => { + it('creates a container in the viewport for a swatch', () => { + const container = containerFor('
'); + + expect(classesOf(container)).toEqual(['dx-swatch-custom']); + expect(container.parentElement).toBe($viewport); + }); + + it('reads the classes off the element itself', () => { + expect(classesOf(containerFor('
'))).toEqual(['dx-swatch-custom']); + }); + + it('carries every swatch class, not just the first', () => { + const container = containerFor('
'); + + expect(classesOf(container)).toEqual(['dx-swatch-a', 'dx-swatch-b']); + }); + + it('takes the nearest swatch', () => { + const container = containerFor(` +
+
+
`); + + expect(classesOf(container)).toEqual(['dx-swatch-inner']); + }); + }); + + describe('theme mode', () => { + it('carries the mode the element resolved to', () => { + const container = containerFor('
'); + + expect(classesOf(container)).toEqual(['dx-theme-mode-dark']); + expect(container.parentElement).toBe($viewport); + }); + + it('names the resolved mode, not the class the element carries', () => { + const container = containerFor('
'); + + expect(classesOf(container)).toEqual(['dx-theme-mode-light']); + }); + + it('carries no mode when the theme declares none', () => { + expect(containerFor('
')).toBe($viewport); + }); + + it('carries no mode when the value names none', () => { + expect(containerFor('
')).toBe($viewport); + }); + + it('carries a swatch and a mode together', () => { + const container = containerFor(` +
+
+
`); + + expect(classesOf(container)).toEqual(['dx-swatch-custom', 'dx-theme-mode-dark']); + }); + }); + + describe('scopes the viewport already resolves to', () => { + it('returns the viewport when it resolves to the same mode', () => { + $viewport.classList.add('mode-dark'); + + expect(containerFor('
')).toBe($viewport); + expect($viewport.children).toHaveLength(0); + }); + + it('returns the viewport when it sits in the same swatch', () => { + const $swatch = document.createElement('div'); + + $swatch.className = 'dx-swatch-custom'; + document.body.appendChild($swatch); + $swatch.appendChild($viewport); + + expect(containerFor('
')).toBe($viewport); + }); + + it('creates a container when the modes differ', () => { + $viewport.classList.add('mode-dark'); + + const container = containerFor('
'); + + expect(classesOf(container)).toEqual(['dx-theme-mode-light']); + expect(container.parentElement).toBe($viewport); + }); + }); + + describe('reuse', () => { + it('reuses one container for elements in the same swatch and mode', () => { + const markup = '
'; + + expect(containerFor(markup)).toBe(containerFor(markup)); + expect($viewport.children).toHaveLength(1); + }); + + it('does not reuse a container carrying a scope the element is not in', () => { + const inBoth = containerFor('
'); + const inSwatch = containerFor('
'); + + expect(inSwatch).not.toBe(inBoth); + expect(classesOf(inSwatch)).toEqual(['dx-swatch-custom']); + }); + + it('reuses a container that picked up an unrelated class', () => { + const first = containerFor('
'); + + first.classList.add('some-app-class'); + + expect(containerFor('
')).toBe(first); + expect($viewport.children).toHaveLength(1); + }); + + const scopeInViewport = (markup: string): Element => { + $viewport.innerHTML = markup; + + return $viewport.firstElementChild as Element; + }; + + const containerOf = (scope: Element): Element => getSwatchContainer( + scope.querySelector('.target') as Element, + )?.get(0) as Element; + + it('reuses a scope that is a child of the viewport', () => { + const scope = scopeInViewport('
'); + + expect(containerOf(scope)).toBe(scope); + expect($viewport.children).toHaveLength(1); + }); + + it.each([ + 'overflow: hidden', + 'overflow: auto', + 'overflow-y: auto', + 'clip-path: inset(0)', + 'contain: paint', + 'transform: translateX(1px)', + 'filter: blur(1px)', + 'perspective: 100px', + ])('does not reuse a viewport child that clips or traps a positioned descendant with %s', (style) => { + const scope = scopeInViewport(`
`); + const container = containerOf(scope); + + expect(container).not.toBe(scope); + expect(container.parentElement).toBe($viewport); + expect(classesOf(container)).toEqual(['dx-theme-mode-dark']); + expect(containerOf(scope)).toBe(container); + expect($viewport.children).toHaveLength(2); + }); + + it('does not reuse a swatch that clips either', () => { + const scope = scopeInViewport('
'); + const container = containerOf(scope); + + expect(container).not.toBe(scope); + expect(container.parentElement).toBe($viewport); + expect(classesOf(container)).toEqual(['dx-swatch-custom']); + }); + }); + + describe('before the viewport is set', () => { + beforeEach(() => { + viewPortMock.mockReturnValue(undefined); + }); + + it('reports no container for an element in no scope', () => { + expect(getSwatchContainer(render('
'))).toBeUndefined(); + }); + + it('reports no container for an element in a mode', () => { + expect(getSwatchContainer(render('
'))).toBeUndefined(); + }); + + it('reports no container for an element in a swatch', () => { + const element = render('
'); + + expect(getSwatchContainer(element)).toBeUndefined(); + }); + }); +}); diff --git a/packages/devextreme/js/__internal/core/utils/__tests__/theme_length.test.ts b/packages/devextreme/js/__internal/core/utils/__tests__/theme_length.test.ts new file mode 100644 index 000000000000..e0cfe2c8283c --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/__tests__/theme_length.test.ts @@ -0,0 +1,77 @@ +import { + afterEach, beforeEach, describe, expect, it, jest, +} from '@jest/globals'; +import $ from '@js/core/renderer'; +import { themeLength } from '@ts/core/utils/theme_length'; + +const PROPERTY = '--probe-length'; + +describe('themeLength', () => { + let element: HTMLElement = document.createElement('div'); + let declared = ''; + + beforeEach(() => { + element = document.createElement('div'); + document.body.appendChild(element); + declared = ''; + + jest.spyOn(window, 'getComputedStyle').mockImplementation((node) => ({ + fontSize: '16px', + getPropertyValue: (name: string): string => (node === element && name === PROPERTY ? declared : ''), + }) as unknown as CSSStyleDeclaration); + }); + + afterEach(() => { + jest.restoreAllMocks(); + element.remove(); + }); + + it('reads a px length', () => { + declared = '60px'; + + expect(themeLength(element, PROPERTY)).toBe(60); + }); + + it('converts rem through the root font size', () => { + declared = ' 3.75rem '; + + expect(themeLength(element, PROPERTY)).toBe(60); + }); + + it('reads a unitless zero', () => { + declared = '0'; + + expect(themeLength(element, PROPERTY)).toBe(0); + }); + + it('accepts a renderer wrapper', () => { + declared = '1.5px'; + + expect(themeLength($(element), PROPERTY)).toBe(1.5); + }); + + it('is undefined when the theme declares nothing', () => { + expect(themeLength(element, PROPERTY)).toBeUndefined(); + }); + + it('is undefined for a value that is not a length', () => { + declared = 'auto'; + + expect(themeLength(element, PROPERTY)).toBeUndefined(); + }); + + it('is undefined for an empty selection', () => { + expect(themeLength($(), PROPERTY)).toBeUndefined(); + }); + + it('is undefined without an element', () => { + expect(themeLength(undefined, PROPERTY)).toBeUndefined(); + }); + + it('is undefined for a node that is not an element', () => { + declared = '60px'; + + expect(themeLength($(document), PROPERTY)).toBeUndefined(); + expect(themeLength($(document.createTextNode('x')) as never, PROPERTY)).toBeUndefined(); + }); +}); diff --git a/packages/devextreme/js/__internal/core/utils/css_variables.ts b/packages/devextreme/js/__internal/core/utils/css_variables.ts new file mode 100644 index 000000000000..53baaad3c8a4 --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/css_variables.ts @@ -0,0 +1,150 @@ +import domAdapter from '@js/core/dom_adapter'; +import { getWindow } from '@js/core/utils/window'; + +const REFERENCE = /var\(\s*--/; +const LEFT_TO_THE_BROWSER = /var\(|color-mix\(|\(from /; +const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; +const REFERENCED_NAME = /var\(\s*(--[a-z0-9-]+)/i; +const REFERENCE_FALLBACK = /var\(\s*--[a-z0-9-]+\s*,\s*([^)]*)\)/i; +const SRGB_COLOR = /^(?:rgba?\(|color\(srgb )/; +const NUMBER = /-?(?:\d+\.?\d*|\.\d+)(?:e[+-]?\d+)?/gi; + +export function isCssVariableReference(value: unknown): value is string { + return typeof value === 'string' && REFERENCE.test(value); +} + +export function fallbackOf(value: string): string { + const [, fallback] = REFERENCE_FALLBACK.exec(value) ?? []; + + return fallback?.trim() ?? value; +} + +export function resolvedInScope(value: string, element: Element | null | undefined): string { + if (!isCssVariableReference(value)) { + return value; + } + + const [, name] = REFERENCED_NAME.exec(value) ?? []; + const carried = element + ? getWindow().getComputedStyle(element).getPropertyValue(name).trim() + : ''; + + return carried || fallbackOf(value); +} + +export function portableColor(painted: string): string | undefined { + if (!SRGB_COLOR.test(painted) || LEFT_TO_THE_BROWSER.test(painted)) { + return undefined; + } + + const isColorFunction = painted.startsWith('color('); + const channels = isColorFunction ? painted.slice(painted.indexOf(' ')) : painted; + const numbers = (channels.match(NUMBER) ?? []).map(Number); + + if (numbers.length < 3) { + return undefined; + } + + const scale = isColorFunction ? 255 : 1; + const [red, green, blue] = numbers + .slice(0, 3) + .map((value) => Math.round(Math.min(255, Math.max(0, value * scale)))); + const alpha = numbers.length > 3 ? numbers[3] : 1; + + return alpha < 1 + ? `rgba(${red}, ${green}, ${blue}, ${alpha})` + : `#${[red, green, blue].map((value) => value.toString(16).padStart(2, '0')).join('')}`; +} + +export function asRgb(value: string): string { + return `color-mix(in srgb, ${value} 100%, transparent)`; +} + +function portableValue(carried: string): string { + return carried.startsWith('color(srgb ') ? portableColor(carried) ?? carried : carried; +} + +export function paintedColor(value: string, element: Element | null | undefined): string { + if (typeof value !== 'string' || !LEFT_TO_THE_BROWSER.test(value)) { + return value; + } + + if (!element) { + return fallbackOf(value); + } + + // @ts-expect-error createElementNS is on the strategy, not on the exported adapter type + const probe = domAdapter.createElementNS(SVG_NAMESPACE, 'rect') as SVGElement; + const paintedAs = (fill: string): string | undefined => { + probe.style.setProperty('fill', fill); + + return portableColor(getWindow().getComputedStyle(probe).fill); + }; + + element.appendChild(probe); + + const painted = paintedAs(value) ?? paintedAs(asRgb(value)); + + probe.remove(); + + return painted ?? fallbackOf(value); +} + +function inlineStyleOf(element: Element): CSSStyleDeclaration | undefined { + const { style } = element as Partial; + + return typeof style?.item === 'function' ? style : undefined; +} + +function referencedProperties(style: CSSStyleDeclaration): string[] { + const properties: string[] = []; + + for (let index = 0; index < style.length; index += 1) { + const property = style.item(index); + + if (isCssVariableReference(style.getPropertyValue(property))) { + properties.push(property); + } + } + + return properties; +} + +function referencedAttributes(element: Element): string[] { + return Array.from(element.attributes) + .filter(({ value }) => isCssVariableReference(value)) + .map(({ name }) => name); +} + +export function copyResolvedStyles(source: Element, copy: Element): void { + const sources = [source, ...source.querySelectorAll('*')]; + const window = getWindow(); + + [copy, ...copy.querySelectorAll('*')].forEach((node, index) => { + const style = inlineStyleOf(node); + const properties = style ? referencedProperties(style) : []; + const attributes = referencedAttributes(node); + + if (!properties.length && !attributes.length) { + return; + } + + const computed = window.getComputedStyle(sources[index]); + + properties.forEach((property) => { + const carried = computed.getPropertyValue(property); + + if (carried) { + style?.setProperty(property, portableValue(carried)); + } + }); + + attributes.forEach((attribute) => { + const carried = computed.getPropertyValue(attribute); + + if (carried) { + node.setAttribute(attribute, portableValue(carried)); + } + }); + }); +} diff --git a/packages/devextreme/js/__internal/core/utils/m_svg.ts b/packages/devextreme/js/__internal/core/utils/m_svg.ts index 70bb79fb30be..94485eed28ee 100644 --- a/packages/devextreme/js/__internal/core/utils/m_svg.ts +++ b/packages/devextreme/js/__internal/core/utils/m_svg.ts @@ -2,6 +2,7 @@ import domAdapter from '@js/core/dom_adapter'; import $ from '@js/core/renderer'; import { isRenderer, isString } from '@js/core/utils/type'; import { getWindow } from '@js/core/utils/window'; +import { copyResolvedStyles } from '@ts/core/utils/css_variables'; const window = getWindow(); @@ -9,6 +10,8 @@ function getMarkup(element, backgroundColor) { const clone = element.cloneNode(true); const serializer = new XMLSerializer(); + copyResolvedStyles(element, clone); + if (backgroundColor) { $(clone).css('backgroundColor', backgroundColor); } diff --git a/packages/devextreme/js/__internal/core/utils/swatch_container.ts b/packages/devextreme/js/__internal/core/utils/swatch_container.ts index c426d0b9050d..153b391d9bbf 100644 --- a/packages/devextreme/js/__internal/core/utils/swatch_container.ts +++ b/packages/devextreme/js/__internal/core/utils/swatch_container.ts @@ -1,29 +1,98 @@ import type { dxElementWrapper } from '@js/core/renderer'; import $ from '@js/core/renderer'; import { value } from '@js/core/utils/view_port'; +import { getWindow, hasWindow } from '@js/core/utils/window'; +import { resolvedThemeMode } from '@ts/core/utils/theme_mode'; const SWATCH_CONTAINER_CLASS_PREFIX = 'dx-swatch-'; +const THEME_MODE_CLASS_PREFIX = 'dx-theme-mode-'; + +const classesByPrefix = ( + element: Element, + prefix: string, +): string[] => [...element.classList].filter((cssClass) => cssClass.startsWith(prefix)); + +const closestClassesByPrefix = ( + $element: dxElementWrapper, + prefix: string, +): string[] => { + const $scope = $element.closest(`[class^="${prefix}"], [class*=" ${prefix}"]`); + + return $scope.length ? classesByPrefix($scope.get(0), prefix) : []; +}; + +const themeModeClasses = ($element: dxElementWrapper): string[] => { + const mode = resolvedThemeMode($element); + + return mode ? [`${THEME_MODE_CLASS_PREFIX}${mode}`] : []; +}; + +const scopeClasses = ($element: dxElementWrapper): string[] => [ + ...closestClassesByPrefix($element, SWATCH_CONTAINER_CLASS_PREFIX), + ...themeModeClasses($element), +]; + +const getContainerClasses = ( + $element: dxElementWrapper, + $viewport: dxElementWrapper, +): string[] => { + const classes = scopeClasses($element); + const sorted = (cssClasses: string[]): string => [...cssClasses].sort().join(' '); + + return sorted(classes) === sorted(scopeClasses($viewport)) ? [] : classes; +}; + +const isExactScope = ( + node: Element, + containerClasses: string[], +): boolean => [SWATCH_CONTAINER_CLASS_PREFIX, THEME_MODE_CLASS_PREFIX] + .every((prefix) => classesByPrefix(node, prefix) + .every((cssClass) => containerClasses.includes(cssClass))); + +const HOST_NEUTRAL_VALUES: Record = { + overflow: 'visible', + 'overflow-x': 'visible', + 'overflow-y': 'visible', + 'clip-path': 'none', + contain: 'none', + transform: 'none', + filter: 'none', + perspective: 'none', +}; + +const hostsWithoutClipping = (node: Element): boolean => { + const style = hasWindow() ? getWindow().getComputedStyle(node) : undefined; + + return Object.entries(HOST_NEUTRAL_VALUES) + .every(([property, neutral]) => ['', neutral].includes(style?.getPropertyValue(property) ?? '')); +}; const getSwatchContainer = ( element: Element | dxElementWrapper, -): dxElementWrapper => { - const $element = $(element); - const swatchContainer = $element.closest(`[class^="${SWATCH_CONTAINER_CLASS_PREFIX}"], [class*=" ${SWATCH_CONTAINER_CLASS_PREFIX}"]`); - const viewport: dxElementWrapper = value(); +): dxElementWrapper | undefined => { + const $viewport = value() as dxElementWrapper | undefined; + + if (!$viewport?.length) { + return $viewport; + } + + const containerClasses = getContainerClasses($(element), $viewport); - if (!swatchContainer.length) { - return viewport; + if (!containerClasses.length) { + return $viewport; } - const swatchClassRegex = new RegExp(`(\\s|^)(${SWATCH_CONTAINER_CLASS_PREFIX}.*?)(\\s|$)`); - const swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2]; - let viewportSwatchContainer = viewport.children(`.${swatchClass}`); + const selector = containerClasses.map((cssClass) => `.${cssClass}`).join(''); + let $container = $($viewport + .children(selector) + .toArray() + .filter((node) => isExactScope(node, containerClasses) && hostsWithoutClipping(node))); - if (!viewportSwatchContainer.length) { - viewportSwatchContainer = $('
').addClass(swatchClass).appendTo(viewport); + if (!$container.length) { + $container = $('
').addClass(containerClasses.join(' ')).appendTo($viewport); } - return viewportSwatchContainer; + return $container; }; export default { getSwatchContainer }; diff --git a/packages/devextreme/js/__internal/core/utils/theme_length.ts b/packages/devextreme/js/__internal/core/utils/theme_length.ts new file mode 100644 index 000000000000..ca13ea96ec3a --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/theme_length.ts @@ -0,0 +1,44 @@ +import type { dxElementWrapper } from '@js/core/renderer'; +import $ from '@js/core/renderer'; +import { getWindow, hasWindow } from '@js/core/utils/window'; + +const ELEMENT_NODE = 1; + +/* + * A size the theme publishes for the runtime to read back: the few lengths JS has to know before + * it can position anything (devextreme-scss: tools/naming/runtime-reads.json). The tier declares + * them on the component root, so the element has to sit inside that root and in the document. + * + * Undefined when the theme declares nothing - the caller then keeps its own default. A value the + * browser has not reduced to a plain length (`calc()`, `em`, a keyword) reads as undefined too, so + * tests/runtime-reads.test.ts holds every contract value to a plain length in the built bundles. + */ +export function themeLength( + element: Element | dxElementWrapper | undefined, + property: string, +): number | undefined { + const node = $(element).get(0); + + if (node?.nodeType !== ELEMENT_NODE || !hasWindow()) { + return undefined; + } + + const view = node.ownerDocument.defaultView ?? getWindow(); + + if (!view?.getComputedStyle) { + return undefined; + } + + const declared = view.getComputedStyle(node).getPropertyValue(property).trim(); + const match = /^(-?\d*\.?\d+)(px|rem)?$/.exec(declared); + + if (!match) { + return undefined; + } + + const value = parseFloat(match[1]); + + return match[2] === 'rem' + ? value * parseFloat(view.getComputedStyle(node.ownerDocument.documentElement).fontSize) + : value; +} diff --git a/packages/devextreme/js/__internal/core/utils/theme_mode.ts b/packages/devextreme/js/__internal/core/utils/theme_mode.ts new file mode 100644 index 000000000000..614c1c0adbcd --- /dev/null +++ b/packages/devextreme/js/__internal/core/utils/theme_mode.ts @@ -0,0 +1,22 @@ +import type { dxElementWrapper } from '@js/core/renderer'; +import $ from '@js/core/renderer'; +import { getWindow, hasWindow } from '@js/core/utils/window'; + +export type ThemeMode = 'light' | 'dark'; + +export const THEME_MODE_PROPERTY = '--dx-theme-mode'; + +export function resolvedThemeMode( + element: Element | dxElementWrapper, +): ThemeMode | null { + const node = $(element).get(0); + const window = hasWindow() ? getWindow() : undefined; + + if (!node || !window?.getComputedStyle) { + return null; + } + + const declared = window.getComputedStyle(node).getPropertyValue(THEME_MODE_PROPERTY).trim(); + + return declared === 'light' || declared === 'dark' ? declared : null; +} diff --git a/packages/devextreme/js/__internal/exporter/image_creator.ts b/packages/devextreme/js/__internal/exporter/image_creator.ts index cb89799d5e94..91fdd11fd4d8 100644 --- a/packages/devextreme/js/__internal/exporter/image_creator.ts +++ b/packages/devextreme/js/__internal/exporter/image_creator.ts @@ -34,6 +34,7 @@ import { isDefined, isFunction, isPromise, isRenderer, } from '@js/core/utils/type'; import { getWindow } from '@js/core/utils/window'; +import { isCssVariableReference } from '@ts/core/utils/css_variables'; import svgUtils from '@ts/core/utils/m_svg'; const window = getWindow(); @@ -555,11 +556,16 @@ function hex2rgba(hexColor, alpha) { function createGradient(element) { const options = { colors: [], transform: element.attributes.gradientTransform?.textContent }; - _each(element.childNodes, (_, { attributes }) => { + _each(element.childNodes, (_, node) => { + const { attributes } = node; + const declared = attributes['stop-color']?.value; + // @ts-expect-error options.colors.push({ offset: attributes.offset.value, - stopColor: attributes['stop-color'].value, + stopColor: declared && !isCssVariableReference(declared) + ? declared + : window.getComputedStyle(node).getPropertyValue('stop-color'), }); }); return options; diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/ai_assistant_view.test.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/ai_assistant_view.test.ts index 454751f6b505..de5b81f3268c 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/ai_assistant_view.test.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/ai_assistant_view.test.ts @@ -359,7 +359,7 @@ describe('AIAssistantView', () => { }), }; (createConfirmDialog as jest.Mock).mockReturnValue(mockDialog); - createAIAssistantView(); + const { aiAssistantView } = createAIAssistantView(); const aiChatConfig = (AIChat as jest.Mock).mock.calls[0][0] as AIChatOptions; const event = { cancel: false, component: { hide: jest.fn() } }; @@ -376,6 +376,8 @@ describe('AIAssistantView', () => { }), }), }), + // the element the theme declares the dialog's sizes on + aiAssistantView.element(), ); expect(mockDialog.show).toHaveBeenCalledTimes(1); }); diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/utils.test.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/utils.test.ts index 3242421e49ff..bb65aca0523d 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/utils.test.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/__tests__/utils.test.ts @@ -8,6 +8,7 @@ import { import type { Message } from '@js/ui/chat'; import { custom } from '@js/ui/dialog'; import * as themes from '@js/ui/themes'; +import { themeLength } from '@ts/core/utils/theme_length'; import { AI_ASSISTANT_AUTHOR_ID, @@ -43,6 +44,10 @@ jest.mock('@js/ui/themes', () => ({ isCompact: jest.fn().mockReturnValue(false), })); +jest.mock('@ts/core/utils/theme_length', () => ({ + themeLength: jest.fn(), +})); + describe('isAIMessage', () => { it('should return true for message with assistant author id', () => { const message = { @@ -807,6 +812,35 @@ describe('createConfirmDialog', () => { ); }); + it('should take the width the theme declares on the grid element', () => { + (themes.isCompact as jest.Mock).mockReturnValue(true); + (themeLength as jest.Mock).mockReturnValue(333); + const gridElement = document.createElement('div'); + + createConfirmDialog(undefined, gridElement); + + expect((themeLength as jest.Mock).mock.calls[0]) + .toEqual([gridElement, '--dx-grid-ai-confirm-dialog-width']); + expect(custom).toHaveBeenCalledWith( + expect.objectContaining({ + width: 333, + }), + ); + }); + + it('should keep the legacy width when the theme declares nothing on the grid element', () => { + (themes.isCompact as jest.Mock).mockReturnValue(true); + (themeLength as jest.Mock).mockReturnValue(undefined); + + createConfirmDialog(undefined, document.createElement('div')); + + expect(custom).toHaveBeenCalledWith( + expect.objectContaining({ + width: AI_ASSISTANT_CONFIRM_DIALOG_COMPACT_WIDTH, + }), + ); + }); + it('should apply fluent styling to buttons when fluent theme is active', () => { (themes.isFluent as jest.Mock).mockReturnValue(true); diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/ai_assistant_view.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/ai_assistant_view.ts index e7a41bbbfb84..d7ca9d4d7627 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/ai_assistant_view.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/ai_assistant_view.ts @@ -95,7 +95,7 @@ export class AIAssistantView extends View { popupOptions: { elementAttr: { class: this.addWidgetPrefix(CLASSES.aiAssistantConfirmDialog) }, }, - }); + }, this.element()); // @ts-expect-error confirmDialog.show().done((confirmResult) => { diff --git a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/utils.ts b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/utils.ts index 66d4595dd08d..f929787793e5 100644 --- a/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/utils.ts +++ b/packages/devextreme/js/__internal/grids/grid_core/ai_assistant/utils.ts @@ -1,10 +1,12 @@ import messageLocalization from '@js/common/core/localization/message'; import type { ResponseStatus } from '@js/common/grids'; +import type { dxElementWrapper } from '@js/core/renderer'; import { isObject } from '@js/core/utils/type'; import type { Properties as ButtonProperties } from '@js/ui/button'; import type { Message } from '@js/ui/chat'; import { custom } from '@js/ui/dialog'; import { current, isCompact, isFluent } from '@js/ui/themes'; +import { themeLength } from '@ts/core/utils/theme_length'; import type { BaseDialog, DialogParams } from '@ts/ui/dialog'; import { @@ -287,7 +289,12 @@ const getCancelButtonConfig = (): ButtonProperties => { return {}; }; -const getConfirmDialogWidth = (): number => { +const getConfirmDialogWidth = (gridElement?: Element | dxElementWrapper): number => { + const fromTheme = themeLength(gridElement, '--dx-grid-ai-confirm-dialog-width'); + + if (fromTheme !== undefined) { + return fromTheme; + } if (isCompact(current())) { return AI_ASSISTANT_CONFIRM_DIALOG_COMPACT_WIDTH; } @@ -295,11 +302,14 @@ const getConfirmDialogWidth = (): number => { return AI_ASSISTANT_CONFIRM_DIALOG_WIDTH; }; -export const createConfirmDialog = (options?: DialogParams): BaseDialog => custom({ +export const createConfirmDialog = ( + options?: DialogParams, + gridElement?: Element | dxElementWrapper, +): BaseDialog => custom({ messageHtml: messageLocalization.format('dxDataGrid-aiAssistantAbortConfirmText'), showTitle: false, dragEnabled: false, - width: getConfirmDialogWidth(), + width: getConfirmDialogWidth(gridElement), buttons: [ { text: messageLocalization.format('No'), diff --git a/packages/devextreme/js/__internal/scheduler/r1/utils/themes.ts b/packages/devextreme/js/__internal/scheduler/r1/utils/themes.ts index a71c9beb8e24..6dd60350178a 100644 --- a/packages/devextreme/js/__internal/scheduler/r1/utils/themes.ts +++ b/packages/devextreme/js/__internal/scheduler/r1/utils/themes.ts @@ -1,14 +1,13 @@ import { - current, isCompact, isFluent, isMaterial, isMaterialBased, + current, isFluent, isMaterial, isMaterialBased, } from '@js/ui/themes'; export const getThemeType = (): { - isCompact: boolean; isMaterial: boolean; isFluent: boolean; isMaterialBased: boolean; + isMaterial: boolean; isFluent: boolean; isMaterialBased: boolean; } => { const theme = current(); return { - isCompact: isCompact(theme), isMaterial: isMaterial(theme), isFluent: isFluent(theme), isMaterialBased: isMaterialBased(theme), diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/generate_grid_view_model.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/generate_grid_view_model.ts index b3d23b419944..231f33a71425 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/generate_grid_view_model.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/generate_grid_view_model.ts @@ -70,6 +70,7 @@ export const generateGridViewModel = ( isTimelineView, hasAllDayPanel, isVirtualScrolling, + appointmentMinHeight, } = optionManager.options; const { viewDataProvider } = schedulerStore._workSpace; @@ -85,7 +86,9 @@ export const generateGridViewModel = ( const step6 = cropByVirtualScreen(step5, optionManager.getVirtualCropOptions()); const step7 = addDirection(step6, 'horizontal', viewOrientation); - const step8 = addEmptiness(step7, { isTimelineView, isAdaptivityEnabled, isMonthView }); + const step8 = addEmptiness(step7, { + isTimelineView, isAdaptivityEnabled, isMonthView, appointmentMinHeight, + }); return step8; }; diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_max_level.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_max_level.ts index b80f4d86f1f3..0a56b0e71abc 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_max_level.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_max_level.ts @@ -12,6 +12,7 @@ interface Options { viewOrientation: Orientation; isTimelineView: boolean; isAdaptivityEnabled: boolean; + appointmentMinHeight?: number; } const ADAPTIVITY_MIN_APPOINTMENT_COUNT = 0; @@ -25,6 +26,7 @@ export const getMaxLevel = ({ viewOrientation, isTimelineView, isAdaptivityEnabled, + appointmentMinHeight, }: Options): number => { switch (maxAppointmentsPerCell) { case 'auto': { @@ -42,6 +44,7 @@ export const getMaxLevel = ({ isTimelineView, isAdaptivityEnabled, viewOrientation, + appointmentMinHeight, }); const minAbstractSize = getAbstractSizeByViewOrientation( defaultAppointmentSize, diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.test.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.test.ts new file mode 100644 index 000000000000..eae1e7ed77c6 --- /dev/null +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.test.ts @@ -0,0 +1,50 @@ +import { + beforeEach, describe, expect, it, jest, +} from '@jest/globals'; +import * as themes from '@js/ui/themes'; + +import { getDefaultAppointmentSize, getMinAppointmentSize } from './get_min_appointment_size'; + +jest.mock('@js/ui/themes', () => ({ + current: jest.fn().mockReturnValue('generic.light'), + isCompact: jest.fn().mockReturnValue(false), +})); + +const monthView = { isTimelineView: false, isAdaptivityEnabled: false, isMonthView: true }; + +describe('appointment minimum height', () => { + beforeEach(() => { + (themes.isCompact as jest.Mock).mockReturnValue(false); + }); + + it('is the height the theme declares', () => { + expect(getMinAppointmentSize({ ...monthView, appointmentMinHeight: 26 }).height).toBe(26); + }); + + it('falls back to the legacy literals when the theme declares nothing', () => { + expect(getMinAppointmentSize(monthView).height).toBe(20); + + (themes.isCompact as jest.Mock).mockReturnValue(true); + + expect(getMinAppointmentSize(monthView).height).toBe(18); + }); + + it('sizes the default appointment by the same height', () => { + const size = getDefaultAppointmentSize({ + ...monthView, viewOrientation: 'horizontal', appointmentMinHeight: 26, + }); + + expect(size.height).toBe(26); + }); + + it('leaves the day view minimum alone', () => { + const size = getMinAppointmentSize({ + isTimelineView: false, + isAdaptivityEnabled: false, + isMonthView: false, + appointmentMinHeight: 26, + }); + + expect(size.height).toBe(12); + }); +}); diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.ts index c6df1d1cd46c..186edd50b4f0 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_min_appointment_size.ts @@ -8,6 +8,8 @@ interface Options { isAdaptivityEnabled: boolean; isMonthView?: boolean; isAllDayAppointment?: boolean; + // From the theme when it declares one; otherwise the legacy literals below apply + appointmentMinHeight?: number; } const COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT = 18; @@ -20,16 +22,19 @@ const APPOINTMENT_MIN_WIDTH = 40; const TIMELINE_APPOINTMENT_DEFAULT_HEIGHT = 60; const ADAPTIVE_APPOINTMENT_DEFAULT_WIDTH = 30; // used for vertical view -// TODO get rid of depending from themes -const getMinAppointmentHeightByTheme = (): number => ( - isCompact(currentTheme()) +const getMinAppointmentHeight = (appointmentMinHeight?: number): number => { + if (appointmentMinHeight !== undefined) { + return appointmentMinHeight; + } + + return isCompact(currentTheme()) ? COMPACT_THEME_APPOINTMENT_DEFAULT_HEIGHT - : APPOINTMENT_DEFAULT_HEIGHT -); + : APPOINTMENT_DEFAULT_HEIGHT; +}; export const getMinAppointmentSize = (options: Options): RealSize => { const { - isTimelineView, isAdaptivityEnabled, isMonthView, isAllDayAppointment, + isTimelineView, isAdaptivityEnabled, isMonthView, isAllDayAppointment, appointmentMinHeight, } = options; if (isAdaptivityEnabled) { @@ -48,7 +53,7 @@ export const getMinAppointmentSize = (options: Options): RealSize => { const width = APPOINTMENT_MIN_WIDTH; const height = isMonthView || isAllDayAppointment - ? getMinAppointmentHeightByTheme() + ? getMinAppointmentHeight(appointmentMinHeight) : DAY_VIEW_APPOINTMENT_MIN_HEIGHT; return { width, height }; @@ -58,6 +63,7 @@ export const getDefaultAppointmentSize = ({ isTimelineView, isAdaptivityEnabled, viewOrientation, + appointmentMinHeight, }: Options & { viewOrientation: Orientation; }): RealSize => { @@ -72,6 +78,8 @@ export const getDefaultAppointmentSize = ({ width: viewOrientation === 'vertical' ? APPOINTMENT_DEFAULT_VERTICAL_WIDTH : APPOINTMENT_DEFAULT_HORIZONTAL_WIDTH, - height: isTimelineView ? TIMELINE_APPOINTMENT_DEFAULT_HEIGHT : getMinAppointmentHeightByTheme(), + height: isTimelineView + ? TIMELINE_APPOINTMENT_DEFAULT_HEIGHT + : getMinAppointmentHeight(appointmentMinHeight), }; }; diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_panel_collector_options.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_panel_collector_options.ts index 4828185a4a9d..e1300670e8c9 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_panel_collector_options.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_panel_collector_options.ts @@ -22,6 +22,7 @@ export const getPanelCollectorOptions = (schedulerStore: Scheduler, { collectorCSS, DOMMetaData, panelName, + appointmentMinHeight, }: { DOMMetaData: DOMMetaData; alwaysReserveSpaceForCollector: boolean; @@ -30,6 +31,7 @@ export const getPanelCollectorOptions = (schedulerStore: Scheduler, { isAdaptivityEnabled: boolean; collectorCSS: CollectorCSS; panelName: PanelName; + appointmentMinHeight?: number; }): { allDayPanelCellSize: RealSize; cellSize: RealSize; @@ -69,6 +71,7 @@ export const getPanelCollectorOptions = (schedulerStore: Scheduler, { viewOrientation, isTimelineView, isAdaptivityEnabled, + appointmentMinHeight, }; const maxLevel = getMaxLevel(maxLevelOptions); const minLevel = viewOrientation === 'vertical' ? MIN_LEVEL_VERTICAL_VIEW : getMaxLevel({ diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_view_model_options.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_view_model_options.ts index e04a6a1fe8c0..686fdf579138 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_view_model_options.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/get_view_model_options.ts @@ -1,5 +1,6 @@ import type { Orientation } from '@js/common'; import type { SnapToCellsMode } from '@js/ui/scheduler'; +import { themeLength } from '@ts/core/utils/theme_length'; import type Scheduler from '@ts/scheduler/scheduler'; import type { ViewType } from '../../../types'; @@ -56,6 +57,8 @@ export interface ViewModelOptions { isAdaptivityEnabled: boolean; cellDurationMinutes: number; isVirtualScrolling: boolean; + // Declared by the theme on the scheduler root; undefined when the theme declares nothing + appointmentMinHeight?: number; } export const getViewModelOptions = (schedulerStore: Scheduler): ViewModelOptions => { @@ -81,6 +84,7 @@ export const getViewModelOptions = (schedulerStore: Scheduler): ViewModelOptions const snapToCellsMode = schedulerStore.getViewOption('snapToCellsMode'); const showAllDayPanel = schedulerStore.getViewOption('showAllDayPanel'); const isVirtualScrolling = schedulerStore.isVirtualScrolling(); + const appointmentMinHeight = themeLength(schedulerStore.$element(), '--dx-scheduler-appointment-min-height'); return { type, @@ -98,5 +102,6 @@ export const getViewModelOptions = (schedulerStore: Scheduler): ViewModelOptions cellDurationMinutes, hasAllDayPanel: showAllDayPanel && allDayPanelMode !== 'hidden' && viewOrientation === 'vertical', isVirtualScrolling, + appointmentMinHeight, }; }; diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.test.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.test.ts index 38d2c8d21c21..d8cbc1c0cf6a 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.test.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.test.ts @@ -1,6 +1,7 @@ import { describe, expect, it, jest, } from '@jest/globals'; +import $ from '@js/core/renderer'; import type Scheduler from '@ts/scheduler/scheduler'; import type { DOMMetaData } from '@ts/scheduler/types'; @@ -56,6 +57,8 @@ const createSchedulerStore = (workspace: unknown): Scheduler => ({ option: (name: string) => schedulerOptions.get(name), isVirtualScrolling: () => false, getWorkSpace: () => workspace, + // the root the theme declares the appointment sizes on + $element: () => $('
'), }) as unknown as Scheduler; describe('OptionManager', () => { diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.ts index 3b55c76e9fb1..cd96ccdf3756 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/options/option_manager.ts @@ -102,6 +102,7 @@ export class OptionManager { cellDurationMinutes, isTimelineView, hasAllDayPanel, + appointmentMinHeight, } = this.options; const viewOrientation = panelName === 'allDayPanel' ? 'horizontal' : nativeViewOrientation; const isCompactCollector = isAdaptivityEnabled || viewOrientation === 'vertical'; @@ -120,6 +121,7 @@ export class OptionManager { collectorCSS, DOMMetaData: layoutData.getDOMElementsMetaData(), panelName, + appointmentMinHeight, }); const { diff --git a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/steps/add_emptiness.ts b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/steps/add_emptiness.ts index 249b011ea7b3..8ce008654007 100644 --- a/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/steps/add_emptiness.ts +++ b/packages/devextreme/js/__internal/scheduler/view_model/generate_view_model/steps/add_emptiness.ts @@ -6,6 +6,7 @@ interface AddEmptinessOptions { isTimelineView: boolean; isAdaptivityEnabled: boolean; isMonthView: boolean; + appointmentMinHeight?: number; } export const addEmptiness = ( diff --git a/packages/devextreme/js/__internal/ui/__tests__/themes.test.ts b/packages/devextreme/js/__internal/ui/__tests__/themes.test.ts new file mode 100644 index 000000000000..ebbf461461de --- /dev/null +++ b/packages/devextreme/js/__internal/ui/__tests__/themes.test.ts @@ -0,0 +1,304 @@ +import { + afterEach, beforeEach, describe, expect, it, jest, +} from '@jest/globals'; +import $ from '@js/core/renderer'; +import errors from '@js/ui/widget/ui.errors'; +import { themeModeChangedCallback } from '@ts/ui/m_themes_callback'; +import { + customAccentColor, init, isFluentNext, mode, refreshMode, resetTheme, +} from '@ts/ui/themes'; + +const style = (css: string): void => { document.head.innerHTML = ``; }; + +const withThemeMarker = (themeName: string): string => `.dx-theme-marker { font-family: "dx.${themeName}"; }`; + +describe('themes.mode', () => { + let element = document.createElement('div'); + + beforeEach(() => { + element = document.createElement('div'); + element.className = 'probe'; + document.body.appendChild(element); + }); + + afterEach(() => { + document.head.innerHTML = ''; + document.body.innerHTML = ''; + resetTheme(); + }); + + it('reads the mode the element resolves to', () => { + style('.probe { --dx-theme-mode: dark; }'); + + expect(mode(element)).toBe('dark'); + }); + + it('accepts a renderer wrapper as well as an element', () => { + style('.probe { --dx-theme-mode: dark; }'); + + expect(mode($(element))).toBe('dark'); + }); + + it('falls back to the loaded theme when nothing declares a mode', () => { + style(withThemeMarker('generic.dark')); + + expect(mode(element)).toBe('dark'); + }); + + it('answers light for a loaded theme that is not dark', () => { + style(withThemeMarker('generic.light')); + + expect(mode(element)).toBe('light'); + }); + + it('lets the element outrank the loaded theme', () => { + style(`${withThemeMarker('generic.dark')} .probe { --dx-theme-mode: light; }`); + + expect(mode(element)).toBe('light'); + }); + + it('ignores a value that names no mode', () => { + style(`${withThemeMarker('generic.dark')} .probe { --dx-theme-mode: sepia; }`); + + expect(mode(element)).toBe('dark'); + }); + + it('answers for a detached element instead of throwing', () => { + style(withThemeMarker('generic.dark')); + + expect(mode(document.createElement('div'))).toBe('dark'); + }); +}); + +describe('themes.refreshMode', () => { + it('announces that a resolved mode may have changed', () => { + const told: number[] = []; + const subscriber = (): void => { told.push(1); }; + + themeModeChangedCallback.add(subscriber); + + try { + refreshMode(); + refreshMode(); + + expect(told).toHaveLength(2); + } finally { + themeModeChangedCallback.remove(subscriber); + } + }); +}); + +describe('themes.isFluentNext', () => { + it.each([ + 'fluent-next.blue.light', + 'fluent-next.blue.dark', + 'fluent-next.blue.light.compact', + 'fluent-next.blue.dark.compact', + ])('knows %s by name', (themeName) => { + expect(isFluentNext(themeName)).toBe(true); + }); + + it.each([ + 'fluent.blue.light', + 'generic.light', + 'material.blue.light', + ])('tells %s from it, though the fluent name is a part of the fluent-next one', (themeName) => { + expect(isFluentNext(themeName)).toBe(false); + }); +}); + +describe('themes.customAccentColor', () => { + const useTheme = (themeName: string, pageCss = ''): void => { + style(`${withThemeMarker(themeName)} ${pageCss}`); + resetTheme(); + }; + + const useNoThemeYet = (): void => { + style(''); + resetTheme(); + }; + + const declaredAccentColor = (): string => window.getComputedStyle(document.documentElement) + .getPropertyValue('--dx-accent-color') + .trim(); + + beforeEach(() => { + useTheme('fluent-next.blue.light'); + }); + + afterEach(() => { + document.documentElement.style.removeProperty('--dx-accent-color'); + document.head.innerHTML = ''; + resetTheme(); + jest.restoreAllMocks(); + }); + + it.each([ + '#a703ff', + '#abc', + '#a703ff80', + 'rebeccapurple', + 'rgb(167, 3, 255)', + 'rgb(167 3 255)', + 'hsl(280 100% 50%)', + 'oklch(0.6 0.15 250)', + 'color-mix(in oklab, red, blue)', + 'transparent', + ])('declares %s as given, a color the browser parses', (value) => { + customAccentColor(value); + + expect(declaredAccentColor()).toBe(value); + }); + + it('reads the color the page declares in a stylesheet', () => { + useTheme('fluent-next.blue.light', ':root { --dx-accent-color: #0f6cbd; }'); + + expect(customAccentColor()).toBe('#0f6cbd'); + }); + + it('answers with nothing while no accent color is declared', () => { + expect(customAccentColor()).toBe(''); + }); + + it('answers with the color when the value handed in is absent', () => { + const withAnAbsentValue = customAccentColor as (color?: string | null) => string | undefined; + customAccentColor('#a703ff'); + + expect(withAnAbsentValue(undefined)).toBe('#a703ff'); + expect(declaredAccentColor()).toBe('#a703ff'); + }); + + it('brings back the palette of the theme when passed null', () => { + useTheme('fluent-next.blue.light', ':root { --dx-accent-color: #0f6cbd; }'); + customAccentColor('#a703ff'); + + customAccentColor(null); + + expect(declaredAccentColor()).toBe('#0f6cbd'); + }); + + it('takes an accent written as a reference to another custom property', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + + customAccentColor('var(--brand)'); + + expect(document.documentElement.style.getPropertyValue('--dx-accent-color')).toBe('var(--brand)'); + expect(log).not.toHaveBeenCalled(); + }); + + it.each([ + 'foo', + 'rgb(167 3)', + ' ', + ])('leaves the accent color alone and warns about %s, which parses as no color at all', (value) => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + customAccentColor('#a703ff'); + + customAccentColor(value); + + expect(declaredAccentColor()).toBe('#a703ff'); + expect(log).toHaveBeenCalledWith('W0024', value); + }); + + it('brings back the palette of the theme when passed an empty string', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + useTheme('fluent-next.blue.light', ':root { --dx-accent-color: #0f6cbd; }'); + customAccentColor('#a703ff'); + + customAccentColor(''); + + expect(declaredAccentColor()).toBe('#0f6cbd'); + expect(log).not.toHaveBeenCalled(); + }); + + it('takes back whatever the getter hands out while no accent color is declared', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + + customAccentColor(customAccentColor()); + + expect(log).not.toHaveBeenCalled(); + }); + + it.each([ + 'currentColor', + 'inherit', + 'initial', + 'unset', + 'revert', + 'revert-layer', + ])('refuses %s, which points at another color instead of naming one', (value) => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + + customAccentColor(value); + + expect(declaredAccentColor()).toBe(''); + expect(log).toHaveBeenCalledWith('W0024', value); + }); + + it('reads the value the same however it is capitalized or spaced', () => { + jest.spyOn(errors, 'log').mockImplementation(() => {}); + + customAccentColor(' #A703FF '); + const written = declaredAccentColor(); + customAccentColor('INHERIT'); + + expect([written, declaredAccentColor()]).toEqual(['#A703FF', '#A703FF']); + }); + + it('declares the color and warns when the loaded theme knows no accent color', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + useTheme('generic.light'); + + customAccentColor('#a703ff'); + + expect(declaredAccentColor()).toBe('#a703ff'); + expect(log).toHaveBeenCalledWith('W0025', 'generic.light'); + }); + + it('tells the fluent theme apart from the fluent-next one', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + useTheme('fluent.blue.light'); + + customAccentColor('#a703ff'); + + expect(declaredAccentColor()).toBe('#a703ff'); + expect(log).toHaveBeenCalledWith('W0025', 'fluent.blue.light'); + }); + + it('declares the color and stays silent while no theme has named itself yet', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + useNoThemeYet(); + + customAccentColor('#a703ff'); + + expect(declaredAccentColor()).toBe('#a703ff'); + expect(log).not.toHaveBeenCalled(); + }); + + it('writes into the document it was initialized with, not into the one the page runs in', () => { + const otherDocument = document.implementation.createHTMLDocument(); + + try { + init({ context: otherDocument, _autoInit: true }); + customAccentColor('#a703ff'); + + expect([ + otherDocument.documentElement.style.getPropertyValue('--dx-accent-color'), + document.documentElement.style.getPropertyValue('--dx-accent-color'), + ]).toEqual(['#a703ff', '']); + } finally { + init({ _autoInit: true }); + } + }); + + it('clears the color a theme that knows no accent has inherited from the previous one', () => { + const log = jest.spyOn(errors, 'log').mockImplementation(() => {}); + customAccentColor('#a703ff'); + useTheme('generic.light'); + + customAccentColor(null); + + expect(declaredAccentColor()).toBe(''); + expect(log).not.toHaveBeenCalled(); + }); +}); diff --git a/packages/devextreme/js/__internal/ui/file_manager/ui.file_manager.toolbar.ts b/packages/devextreme/js/__internal/ui/file_manager/ui.file_manager.toolbar.ts index fd35b917b4df..3e8f12fea102 100644 --- a/packages/devextreme/js/__internal/ui/file_manager/ui.file_manager.toolbar.ts +++ b/packages/devextreme/js/__internal/ui/file_manager/ui.file_manager.toolbar.ts @@ -17,6 +17,7 @@ import { current, isCompact, isFluent, isMaterial, } from '@js/ui/themes'; import Toolbar from '@js/ui/toolbar'; +import { themeLength } from '@ts/core/utils/theme_length'; import type { OptionChanged } from '@ts/core/widget/types'; import type { WidgetProperties } from '@ts/core/widget/widget'; import Widget from '@ts/core/widget/widget'; @@ -433,6 +434,22 @@ class FileManagerToolbar extends Widget { }; } + _getViewModePopupWidth(): number | undefined { + const fromTheme = themeLength(this.$element(), '--dx-file-manager-toolbar-viewmode-popup-width'); + + if (isDefined(fromTheme)) { + return fromTheme; + } + if (isMaterial(current())) { + return isCompact(current()) ? 28 : 36; + } + if (isFluent(current())) { + return isCompact(current()) ? 34 : 40; + } + + return undefined; + } + // eslint-disable-next-line @typescript-eslint/explicit-function-return-type _createViewModeItem() { const commandItems: Command[] = ['details', 'thumbnails'].map((name: string) => { @@ -447,11 +464,10 @@ class FileManagerToolbar extends Widget { const dropDownOptions: any = { container: this._$viewSwitcherPopup, }; + const width = this._getViewModePopupWidth(); - if (isMaterial(current())) { - dropDownOptions.width = isCompact(current()) ? 28 : 36; - } else if (isFluent(current())) { - dropDownOptions.width = isCompact(current()) ? 34 : 40; + if (isDefined(width)) { + dropDownOptions.width = width; } return { diff --git a/packages/devextreme/js/__internal/ui/html_editor/ui/aiDialog.ts b/packages/devextreme/js/__internal/ui/html_editor/ui/aiDialog.ts index 85e7a21a872e..f7cd88063324 100644 --- a/packages/devextreme/js/__internal/ui/html_editor/ui/aiDialog.ts +++ b/packages/devextreme/js/__internal/ui/html_editor/ui/aiDialog.ts @@ -17,6 +17,7 @@ import type { Properties as SelectBoxProperties } from '@js/ui/select_box'; import SelectBox from '@js/ui/select_box'; import TextArea from '@js/ui/text_area'; import { current, isCompact, isMaterial } from '@js/ui/themes'; +import { themeLength } from '@ts/core/utils/theme_length'; import BaseDialog from '@ts/ui/html_editor/ui/m_baseDialog'; import type { AICommandExecutor, @@ -62,10 +63,6 @@ export const REPLACE_DROPDOWN_WIDTH = 150; export const ACTION_BUTTON_WIDTH = 110; export const COMPACT_ACTION_BUTTON_WIDTH = 100; -function getActionButtonWidth(): number { - return isCompact(current()) ? COMPACT_ACTION_BUTTON_WIDTH : ACTION_BUTTON_WIDTH; -} - enum DialogState { Initial = 'initial', Asking = 'asking', @@ -425,8 +422,13 @@ export default class AIDialog extends BaseDialog { }; } + protected _getActionButtonWidth(): number { + return themeLength(this._$container, '--dx-html-editor-ai-dialog-button-width') + ?? (isCompact(current()) ? COMPACT_ACTION_BUTTON_WIDTH : ACTION_BUTTON_WIDTH); + } + protected _getGenerateButtonItem(): NamedToolbarItem { - const width = getActionButtonWidth(); + const width = this._getActionButtonWidth(); const promptTextArea = this._promptTextArea; const disabled = !promptTextArea.option('value'); @@ -448,7 +450,7 @@ export default class AIDialog extends BaseDialog { } protected _getCancelButtonItem(): NamedToolbarItem { - const width = getActionButtonWidth(); + const width = this._getActionButtonWidth(); return { name: 'cancel', toolbar: 'bottom', diff --git a/packages/devextreme/js/__internal/ui/m_themes_callback.ts b/packages/devextreme/js/__internal/ui/m_themes_callback.ts index 8a5897072ef2..65c68a2a8da1 100644 --- a/packages/devextreme/js/__internal/ui/m_themes_callback.ts +++ b/packages/devextreme/js/__internal/ui/m_themes_callback.ts @@ -1,3 +1,5 @@ import Callbacks from '@js/core/utils/callbacks'; export const themeReadyCallback = Callbacks(); + +export const themeModeChangedCallback = Callbacks(); diff --git a/packages/devextreme/js/__internal/ui/overlay/overlay.ts b/packages/devextreme/js/__internal/ui/overlay/overlay.ts index e1a18de96da5..950da3e80057 100644 --- a/packages/devextreme/js/__internal/ui/overlay/overlay.ts +++ b/packages/devextreme/js/__internal/ui/overlay/overlay.ts @@ -46,6 +46,7 @@ import windowUtils from '@ts/core/utils/m_window'; import type { OptionChanged } from '@ts/core/widget/types'; import type { SupportedKeys } from '@ts/core/widget/widget'; import Widget from '@ts/core/widget/widget'; +import { themeModeChangedCallback } from '@ts/ui/m_themes_callback'; import type { BaseControllerProperties, ControllerOverlayElements, @@ -273,6 +274,8 @@ class Overlay< _viewPortChangeHandle?: () => void; + _themeModeChangeHandle?: () => void; + _proxiedDocumentDownHandler?: EventHandler; _supportedKeys(): SupportedKeys { @@ -414,6 +417,7 @@ class Overlay< this._$wrapper.attr('data-bind', 'dxControlsDescendantBindings: true'); this._toggleViewPortSubscription(true); + this._toggleThemeModeSubscription(true); const { hideTopOverlayHandler } = this.option(); @@ -631,6 +635,42 @@ class Overlay< this._refresh(); } + _toggleThemeModeSubscription(toggle: boolean): void { + if (this._themeModeChangeHandle) { + themeModeChangedCallback.remove(this._themeModeChangeHandle); + } + + if (toggle) { + this._themeModeChangeHandle = (): void => { + this._themeModeChangeHandler(); + }; + + themeModeChangedCallback.add(this._themeModeChangeHandle); + } + } + + _themeModeChangeHandler(): void { + if (!this._isVisible()) { + return; + } + + const { $container } = this._positionController; + const wrapper = this._$wrapper?.get(0) as HTMLElement | undefined; + + if (!$container || $container.get(0) === wrapper?.parentElement) { + return; + } + + const focused = domAdapter.getActiveElement(wrapper) as HTMLElement | null; + const shouldRestoreFocus = !!wrapper && !!focused && domUtils.contains(wrapper, focused); + + this._moveToContainer(); + + if (shouldRestoreFocus) { + focused?.focus(); + } + } + _renderWrapperAttributes(): void { const { wrapperAttr } = this.option(); @@ -1583,6 +1623,7 @@ class Overlay< } this._toggleViewPortSubscription(false); + this._toggleThemeModeSubscription(false); this._toggleSubscriptions(false); this._updateZIndexStackPosition(false); diff --git a/packages/devextreme/js/__internal/ui/overlay/overlay_position_controller.ts b/packages/devextreme/js/__internal/ui/overlay/overlay_position_controller.ts index cc3bef9acf77..4570031c6a80 100644 --- a/packages/devextreme/js/__internal/ui/overlay/overlay_position_controller.ts +++ b/packages/devextreme/js/__internal/ui/overlay/overlay_position_controller.ts @@ -173,7 +173,6 @@ export class OverlayPositionController< } get $container(): dxElementWrapper | undefined { - // NOTE: swatch classes can be updated runtime this.updateContainer(); return this._$markupContainer; diff --git a/packages/devextreme/js/__internal/ui/popup/__tests__/popup_position_controller.test.ts b/packages/devextreme/js/__internal/ui/popup/__tests__/popup_position_controller.test.ts index cefbb17620de..bb60abe2c61d 100644 --- a/packages/devextreme/js/__internal/ui/popup/__tests__/popup_position_controller.test.ts +++ b/packages/devextreme/js/__internal/ui/popup/__tests__/popup_position_controller.test.ts @@ -9,6 +9,8 @@ import type { PopupControllerProperties } from '../popup_position_controller'; import { PopupPositionController } from '../popup_position_controller'; const SWATCH_CLASS = 'dx-swatch-custom'; +const MODE_CLASS = 'dx-theme-mode-dark'; +const MODE_STYLES = '.mode-dark { --dx-theme-mode: dark; }'; describe('PopupPositionController drag and resize area', () => { let viewPortElement: HTMLElement = document.createElement('div'); @@ -31,6 +33,10 @@ describe('PopupPositionController drag and resize area', () => { .querySelector('.owner') as Element, ); + const ownerInMode = (): dxElementWrapper => $( + appended('
').querySelector('.owner') as Element, + ); + const controllerFor = ( properties: Partial, $root: dxElementWrapper = owner(), @@ -45,6 +51,7 @@ describe('PopupPositionController drag and resize area', () => { ): unknown => controllerFor(properties, $root).$dragResizeContainer?.get(0); beforeEach(() => { + document.head.innerHTML = ``; viewPortElement = appended(); viewPortElement.className = 'dx-viewport'; viewPort(viewPortElement); @@ -52,6 +59,7 @@ describe('PopupPositionController drag and resize area', () => { afterEach(() => { viewPort(null); + document.head.innerHTML = ''; document.body.innerHTML = ''; }); @@ -82,18 +90,21 @@ describe('PopupPositionController drag and resize area', () => { expect(areaFor({ dragAndResizeArea: appended(), dragOutsideBoundary: true })).toBe(window); }); - describe('for an element inside a swatch', () => { + describe.each([ + { scope: 'a swatch', owner: ownerInSwatch, containerClass: SWATCH_CLASS }, + { scope: 'a theme mode', owner: ownerInMode, containerClass: MODE_CLASS }, + ])('for an element inside $scope', ({ owner: ownerInScope, containerClass }) => { it('is the view port, not the container the markup goes into', () => { - const controller = controllerFor({}, ownerInSwatch()); + const controller = controllerFor({}, ownerInScope()); expect(controller.$dragResizeContainer?.get(0)).toBe(viewPortElement); - expect(controller.$container?.get(0)?.classList.contains(SWATCH_CLASS)).toBe(true); + expect(controller.$container?.get(0)?.classList.contains(containerClass)).toBe(true); }); it('is still the container the popup was given', () => { const container = appended(); - expect(areaFor({ container }, ownerInSwatch())).toBe(container); + expect(areaFor({ container }, ownerInScope())).toBe(container); }); }); }); diff --git a/packages/devextreme/js/__internal/ui/speed_dial_action/speed_dial_main_item.ts b/packages/devextreme/js/__internal/ui/speed_dial_action/speed_dial_main_item.ts index 8fe2f4a5ed6f..22034f2fc122 100644 --- a/packages/devextreme/js/__internal/ui/speed_dial_action/speed_dial_main_item.ts +++ b/packages/devextreme/js/__internal/ui/speed_dial_action/speed_dial_main_item.ts @@ -17,6 +17,7 @@ import { } from '@js/ui/themes'; import errors from '@js/ui/widget/ui.errors'; import swatchContainer from '@ts/core/utils/swatch_container'; +import { themeLength } from '@ts/core/utils/theme_length'; import type { OptionChanged } from '@ts/core/widget/types'; import type SpeedDialAction from './speed_dial_action'; @@ -35,6 +36,12 @@ type SpeedDialActionPosition = Omit & { of?: PositionConfig['of'] | dxElementWrapper | null; }; +interface ActionsGeometry { + indent: number; + childIndent: number; + childOffset: number; +} + let speedDialMainItem: SpeedDialMainItem | null = null; const modifyActionOptions = (action: SpeedDialAction): SpeedDialItemProperties => { @@ -314,7 +321,7 @@ class SpeedDialMainItem extends SpeedDialItem { for (const action of actions) { const $actionElement = $('
') - .appendTo(getSwatchContainer(action.$element())); + .appendTo(getSwatchContainer(action.$element()) ?? $()); eventsEngine.off($actionElement, 'click'); eventsEngine.on($actionElement, 'click', () => { @@ -351,13 +358,13 @@ class SpeedDialMainItem extends SpeedDialItem { _getDirectionIndex( actions: SpeedDialItem[], direction: SpeedDialItemProperties['direction'], + geometry: ActionsGeometry, ): number { const directionIndex = 1; if (direction === 'auto') { const contentHeight = getHeight(this.$content()); - const indent = this.initialOption('indent') as unknown as number; - const childIndent = this.initialOption('childIndent') as unknown as number; + const { indent, childIndent } = geometry; const actionsHeight = indent + childIndent * actions.length - contentHeight; const offsetTop = this.$content()?.offset()?.top ?? 0; @@ -375,24 +382,44 @@ class SpeedDialMainItem extends SpeedDialItem { return direction !== 'down' ? -directionIndex : directionIndex; } + /* + * Where the action buttons go, relative to the main button: the theme declares these lengths on + * the FAB root and the runtime reads them back (fluent-next); a theme that declares nothing keeps + * the per-theme literals from the default options. + */ + _getActionsGeometry(): ActionsGeometry { + const $element = this.$element(); + const length = ( + property: string, + option: keyof ActionsGeometry, + ): number => themeLength($element, property) + ?? (this.initialOption(option) as unknown as number); + + return { + indent: length('--dx-speed-dial-action-fa-button-offset', 'indent'), + childIndent: length('--dx-speed-dial-action-fa-button-spacing', 'childIndent'), + childOffset: length('--dx-speed-dial-action-fa-button-with-label-inset-inline', 'childOffset'), + }; + } + _getActionPosition(actions: SpeedDialItem[], index: number): SpeedDialActionPosition { const action = actions[index]; const hasActionLabel = Boolean(action._options.silent('label')); + const geometry = this._getActionsGeometry(); + const { indent, childIndent, childOffset } = geometry; - const actionOffsetXValue = this.initialOption('childOffset') as unknown as number; let actionOffsetX = 0; if (hasActionLabel && !this._$label) { actionOffsetX = this._isPositionLeft(this._getPosition()) - ? actionOffsetXValue - : -actionOffsetXValue; + ? childOffset + : -childOffset; } - const indent = this.initialOption('indent') as unknown as number; - const childIndent = this.initialOption('childIndent') as unknown as number; const actionOffsetYValue = indent + childIndent * index; const { direction } = this.option(); - const actionOffsetY = this._getDirectionIndex(actions, direction) * actionOffsetYValue; + const directionIndex = this._getDirectionIndex(actions, direction, geometry); + const actionOffsetY = directionIndex * actionOffsetYValue; let actionPositionAtMy: HorizontalAlignment = 'center'; @@ -483,7 +510,7 @@ export function initAction(newAction: SpeedDialAction): void { if (!speedDialMainItem) { const $fabMainElement = $('
') - .appendTo(getSwatchContainer(newAction.$element())); + .appendTo(getSwatchContainer(newAction.$element()) ?? $()); speedDialMainItem = newAction._createComponent( $fabMainElement, diff --git a/packages/devextreme/js/__internal/ui/themes.ts b/packages/devextreme/js/__internal/ui/themes.ts index 537b6e7f29a9..4c0441708d09 100644 --- a/packages/devextreme/js/__internal/ui/themes.ts +++ b/packages/devextreme/js/__internal/ui/themes.ts @@ -11,7 +11,8 @@ import { changeCallback, originalViewPort, value as viewPortValue } from '@js/co import { getWindow, hasWindow } from '@js/core/utils/window'; import errors from '@js/ui/widget/ui.errors'; import { uiLayerInitialized } from '@ts/core/utils/m_common'; -import { themeReadyCallback } from '@ts/ui/m_themes_callback'; +import { resolvedThemeMode } from '@ts/core/utils/theme_mode'; +import { themeModeChangedCallback, themeReadyCallback } from '@ts/ui/m_themes_callback'; const window = getWindow(); const ready = readyCallbacks.add; @@ -40,6 +41,22 @@ let defaultTimeout = 15000; const THEME_MARKER_PREFIX = 'dx.'; +const ACCENT_COLOR_PROPERTY = '--dx-accent-color'; + +const VALUES_THAT_POINT_AT_ANOTHER_COLOR = [ + 'currentcolor', 'inherit', 'initial', 'unset', 'revert', 'revert-layer', +]; + +function isValidColor(value: string): boolean { + const probe = domAdapter.createElement('div'); + + probe.style.color = value; + + const parsed = probe.style.color.trim().toLowerCase(); + + return parsed !== '' && !VALUES_THAT_POINT_AT_ANOTHER_COLOR.includes(parsed); +} + function readThemeMarker(): string | null { if (!hasWindow()) { return null; @@ -222,7 +239,6 @@ function initContext(newContext): void { } function getCssClasses(themeName?: string): string[] { - // @ts-expect-error ts-error // eslint-disable-next-line @stylistic/max-len // eslint-disable-next-line no-param-reassign,@typescript-eslint/no-use-before-define, @typescript-eslint/prefer-nullish-coalescing themeName = themeName || current(); @@ -287,7 +303,7 @@ export function detachCssClasses(element: dxElementWrapper): void { // eslint-disable-next-line @stylistic/max-len // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types,@typescript-eslint/explicit-function-return-type,consistent-return -export function current(options) { +export function current(options?) { if (!arguments.length) { currentThemeName = currentThemeName || readThemeMarker(); // eslint-disable-next-line @typescript-eslint/no-unsafe-return @@ -350,13 +366,10 @@ export function init(options): void { current(options); } -function isTheme(themeRegExp: string, themeName: string): boolean { - if (!themeName) { - // eslint-disable-next-line no-param-reassign - themeName = currentThemeName || readThemeMarker(); - } +function isTheme(themeRegExp: string, themeName?: string): boolean { + const name: string | null = themeName || currentThemeName || readThemeMarker(); - return new RegExp(themeRegExp).test(themeName); + return !!name && new RegExp(themeRegExp).test(name); } export function isMaterial(themeName: string): boolean { @@ -367,6 +380,10 @@ export function isFluent(themeName: string): boolean { return isTheme('fluent', themeName); } +export function isFluentNext(themeName: string): boolean { + return isTheme('fluent-next', themeName); +} + export function isMaterialBased(themeName: string): boolean { return isMaterial(themeName) || isFluent(themeName); } @@ -375,7 +392,7 @@ export function isGeneric(themeName: string): boolean { return isTheme('generic', themeName); } -export function isDark(themeName: string): boolean { +export function isDark(themeName?: string): boolean { return isTheme('dark', themeName); } @@ -383,6 +400,50 @@ export function isCompact(themeName: string): boolean { return isTheme('compact', themeName); } +export function mode(element: Element | dxElementWrapper): 'light' | 'dark' { + return resolvedThemeMode(element) ?? (isDark() ? 'dark' : 'light'); +} + +export function refreshMode(): void { + themeModeChangedCallback.fire(); +} + +export function customAccentColor(): string; +export function customAccentColor(color: string | null): void; +export function customAccentColor(color?: string | null): string | undefined { + if (!hasWindow()) { + return color === undefined ? '' : undefined; + } + + const root = context.documentElement; + + if (color === undefined) { + return window.getComputedStyle(root).getPropertyValue(ACCENT_COLOR_PROPERTY).trim(); + } + + if (color === null || color === '') { + root.style.removeProperty(ACCENT_COLOR_PROPERTY); + + return undefined; + } + + if (!isValidColor(color)) { + errors.log('W0024', color); + + return undefined; + } + + const themeName = current(); + + if (themeName && !isFluentNext(themeName)) { + errors.log('W0025', themeName); + } + + root.style.setProperty(ACCENT_COLOR_PROPERTY, color); + + return undefined; +} + // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types function themeReady(callback): void { themeReadyCallback.add(callback); @@ -511,6 +572,9 @@ export default { isMaterial, isFluent, isMaterialBased, + mode, + refreshMode, + customAccentColor, detachCssClasses, attachCssClasses, current, diff --git a/packages/devextreme/js/__internal/viz/__tests__/color_math.test.ts b/packages/devextreme/js/__internal/viz/__tests__/color_math.test.ts new file mode 100644 index 000000000000..9ee45a0d2c29 --- /dev/null +++ b/packages/devextreme/js/__internal/viz/__tests__/color_math.test.ts @@ -0,0 +1,65 @@ +import { describe, expect, it } from '@jest/globals'; +import { Color } from '@ts/color'; +import { mixColors, shiftChannels, shiftLightness } from '@ts/viz/color_math'; + +const BLUE = 'var(--dx-viz-blue, #0078d4)'; +const GREEN = 'var(--dx-viz-green, #008f04)'; + +describe('mixing two colors', () => { + it('blends literals in js, exactly as the palettes always did', () => { + expect(mixColors('#0078d4', '#008f04', 0.25)) + .toBe(new Color('#0078d4').blend('#008f04', 0.25).toHex()); + }); + + it('hands the mixing to the browser as soon as one side is a name', () => { + expect(mixColors(BLUE, '#008f04', 0.25)) + .toBe('color-mix(in srgb, var(--dx-viz-blue, #0078d4) 75%, #008f04)'); + expect(mixColors('#0078d4', GREEN, 0.25)) + .toBe('color-mix(in srgb, #0078d4 75%, var(--dx-viz-green, #008f04))'); + }); + + it('states the share as the share of the first color', () => { + expect(mixColors(BLUE, GREEN, 0)).toContain('100%'); + expect(mixColors(BLUE, GREEN, 1)).toContain('0%'); + }); + + it('keeps the share short enough to read', () => { + expect(mixColors(BLUE, GREEN, 0.8)).toContain('20%'); + expect(mixColors(BLUE, GREEN, 1 / 3)).toContain('66.6667%'); + }); +}); + +describe('shifting every channel', () => { + it('asks the browser to move the name it was given', () => { + expect(shiftChannels(BLUE, 50)) + .toBe('rgb(from var(--dx-viz-blue, #0078d4) calc(r + 50) calc(g + 50) calc(b + 50))'); + }); + + it('carries a negative shift as a negative step', () => { + expect(shiftChannels(BLUE, -25)).toContain('calc(r + -25)'); + }); +}); + +describe('fanning the lightness out over the cycles', () => { + it('leaves the middle cycle alone', () => { + expect(shiftLightness(BLUE, 1, 3)).toBe(BLUE); + }); + + it('darkens the cycles below the middle, down to a floor', () => { + expect(shiftLightness(BLUE, 0, 3)) + .toBe('hsl(from var(--dx-viz-blue, #0078d4) h s calc(l + 1 * (max(calc(l - 133.3333), min(50, calc(l * 0.9))) - l)))'); + }); + + it('lightens the cycles above the middle, up to a ceiling', () => { + expect(shiftLightness(BLUE, 2, 3)) + .toBe('hsl(from var(--dx-viz-blue, #0078d4) h s calc(l + 1 * (min(calc(l + 133.3333), max(80, calc(l + (100 - l) * 0.15))) - l)))'); + }); + + it('moves the outer cycles further than the inner ones', () => { + const inner = shiftLightness(BLUE, 1, 5); + const outer = shiftLightness(BLUE, 0, 5); + + expect(inner).toContain('calc(l + 0.5 * '); + expect(outer).toContain('calc(l + 1 * '); + }); +}); diff --git a/packages/devextreme/js/__internal/viz/__tests__/handed_out.test.ts b/packages/devextreme/js/__internal/viz/__tests__/handed_out.test.ts new file mode 100644 index 000000000000..0f2baf1f7528 --- /dev/null +++ b/packages/devextreme/js/__internal/viz/__tests__/handed_out.test.ts @@ -0,0 +1,229 @@ +import { + afterEach, beforeAll, beforeEach, describe, expect, it, jest, +} from '@jest/globals'; +import { setWindow } from '@js/core/utils/window'; +import * as publicPalette from '@js/viz/palette'; +import * as publicThemes from '@js/viz/themes'; +import { Color } from '@ts/color'; +import { fallbackOf } from '@ts/core/utils/css_variables'; +import type * as HandedOut from '@ts/viz/handed_out'; +import * as rawPalette from '@ts/viz/palette'; +import { getTheme as getRawTheme } from '@ts/viz/themes'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type Theme = Record; + +const palette = publicPalette as unknown as typeof HandedOut; +const { getTheme } = publicThemes as unknown as { getTheme: (name: string) => Theme }; + +const LITERALS = 'fluent next literals'; +const LITERAL_PALETTE = { + simpleSet: ['#0078d4', '#c83d3d', '#008f04', '#eaa300', '#e43ba6', '#865cbf'], + indicatingSet: ['#107c10', '#f7630c', '#c50f1f'], + gradientSet: ['#0078d4', '#008f04'], + accentColor: '#0f6cbd', +}; +const FLUENT_NEXT_THEMES = [ + 'fluent-next.blue.light', + 'fluent-next.blue.light.compact', + 'fluent-next.blue.dark', + 'fluent-next.blue.dark.compact', +]; +const EXTENSION_MODES = ['blend', 'alternate', 'extrapolate']; + +const leftToTheBrowser = (value: unknown): string[] => { + if (typeof value === 'string') { + return /var\(|color-mix\(|from /.test(value) ? [value] : []; + } + + return value && typeof value === 'object' ? Object.values(value).flatMap(leftToTheBrowser) : []; +}; + +const upTo = (count: number): number[] => Array.from({ length: count }, (_, index) => index); + +const generatedFromLiterals = (count: number, options: object): unknown => rawPalette + .generateColors(LITERALS, count, options as Parameters[2]); + +beforeAll(() => { + rawPalette.registerPalette(LITERALS, LITERAL_PALETTE); +}); + +describe.each([ + ['with no window to resolve against', (): void => { setWindow({}, false); }], + ['in a document that resolves no name', (): void => {}], +])('handing the Fluent Next colours out %s', (_, enter) => { + beforeEach(enter); + + afterEach(() => { + setWindow(window, true); + }); + + it('hands out the literal of every name, never the name', () => { + expect(palette.getPalette('Fluent Next', undefined)).toEqual(LITERAL_PALETTE); + expect(palette.getPalette('Fluent Next', { type: 'indicatingSet' })).toEqual(LITERAL_PALETTE.indicatingSet); + expect(palette.getAccentColor('Fluent Next')).toBe(LITERAL_PALETTE.accentColor); + }); + + it.each(EXTENSION_MODES)('extends the palette by %s exactly as it extends the literals', (mode) => { + const parameters = { extensionMode: mode, useHighlight: true }; + const handed = palette.createPalette('Fluent Next', parameters); + const literal = rawPalette.createPalette(LITERALS, parameters); + + expect(palette.generateColors('Fluent Next', 20, { paletteExtensionMode: mode, useHighlight: true })) + .toEqual(generatedFromLiterals(20, { paletteExtensionMode: mode, useHighlight: true })); + expect(upTo(20).map((): unknown => handed.getNextColor(20))) + .toEqual(upTo(20).map((): unknown => literal.getNextColor(20))); + expect(handed.reset().generateColors(20)).toEqual(literal.reset().generateColors(20)); + }); + + it('splits and grades the gradient set from the literals', () => { + const discrete = palette.getDiscretePalette('Fluent Next', 7); + const literalDiscrete = rawPalette.getDiscretePalette(LITERALS, 7, undefined); + const gradient = palette.getGradientPalette('Fluent Next'); + const literalGradient = rawPalette.getGradientPalette(LITERALS, undefined); + + expect(upTo(7).map((index) => discrete.getColor(index))) + .toEqual(upTo(7).map((index) => literalDiscrete.getColor(index))); + expect([0, 0.3, 1].map((ratio) => gradient.getColor(ratio))) + .toEqual([0, 0.3, 1].map((ratio) => literalGradient.getColor(ratio))); + }); + + it.each(FLUENT_NEXT_THEMES)('hands out %s with literals only', (name) => { + const theme = getTheme(name); + const registered: Theme = getRawTheme(name); + + expect(leftToTheBrowser(theme)).toEqual([]); + expect(theme.backgroundColor).toBe(fallbackOf(registered.backgroundColor)); + expect(theme.font.family).toBe(fallbackOf(registered.font.family)); + expect(registered.backgroundColor).toMatch(/^var\(--dx-viz-bg, /); + }); + + it('hands a font weight out as the number every other theme gives', () => { + const theme = getTheme('fluent-next.blue.light'); + const registered: Theme = getRawTheme('fluent-next.blue.light'); + + expect(registered.font.weight).toBe('var(--dx-viz-font-weight, 400)'); + expect(theme.font.weight).toBe(400); + expect(theme.title.font.weight).toBe(600); + }); + + it('leaves every other palette and theme exactly as it was', () => { + expect(palette.getPalette('Material', undefined)).toBe(rawPalette.getPalette('Material', undefined)); + expect(palette.generateColors('Soft Pastel', 20, {})) + .toEqual(rawPalette.generateColors('Soft Pastel', 20, { keepLastColorInEnd: false })); + ['generic.light', 'generic.dark', 'material.blue.light', 'fluent.blue.light', 'fluent.blue.dark'].forEach((name) => { + expect(getTheme(name)).toBe(getRawTheme(name)); + }); + }); +}); + +describe('handing the Fluent Next colours out on a page that paints the names', () => { + const DECLARED_FONT = 'Inter, sans-serif'; + const DECLARED_TITLE_WEIGHT = '700'; + const MIXED = 'color(srgb 0.2 0.4 0.6)'; + const PRIMARY_IN_SRGB = 'color(srgb -0.186828 0.505925 0.943796)'; + let declaredBlue = 'rgb(11, 7, 3)'; + let declaredPrimary = 'rgb(15, 108, 189)'; + + const paint = (written: string): string => { + if (/--dx-viz-font-family|font-weight/.test(written)) { + return 'none'; + } + + if (written.startsWith('color-mix(in srgb, var(--dx-viz-primary,')) { + return PRIMARY_IN_SRGB; + } + + if (/color-mix\(|from /.test(written)) { + return MIXED; + } + + if (written.startsWith('var(--dx-viz-blue,')) { + return declaredBlue; + } + + if (written.startsWith('var(--dx-viz-primary,')) { + return declaredPrimary; + } + + const { r, g, b } = new Color(fallbackOf(written)); + + return `rgb(${r}, ${g}, ${b})`; + }; + + beforeEach(() => { + declaredBlue = 'rgb(11, 7, 3)'; + declaredPrimary = 'rgb(15, 108, 189)'; + jest.spyOn(window, 'getComputedStyle').mockImplementation((element) => ({ + fill: paint((element as SVGElement).style.getPropertyValue('fill')), + getPropertyValue: (name: string): string => ({ + '--dx-viz-font-family': DECLARED_FONT, + '--dx-viz-title-font-weight': DECLARED_TITLE_WEIGHT, + })[name] ?? '', + }) as unknown as CSSStyleDeclaration); + }); + + afterEach(() => { + jest.restoreAllMocks(); + }); + + it('hands out the colour the page paints a name with', () => { + expect((palette.getPalette('Fluent Next', undefined) as Theme).simpleSet[0]).toBe('#0b0703'); + expect(palette.getAccentColor('Fluent Next')).toBe('#0f6cbd'); + expect((palette.generateColors('Fluent Next', 6) as string[])[0]).toBe('#0b0703'); + expect(palette.createPalette('Fluent Next', {}).getNextColor(undefined)).toBe('#0b0703'); + expect(getTheme('fluent-next.blue.light').bullet.color).toBe('#0b0703'); + }); + + it('hands out what the browser mixes as a colour an application can parse', () => { + const extended = palette.generateColors('Fluent Next', 12, { paletteExtensionMode: 'blend' }) as string[]; + + expect(extended.filter((color) => !/^#[0-9a-f]{6}$/.test(color))).toEqual([]); + expect(extended).toContain('#336699'); + expect(palette.getDiscretePalette('Fluent Next', 3).getColor(1)).toBe('#336699'); + expect(palette.getGradientPalette('Fluent Next').getColor(0.5)).toBe('#336699'); + }); + + it('asks the page again every time a created palette hands a colour out', () => { + const created = palette.createPalette('Fluent Next', {}); + + declaredBlue = 'rgb(1, 2, 3)'; + + expect(created.getNextColor(undefined)).toBe('#010203'); + }); + + it('hands out a colour the page declares in another colour space as rgb', () => { + declaredPrimary = 'oklch(0.6 0.2 250)'; + + expect(palette.getAccentColor('Fluent Next')).toBe('#0081f1'); + }); + + it('reads a name that is not a colour from what the page declares for it', () => { + expect(getTheme('fluent-next.blue.light').font.family).toBe(DECLARED_FONT); + }); + + it('hands a font weight the page declares out as a number', () => { + const theme = getTheme('fluent-next.blue.light'); + + expect(theme.title.font.weight).toBe(700); + expect(theme.font.weight).toBe(400); + }); + + it('resolves a whole theme with one probe, each distinct value once, and leaves nothing behind', () => { + const root = document.documentElement; + const appended = jest.spyOn(root, 'appendChild'); + const names = new Set(leftToTheBrowser(getRawTheme('fluent-next.blue.dark'))); + + getTheme('fluent-next.blue.dark'); + + expect(appended).toHaveBeenCalledTimes(1); + + const probe = appended.mock.calls[0][0] as Element; + const probed = Array.from(probe.children, (swatch) => (swatch as SVGElement).style.getPropertyValue('fill')) + .filter((fill) => names.has(fill)); + + expect(probed).toHaveLength(names.size); + expect(new Set(probed).size).toBe(names.size); + expect(root.contains(probe)).toBe(false); + }); +}); diff --git a/packages/devextreme/js/__internal/viz/__tests__/palette.test.ts b/packages/devextreme/js/__internal/viz/__tests__/palette.test.ts new file mode 100644 index 000000000000..cc9030ddbc49 --- /dev/null +++ b/packages/devextreme/js/__internal/viz/__tests__/palette.test.ts @@ -0,0 +1,58 @@ +import { describe, expect, it } from '@jest/globals'; +import { createPalette, getDiscretePalette, getGradientPalette } from '@ts/viz/palette'; + +describe('a palette of published names', () => { + const asked = (count: number, extensionMode: string): string[] => createPalette( + 'fluent next', + { useHighlight: true, extensionMode }, + ).generateColors(count); + + it('hands the names themselves to the widget while the palette suffices', () => { + expect(asked(6, 'blend')).toEqual([ + 'var(--dx-viz-blue, #0078d4)', + 'var(--dx-viz-red, #c83d3d)', + 'var(--dx-viz-green, #008f04)', + 'var(--dx-viz-yellow, #eaa300)', + 'var(--dx-viz-pink, #e43ba6)', + 'var(--dx-viz-purple, #865cbf)', + ]); + }); + + it('mixes further colors in css, so they follow the names they are mixed from', () => { + expect(asked(7, 'blend')[2]) + .toBe('color-mix(in srgb, var(--dx-viz-red, #c83d3d) 50%, var(--dx-viz-green, #008f04))'); + }); + + it('shades further colors in css when the palette is cycled', () => { + const colors = asked(12, 'alternate'); + + expect(colors).toHaveLength(12); + expect(colors[6]).toBe('rgb(from var(--dx-viz-blue, #0078d4) calc(r + 50) calc(g + 50) calc(b + 50))'); + }); + + it('fans the cycles out in css when the palette is extrapolated', () => { + const colors = asked(12, 'extrapolate'); + + expect(colors[0]).toBe('hsl(from var(--dx-viz-blue, #0078d4) h s calc(l + 1 * (max(calc(l - 75), min(50, calc(l * 0.9))) - l)))'); + expect(colors[6]).toBe('hsl(from var(--dx-viz-blue, #0078d4) h s calc(l + 1 * (min(calc(l + 75), max(80, calc(l + (100 - l) * 0.15))) - l)))'); + }); + + it('keeps the gradient in css too', () => { + expect(getGradientPalette('fluent next', undefined).getColor(0.25)) + .toBe('color-mix(in srgb, var(--dx-viz-blue, #0078d4) 75%, var(--dx-viz-green, #008f04))'); + }); + + it.each([['test'], [-1], [2], [undefined]])('answers with nothing when the ratio is %s', (ratio) => { + expect(getGradientPalette('fluent next', undefined).getColor(ratio as number)).toBeNull(); + }); + + it('splits into discrete colors in css, so a tree map follows the names too', () => { + const discrete = getDiscretePalette('fluent next', 3, undefined); + + expect([discrete.getColor(0), discrete.getColor(1), discrete.getColor(2)]).toEqual([ + 'color-mix(in srgb, var(--dx-viz-blue, #0078d4) 100%, var(--dx-viz-blue, #0078d4))', + 'color-mix(in srgb, var(--dx-viz-blue, #0078d4) 50%, var(--dx-viz-green, #008f04))', + 'color-mix(in srgb, var(--dx-viz-green, #008f04) 100%, var(--dx-viz-green, #008f04))', + ]); + }); +}); diff --git a/packages/devextreme/js/__internal/viz/chart_components/base_chart.ts b/packages/devextreme/js/__internal/viz/chart_components/base_chart.ts index 1ba9d316429e..2cb8cc40e4eb 100644 --- a/packages/devextreme/js/__internal/viz/chart_components/base_chart.ts +++ b/packages/devextreme/js/__internal/viz/chart_components/base_chart.ts @@ -28,6 +28,7 @@ import { extend } from '@js/core/utils/extend'; import { reverseEach as _reverseEach } from '@js/core/utils/iterator'; import { isDefined as _isDefined, isFunction } from '@js/core/utils/type'; import trackerModule from '@js/viz/chart_components/tracker'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { LayoutManager } from '@ts/viz/chart_components/layout_manager'; import { ThemeManager } from '@ts/viz/components/chart_theme_manager'; import { validateData } from '@ts/viz/components/data_validator'; @@ -278,13 +279,13 @@ function getLegendFields(name) { }; } -function getLegendSettings(legendDataField) { +function getLegendSettings(legendDataField, element) { const formatObjectFields = getLegendFields(legendDataField); return { getFormatObject(data) { const res = {}; res[formatObjectFields.indexField] = data.id; - res[formatObjectFields.colorField] = data.states.normal.fill; + res[formatObjectFields.colorField] = paintedColor(data.states.normal.fill, element); res[formatObjectFields.nameField] = data.text; return res; }, @@ -917,7 +918,7 @@ export class BaseChart extends BaseWidget { } _createLegend() { - const legendSettings = getLegendSettings(this._legendDataField); + const legendSettings = getLegendSettings(this._legendDataField, this._renderer.root.element); this._legend = new Legend({ renderer: this._renderer, diff --git a/packages/devextreme/js/__internal/viz/color_math.ts b/packages/devextreme/js/__internal/viz/color_math.ts new file mode 100644 index 000000000000..ec6197b657ae --- /dev/null +++ b/packages/devextreme/js/__internal/viz/color_math.ts @@ -0,0 +1,76 @@ +import { Color } from '@ts/color'; +import { fallbackOf, isCssVariableReference } from '@ts/core/utils/css_variables'; + +const PERCENT = 100; +const LIGHTNESS_FLOOR = 'min(50, calc(l * 0.9))'; +const LIGHTNESS_CEILING = 'max(80, calc(l + (100 - l) * 0.15))'; + +function rounded(value: number): number { + return Number(value.toFixed(4)); +} + +function shiftLightnessOfName(color: string, cycleIndex: number, cycleCount: number): string { + const cycleMiddle = (cycleCount - 1) / 2; + const cycleDiff = cycleIndex - cycleMiddle; + + if (cycleDiff === 0) { + return color; + } + + const span = rounded((cycleCount - 1 / cycleCount) * 0.5 * PERCENT); + const ratio = rounded(Math.abs(cycleDiff / cycleMiddle)); + const bound = cycleDiff < 0 + ? `max(calc(l - ${span}), ${LIGHTNESS_FLOOR})` + : `min(calc(l + ${span}), ${LIGHTNESS_CEILING})`; + + return `hsl(from ${color} h s calc(l + ${ratio} * (${bound} - l)))`; +} + +function shiftLightnessOfLiteral(color: string, cycleIndex: number, cycleCount: number): string { + const { hsl } = new Color(color); + let l = hsl.l / PERCENT; + const diapason = cycleCount - 1 / cycleCount; + let minL = l - diapason * 0.5; + let maxL = l + diapason * 0.5; + const cycleMiddle = (cycleCount - 1) / 2; + const cycleDiff = cycleIndex - cycleMiddle; + + if (minL < Math.min(0.5, l * 0.9)) { + minL = Math.min(0.5, l * 0.9); + } + + if (maxL > Math.max(0.8, l + (1 - l) * 0.15)) { + maxL = Math.max(0.8, l + (1 - l) * 0.15); + } + + if (cycleDiff < 0) { + l -= ((minL - l) * cycleDiff) / cycleMiddle; + } else { + l += (maxL - l) * (cycleDiff / cycleMiddle); + } + hsl.l = l * PERCENT; + + return Color.fromHSL(hsl).toHex(); +} + +export function mixColors(first: string, second: string, ratio: number): string { + if (isCssVariableReference(first) || isCssVariableReference(second)) { + return `color-mix(in srgb, ${first} ${rounded((1 - ratio) * PERCENT)}%, ${second})`; + } + + return new Color(fallbackOf(first)).blend(fallbackOf(second), ratio).toHex(); +} + +export function shiftChannels(color: string, shift: number): string { + if (isCssVariableReference(color)) { + return `rgb(from ${color} calc(r + ${shift}) calc(g + ${shift}) calc(b + ${shift}))`; + } + + return new Color(color).alter(shift).toHex(); +} + +export function shiftLightness(color: string, cycleIndex: number, cycleCount: number): string { + return isCssVariableReference(color) + ? shiftLightnessOfName(color, cycleIndex, cycleCount) + : shiftLightnessOfLiteral(color, cycleIndex, cycleCount); +} diff --git a/packages/devextreme/js/__internal/viz/components/legend.ts b/packages/devextreme/js/__internal/viz/components/legend.ts index 2da3e4ff5b3a..3f3afbe6bd9b 100644 --- a/packages/devextreme/js/__internal/viz/components/legend.ts +++ b/packages/devextreme/js/__internal/viz/components/legend.ts @@ -32,6 +32,7 @@ import { Deferred } from '@js/core/utils/deferred'; import { extend } from '@js/core/utils/extend'; import { clone } from '@js/core/utils/object'; import { isDefined, isFunction } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { LayoutElement, WrapperLayoutElement } from '@ts/viz/core/layout_element'; import { getFuncIri, processHatchingAttrs } from '@ts/viz/core/renderers/renderer'; import { Title } from '@ts/viz/core/title'; @@ -93,6 +94,49 @@ function getState(state, color, stateName) { }); } +function statesOf(item) { + const { normal, hover, selection } = item.states; + + return [normal, hover, selection].filter(isDefined); +} + +function painter(element) { + const painted = new Map(); + + return (fill) => { + if (!painted.has(fill)) { + painted.set(fill, paintedColor(fill, element)); + } + + return painted.get(fill); + }; +} + +function paintFills(items, paint) { + const handed = items + .flatMap((item) => statesOf(item).map((state) => ({ state, name: state.fill, painted: paint(state.fill) }))) + .filter(({ name, painted }) => painted !== name); + + handed.forEach(({ state, painted }) => { + state.fill = painted; + }); + + return () => { + handed.forEach(({ state, name, painted }) => { + if (state.fill === painted) { + state.fill = name; + } + }); + }; +} + +function paintedItem(item, paint) { + const withPaintedFill = (holder) => (holder ? { ...holder, fill: paint(holder.fill) } : holder); + const states = Object.fromEntries(Object.entries(item.states).map(([name, state]) => [name, withPaintedFill(state)])); + + return { ...item, marker: withPaintedFill(item.marker), states }; +} + function getAttributes(item, state, size) { const attrs = processHatchingAttrs(item, state); @@ -446,12 +490,26 @@ extend(legendPrototype, { dataItem.states.normal.opacity = dataItem.states.hover.opacity = dataItem.states.selection.opacity = value; }, }); + // @ts-expect-error + Object.defineProperty(dataItem.marker, 'fill', { + get() { + // @ts-expect-error + return dataItem.states.normal.fill; + }, + set(value) { + // @ts-expect-error + dataItem.states.normal.fill = value; + }, + }); return dataItem; }); if (options.customizeItems) { + const restoreNames = paintFills(data, painter(that._renderer.root.element)); + that._data = options.customizeItems(data.slice()) || data; + restoreNames(); } that._boundingRect = { @@ -565,6 +623,9 @@ extend(legendPrototype, { } : options.markerTemplate; const template = that._widget._getTemplate(templateFunction); + const modelOf = options.markerTemplate + ? (dataItem) => paintedItem(dataItem, painter(renderer.root.element)) + : (dataItem) => dataItem; const markersGroup = that._markersGroup; @@ -607,7 +668,7 @@ extend(legendPrototype, { dataItem.marker = getAttributes(item, state, dataItem.size); markerGroup.clear(); template.render({ - model: dataItem, + model: modelOf(dataItem), container: markerGroup.element, onRendered: that._deferredItems[i].resolve, }); diff --git a/packages/devextreme/js/__internal/viz/core/export.ts b/packages/devextreme/js/__internal/viz/core/export.ts index 1add71f278cd..1189fd57312e 100644 --- a/packages/devextreme/js/__internal/viz/core/export.ts +++ b/packages/devextreme/js/__internal/viz/core/export.ts @@ -23,14 +23,16 @@ import { logger } from '@js/core/utils/console'; import { extend } from '@js/core/utils/extend'; import { getWidth } from '@js/core/utils/size'; import { HIDDEN_FOR_EXPORT } from '@js/core/utils/svg'; -import { isDefined } from '@js/core/utils/type'; +import { isDefined, isString } from '@js/core/utils/type'; import { getWindow } from '@js/core/utils/window'; import { export as _export, image as imageExporter, pdf as pdfExporter, svg as svgExporter, } from '@js/exporter'; -import { getTheme } from '@js/viz/themes'; +import domAdapter from '@ts/core/dom_adapter'; +import { copyResolvedStyles, resolvedInScope } from '@ts/core/utils/css_variables'; import { Renderer } from '@ts/viz/core/renderers/renderer'; import { patchFontOptions } from '@ts/viz/core/utils'; +import { getTheme } from '@ts/viz/themes'; const pointerActions = [pointerEvents.down, pointerEvents.move].join(' '); @@ -291,9 +293,11 @@ function createMenuItems(renderer, options) { } function getBackgroundColorFromMarkup(markup) { - const parsedMarkup = GET_COLOR_REGEX.exec(markup); + if (!isString(markup)) { + return $(markup).attr('data-backgroundcolor'); + } - return parsedMarkup?.[1]; + return GET_COLOR_REGEX.exec(markup)?.[1]; } export const exportFromMarkup = function (markup, options) { @@ -306,7 +310,7 @@ export const exportFromMarkup = function (markup, options) { options.fileSavingAction = options.onFileSaving; options.margin = isDefined(options.margin) ? options.margin : MARGIN; // @ts-expect-error - options.backgroundColor = isDefined(options.backgroundColor) ? options.backgroundColor : getBackgroundColorFromMarkup(markup) || getTheme().backgroundColor; + options.backgroundColor = resolvedInScope(isDefined(options.backgroundColor) ? options.backgroundColor : getBackgroundColorFromMarkup(markup) || getTheme().backgroundColor, domAdapter.getDocumentElement()); _export(markup, options, getCreatorFunc(options.format)); }; @@ -335,11 +339,15 @@ export let combineMarkups = function (widgets, options = { }) { const exportItems = widgets.reduce((r, row, rowIndex) => { const rowInfo = row.reduce((r, item, colIndex) => { const size = item.getSize(); - const backgroundColor = item.option('backgroundColor') || getTheme(item.option('theme')).backgroundColor; - const node = $(item.element()) - .find('svg') - .get(0) - .cloneNode(true); + const container = $(item.element()); + const backgroundColor = resolvedInScope( + item.option('backgroundColor') || getTheme(item.option('theme')).backgroundColor, + container.get(0), + ); + const source = container.find('svg').get(0); + const node = source.cloneNode(true) as Element; + + copyResolvedStyles(source, node); backgroundColor && r.backgroundColors.indexOf(backgroundColor) === -1 && r.backgroundColors.push(backgroundColor); @@ -701,7 +709,7 @@ function getExportOptions(widget, exportOptions, fileName, format) { return { format: format || DEFAULT_EXPORT_FORMAT, fileName: fileName || exportOptions.fileName || 'file', - backgroundColor: exportOptions.backgroundColor, + backgroundColor: resolvedInScope(exportOptions.backgroundColor, $(widget.element()).get(0)), width, height, margin: exportOptions.margin, diff --git a/packages/devextreme/js/__internal/viz/core/themes/fluent-next/index.ts b/packages/devextreme/js/__internal/viz/core/themes/fluent-next/index.ts new file mode 100644 index 000000000000..3408e8f9f1e0 --- /dev/null +++ b/packages/devextreme/js/__internal/viz/core/themes/fluent-next/index.ts @@ -0,0 +1,417 @@ +const FONT_FAMILY = '\'segoe ui\', -apple-system, BlinkMacSystemFont, \'avenir next\', avenir, \'segoe ui\', \'helvetica neue\', helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif'; + +const VIZ_BG = '--dx-viz-bg'; +const VIZ_BG_ACTIVE = '--dx-viz-bg-active'; +const VIZ_BG_HIGHER = '--dx-viz-bg-higher'; +const VIZ_BG_HOVERED = '--dx-viz-bg-hovered'; +const VIZ_BORDER = '--dx-viz-border'; +const VIZ_BORDER_ACTIVE = '--dx-viz-border-active'; +const VIZ_BORDER_HOVERED = '--dx-viz-border-hovered'; +const VIZ_CONTENT = '--dx-viz-content'; +const VIZ_CONTENT_ORANGE = '--dx-viz-content-orange'; +const VIZ_CONTENT_SUBTLE = '--dx-viz-content-subtle'; +const VIZ_CONTENT_SUBTLER = '--dx-viz-content-subtler'; +const VIZ_CROSSHAIR = '--dx-viz-crosshair'; +const VIZ_GRAY_SUBTLE = '--dx-viz-gray-subtle'; +const VIZ_GRID = '--dx-viz-grid'; +const VIZ_PURPLE_SUBTLE = '--dx-viz-purple-subtle'; +const VIZ_TOOLTIP_BG = '--dx-viz-tooltip-bg'; +const VIZ_TOOLTIP_CONTENT = '--dx-viz-tooltip-content'; +const VIZ_FONT_FAMILY = '--dx-viz-font-family'; +const VIZ_EXPORT_FONT_WEIGHT = '--dx-viz-export-font-weight'; +const VIZ_FONT_WEIGHT = '--dx-viz-font-weight'; +const VIZ_LABEL_FONT_WEIGHT = '--dx-viz-label-font-weight'; +const VIZ_LEGEND_TITLE_FONT_WEIGHT = '--dx-viz-legend-title-font-weight'; +const VIZ_TITLE_FONT_WEIGHT = '--dx-viz-title-font-weight'; + +const VIZ_PRIMARY = '--dx-viz-primary'; + +const VIZ_DANGER = '--dx-viz-danger'; + +const VIZ_BLUE = '--dx-viz-blue'; +const VIZ_GRAY = '--dx-viz-gray'; +const VIZ_ORANGE = '--dx-viz-orange'; +const VIZ_RED = '--dx-viz-red'; +const VIZ_YELLOW = '--dx-viz-yellow'; + +const VIZ_TILE_BORDER = '--dx-viz-tile-border'; + +const LIGHT = { + [VIZ_BG]: '#ffffff', + [VIZ_BG_ACTIVE]: '#e1e1e1', + [VIZ_BG_HIGHER]: '#ebebeb', + [VIZ_BG_HOVERED]: '#f5f5f5', + [VIZ_BORDER]: '#cbcbcb', + [VIZ_BORDER_ACTIVE]: '#b6b6b6', + [VIZ_BORDER_HOVERED]: '#c0c0c0', + [VIZ_CONTENT]: '#161616', + [VIZ_CONTENT_ORANGE]: '#ad4100', + [VIZ_CONTENT_SUBTLE]: '#444444', + [VIZ_CONTENT_SUBTLER]: '#656565', + [VIZ_CROSSHAIR]: '#b33133', + [VIZ_GRAY_SUBTLE]: '#cfcfcf', + [VIZ_GRID]: '#e1e1e1', + [VIZ_PURPLE_SUBTLE]: '#d5c7f0', + [VIZ_TOOLTIP_BG]: '#242424', + [VIZ_TOOLTIP_CONTENT]: '#ffffff', + [VIZ_FONT_FAMILY]: FONT_FAMILY, + [VIZ_EXPORT_FONT_WEIGHT]: '400', + [VIZ_FONT_WEIGHT]: '400', + [VIZ_LABEL_FONT_WEIGHT]: '600', + [VIZ_LEGEND_TITLE_FONT_WEIGHT]: '200', + [VIZ_TITLE_FONT_WEIGHT]: '600', + + [VIZ_PRIMARY]: '#0f6cbd', + + [VIZ_DANGER]: '#c50f1f', + + [VIZ_BLUE]: '#0078d4', + [VIZ_GRAY]: '#757575', + [VIZ_ORANGE]: '#f7630c', + [VIZ_RED]: '#c83d3d', + [VIZ_YELLOW]: '#eaa300', + + [VIZ_TILE_BORDER]: '#ffffff', +}; + +type PublishedName = keyof typeof LIGHT; + +const DARK: Record = { + ...LIGHT, + [VIZ_BG]: '#242424', + [VIZ_BG_ACTIVE]: '#1d1d1d', + [VIZ_BG_HIGHER]: '#333333', + [VIZ_BG_HOVERED]: '#3b3b3b', + [VIZ_BORDER]: '#767676', + [VIZ_BORDER_ACTIVE]: '#656565', + [VIZ_BORDER_HOVERED]: '#ababab', + [VIZ_CONTENT]: '#ffffff', + [VIZ_CONTENT_ORANGE]: '#f57d48', + [VIZ_CONTENT_SUBTLE]: '#cbcbcb', + [VIZ_CONTENT_SUBTLER]: '#a1a1a1', + [VIZ_CROSSHAIR]: '#e87e78', + [VIZ_GRAY_SUBTLE]: '#4a4a4a', + [VIZ_GRID]: '#4c4c4c', + [VIZ_PURPLE_SUBTLE]: '#563780', + [VIZ_TOOLTIP_BG]: '#ffffff', + [VIZ_TOOLTIP_CONTENT]: '#161616', +}; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any -- description theme option tree +function buildTheme(name: string, fallback: Record): any { + const paint = (published: PublishedName): string => `var(${published}, ${fallback[published]})`; + + return { + name, + defaultPalette: 'Fluent Next', + font: { + family: paint(VIZ_FONT_FAMILY), + weight: paint(VIZ_FONT_WEIGHT), + color: paint(VIZ_CONTENT_SUBTLER), + }, + title: { + font: { + family: paint(VIZ_FONT_FAMILY), + weight: paint(VIZ_TITLE_FONT_WEIGHT), + }, + }, + backgroundColor: paint(VIZ_BG), + primaryTitleColor: paint(VIZ_CONTENT), + secondaryTitleColor: paint(VIZ_CONTENT_SUBTLER), + axisColor: paint(VIZ_CONTENT_SUBTLER), + gridColor: paint(VIZ_GRID), + tooltip: { + color: paint(VIZ_TOOLTIP_BG), + border: { + color: paint(VIZ_BORDER), + }, + font: { + color: paint(VIZ_TOOLTIP_CONTENT), + }, + }, + export: { + backgroundColor: paint(VIZ_BG), + font: { + color: paint(VIZ_CONTENT), + weight: paint(VIZ_EXPORT_FONT_WEIGHT), + }, + button: { + default: { + backgroundColor: paint(VIZ_BG), + borderColor: paint(VIZ_BORDER), + color: paint(VIZ_CONTENT), + }, + hover: { + backgroundColor: paint(VIZ_BG_HOVERED), + borderColor: paint(VIZ_BORDER_HOVERED), + color: paint(VIZ_CONTENT), + }, + focus: { + backgroundColor: paint(VIZ_BG_ACTIVE), + borderColor: paint(VIZ_BORDER_ACTIVE), + color: paint(VIZ_CONTENT), + }, + active: { + backgroundColor: paint(VIZ_BG_ACTIVE), + borderColor: paint(VIZ_BORDER_ACTIVE), + color: paint(VIZ_CONTENT), + }, + }, + }, + legend: { + title: { + font: { + weight: paint(VIZ_LEGEND_TITLE_FONT_WEIGHT), + }, + }, + }, + 'chart:common': { + commonSeriesSettings: { + label: { + border: { + color: paint(VIZ_BORDER), + }, + }, + valueErrorBar: { + color: paint(VIZ_CONTENT), + }, + }, + }, + 'chart:common:axis': { + constantLineStyle: { + color: paint(VIZ_CONTENT), + }, + breakStyle: { + color: paint(VIZ_BORDER), + }, + }, + 'chart:common:annotation': { + color: paint(VIZ_TOOLTIP_BG), + border: { + color: paint(VIZ_TOOLTIP_BG), + }, + font: { + color: paint(VIZ_TOOLTIP_CONTENT), + }, + }, + chart: { + commonPaneSettings: { + border: { + color: paint(VIZ_BORDER), + }, + }, + commonSeriesSettings: { + candlestick: { + reduction: { + color: paint(VIZ_RED), + }, + }, + stock: { + reduction: { + color: paint(VIZ_RED), + }, + }, + }, + crosshair: { + color: paint(VIZ_CROSSHAIR), + label: { + font: { + color: paint(VIZ_BG), + }, + }, + }, + scrollBar: { + color: paint(VIZ_BORDER), + }, + zoomAndPan: { + dragBoxStyle: { + color: paint(VIZ_CONTENT), + }, + }, + }, + gauge: { + rangeContainer: { + backgroundColor: paint(VIZ_BORDER), + }, + valueIndicators: { + _default: { + color: paint(VIZ_CONTENT_SUBTLE), + }, + rangebar: { + color: paint(VIZ_BLUE), + }, + // eslint-disable-next-line spellcheck/spell-checker + trianglemarker: { + color: paint(VIZ_BLUE), + }, + // eslint-disable-next-line spellcheck/spell-checker + twocolorneedle: { + secondColor: paint(VIZ_RED), + }, + // eslint-disable-next-line spellcheck/spell-checker + textcloud: { + color: paint(VIZ_BLUE), + }, + }, + }, + barGauge: { + backgroundColor: paint(VIZ_BG_HIGHER), + }, + bullet: { + color: paint(VIZ_BLUE), + targetColor: paint(VIZ_CONTENT), + }, + sankey: { + label: { + font: { + color: paint(VIZ_CONTENT), + weight: paint(VIZ_LABEL_FONT_WEIGHT), + }, + }, + link: { + color: paint(VIZ_GRAY), + }, + }, + treeMap: { + group: { + color: paint(VIZ_BG_HOVERED), + label: { + font: { + color: paint(VIZ_CONTENT_SUBTLE), + weight: paint(VIZ_LABEL_FONT_WEIGHT), + }, + }, + }, + tile: { + border: { + color: paint(VIZ_TILE_BORDER), + }, + color: paint(VIZ_BLUE), + label: { + font: { + weight: paint(VIZ_LABEL_FONT_WEIGHT), + }, + }, + }, + }, + rangeSelector: { + background: { + color: paint(VIZ_PURPLE_SUBTLE), + }, + selectedRangeColor: paint(VIZ_PRIMARY), + sliderMarker: { + color: paint(VIZ_PRIMARY), + font: { + color: paint(VIZ_BG), + }, + invalidRangeColor: paint(VIZ_DANGER), + }, + sliderHandle: { + color: paint(VIZ_PRIMARY), + }, + shutter: { + color: paint(VIZ_BG), + opacity: 0.75, + }, + scale: { + tick: { + color: paint(VIZ_CONTENT), + }, + minorTick: { + color: paint(VIZ_CONTENT), + }, + breakStyle: { + color: paint(VIZ_BORDER), + }, + }, + }, + map: { + layer: { + label: { + stroke: paint(VIZ_BG), + font: { + color: paint(VIZ_CONTENT), + }, + }, + }, + 'layer:area': { + color: paint(VIZ_GRAY_SUBTLE), + borderColor: paint(VIZ_BG), + hoveredBorderColor: paint(VIZ_CONTENT), + selectedBorderColor: paint(VIZ_CONTENT), + }, + 'layer:line': { + color: paint(VIZ_ORANGE), + hoveredColor: paint(VIZ_CONTENT_ORANGE), + selectedColor: paint(VIZ_CONTENT), + }, + 'layer:marker:dot': { + color: paint(VIZ_BLUE), + borderColor: paint(VIZ_BG), + backColor: paint(VIZ_BG), + }, + 'layer:marker:bubble': { + color: paint(VIZ_BLUE), + hoveredBorderColor: paint(VIZ_CONTENT), + selectedBorderColor: paint(VIZ_CONTENT), + }, + 'layer:marker:pie': { + hoveredBorderColor: paint(VIZ_CONTENT), + selectedBorderColor: paint(VIZ_CONTENT), + }, + legend: { + markerColor: paint(VIZ_BLUE), + }, + background: { + borderColor: paint(VIZ_BORDER), + }, + controlBar: { + color: paint(VIZ_BG), + borderColor: paint(VIZ_CONTENT_SUBTLE), + }, + }, + sparkline: { + barNegativeColor: paint(VIZ_GRAY_SUBTLE), + barPositiveColor: paint(VIZ_GRAY), + firstLastColor: paint(VIZ_BLUE), + lineColor: paint(VIZ_BLUE), + lossColor: paint(VIZ_GRAY_SUBTLE), + maxColor: paint(VIZ_RED), + minColor: paint(VIZ_YELLOW), + pointColor: paint(VIZ_BG), + winColor: paint(VIZ_GRAY), + }, + funnel: { + item: { + border: { + color: paint(VIZ_BG), + }, + }, + }, + }; +} + +const themes = [ + { + baseThemeName: 'fluent.blue.light', + theme: buildTheme('fluent-next.blue.light', LIGHT), + }, + { + baseThemeName: 'fluent-next.blue.light', + theme: { + name: 'fluent-next.blue.light.compact', + }, + }, + { + baseThemeName: 'fluent.blue.dark', + theme: buildTheme('fluent-next.blue.dark', DARK), + }, + { + baseThemeName: 'fluent-next.blue.dark', + theme: { + name: 'fluent-next.blue.dark.compact', + }, + }, +]; + +export default themes; diff --git a/packages/devextreme/js/__internal/viz/core/tooltip.ts b/packages/devextreme/js/__internal/viz/core/tooltip.ts index f67fb18c3581..5b4315f8680b 100644 --- a/packages/devextreme/js/__internal/viz/core/tooltip.ts +++ b/packages/devextreme/js/__internal/viz/core/tooltip.ts @@ -3,7 +3,6 @@ /* eslint-disable @typescript-eslint/no-this-alias */ /* eslint-disable default-case */ /* eslint-disable no-restricted-syntax */ -/* eslint-disable guard-for-in */ /* eslint-disable func-names */ /* eslint-disable import/no-mutable-exports */ /* eslint-disable consistent-return */ @@ -28,6 +27,9 @@ import { normalizeStyleProp } from '@js/core/utils/style'; import { isDefined, isFunction, isPlainObject } from '@js/core/utils/type'; import { getWindow } from '@js/core/utils/window'; import formatHelper from '@js/format_helper'; +import { Color } from '@ts/color'; +import { isCssVariableReference } from '@ts/core/utils/css_variables'; +import swatchContainer from '@ts/core/utils/swatch_container'; import type { ThemeValue } from './base_theme_manager'; import { Plaque } from './plaque'; @@ -41,6 +43,25 @@ const mathMax = Math.max; const mathMin = Math.min; const window = getWindow(); const DEFAULT_HTML_GROUP_WIDTH = 3000; +const PERCENT = 100; + +function foldOpacityIntoFill(styles) { + const { fill, 'fill-opacity': opacity } = styles; + + if (!isDefined(fill) || !isDefined(opacity)) { + return; + } + + delete styles['fill-opacity']; + + if (isCssVariableReference(fill)) { + styles.fill = `color-mix(in srgb, ${fill} ${Number((opacity * PERCENT).toFixed(2))}%, transparent)`; + } else { + const { r, g, b } = new Color(fill); + + styles.fill = `rgba(${r},${g},${b},${opacity})`; + } +} function hideElement($element) { $element.css({ left: '-9999px' }).detach(); @@ -104,13 +125,24 @@ Tooltip.prototype = { this._options = this._widgetRoot = null; }, - _getContainer() { + _getUserContainer() { const options = this._options; let container = $(this._widgetRoot).closest(options.container); if (container.length === 0) { container = $(options.container); } - return (container.length ? container : $('body')).get(0); + return container.get(0); + }, + + _getContainer() { + const container = this._getUserContainer(); + if (container) { + return container; + } + + const scope = swatchContainer.getSwatchContainer(this._widgetRoot); + + return (scope?.length ? scope : $('body')).get(0); }, setTemplate(contentTemplate) { @@ -125,6 +157,7 @@ Tooltip.prototype = { that._options = options; that._textFontStyles = patchFontOptions(options.font); + foldOpacityIntoFill(that._textFontStyles); that._textFontStyles.color = that._textFontStyles.fill; that._wrapper.css({ zIndex: options.zIndex }); @@ -264,8 +297,10 @@ Tooltip.prototype = { // text area const normalizedCSS = {}; for (const name in that._textFontStyles) { - const normalizedName = camelize(name); - normalizedCSS[normalizedName] = normalizeStyleProp(normalizedName, that._textFontStyles[name]); + if (name !== 'fill-opacity') { + const normalizedName = camelize(name); + normalizedCSS[normalizedName] = normalizeStyleProp(normalizedName, that._textFontStyles[name]); + } } that._textGroupHtml.css(normalizedCSS); that._text.css(that._textFontStyles); @@ -413,8 +448,7 @@ Tooltip.prototype = { }, _getCanvas() { - const container = this._getContainer(); - const containerBox = container.getBoundingClientRect(); + const container = this._getUserContainer(); const html = domAdapter.getDocumentElement(); const document = domAdapter.getDocument(); let left = window.pageXOffset || html.scrollLeft || 0; @@ -437,7 +471,8 @@ Tooltip.prototype = { bottom: 0, }; - if (container !== domAdapter.getBody()) { + if (container && container !== domAdapter.getBody()) { + const containerBox = container.getBoundingClientRect(); left = mathMax(box.left, box.left + containerBox.left); top = mathMax(box.top, box.top + containerBox.top); diff --git a/packages/devextreme/js/__internal/viz/core/utils.ts b/packages/devextreme/js/__internal/viz/core/utils.ts index 4c65756fbeb6..011176abc425 100644 --- a/packages/devextreme/js/__internal/viz/core/utils.ts +++ b/packages/devextreme/js/__internal/viz/core/utils.ts @@ -18,7 +18,6 @@ /* eslint-disable @typescript-eslint/explicit-function-return-type */ /* eslint-disable no-plusplus */ -import Color from '@js/color'; import { noop } from '@js/core/utils/common'; import dateUtils from '@js/core/utils/date'; import { extend } from '@js/core/utils/extend'; @@ -284,13 +283,9 @@ export let patchFontOptions = function (options) { if (/^(cursor)$/i.test(key)) { // TODO check other properties, add tests } else if (key === 'opacity') { - value = null; + key = 'fill-opacity'; } else if (key === 'color') { key = 'fill'; - if ('opacity' in options) { - const color = new Color(value); - value = `rgba(${color.r},${color.g},${color.b},${options.opacity})`; - } } else { key = `font-${key}`; } diff --git a/packages/devextreme/js/__internal/viz/funnel/item.ts b/packages/devextreme/js/__internal/viz/funnel/item.ts index 261f39b1ad2b..52f02b4881ba 100644 --- a/packages/devextreme/js/__internal/viz/funnel/item.ts +++ b/packages/devextreme/js/__internal/viz/funnel/item.ts @@ -7,6 +7,7 @@ /* eslint-disable @typescript-eslint/no-unused-expressions */ import { isDefined } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; const states = ['normal', 'hover', 'selection', 'selection']; @@ -38,7 +39,7 @@ function Item(widget, options) { that.percent = options.percent; that.id = options.id; - that.color = options.color; + that.fill = options.color; that.states = { normal: parseStyles(options.color, options.itemOptions, options.itemOptions), @@ -48,6 +49,14 @@ function Item(widget, options) { } Item.prototype = { + get color() { + return this.getColor(); + }, + + set color(value) { + this.fill = value; + }, + getState() { return states[this.code]; }, @@ -100,7 +109,7 @@ Item.prototype = { }, getColor() { - return this.color; + return paintedColor(this.fill, this.widget._renderer?.root?.element); }, isHovered() { diff --git a/packages/devextreme/js/__internal/viz/funnel/label.ts b/packages/devextreme/js/__internal/viz/funnel/label.ts index 6da7be60c481..af80ff9a8f57 100644 --- a/packages/devextreme/js/__internal/viz/funnel/label.ts +++ b/packages/devextreme/js/__internal/viz/funnel/label.ts @@ -383,7 +383,7 @@ export const plugin = { strategy: connectorStrategy, }); - label.setOptions(getLabelOptions(labelOptions, item.color, that._defaultLabelTextAlignment())); + label.setOptions(getLabelOptions(labelOptions, item.fill, that._defaultLabelTextAlignment())); label.setData({ item, diff --git a/packages/devextreme/js/__internal/viz/gauges/bar_gauge.ts b/packages/devextreme/js/__internal/viz/gauges/bar_gauge.ts index 3ede0309dd51..372853acab7c 100644 --- a/packages/devextreme/js/__internal/viz/gauges/bar_gauge.ts +++ b/packages/devextreme/js/__internal/viz/gauges/bar_gauge.ts @@ -4,6 +4,7 @@ import registerComponent from '@js/core/component_registrator'; import { extend } from '@js/core/utils/extend'; import { roundFloatPart } from '@js/core/utils/math'; import { clone } from '@js/core/utils/object'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { overlapping } from '@ts/viz/chart_components/base_chart'; import { plugin as pluginLegend } from '@ts/viz/components/legend'; import type { ThemeValue } from '@ts/viz/core/base_theme_manager'; @@ -956,7 +957,7 @@ class BarGauge extends BaseGauge { id: bar.index, item: { value: bar.getValue(), - color: bar.getColor(), + color: paintedColor(bar.getColor(), this._renderer.root.element), index: bar.index, }, text: formatValue(bar.getValue(), formatOptions), diff --git a/packages/devextreme/js/__internal/viz/gauges/base_gauge.ts b/packages/devextreme/js/__internal/viz/gauges/base_gauge.ts index ef7604c537d0..e79f51b3dcf5 100644 --- a/packages/devextreme/js/__internal/viz/gauges/base_gauge.ts +++ b/packages/devextreme/js/__internal/viz/gauges/base_gauge.ts @@ -2,6 +2,7 @@ import { noop } from '@js/core/utils/common'; import { extend } from '@js/core/utils/extend'; import formatHelper from '@js/format_helper'; +import { paintedColor } from '@ts/core/utils/css_variables'; import type { ThemeValue } from '@ts/viz/core/base_theme_manager'; import BaseWidget from '@ts/viz/core/base_widget'; import { plugin as exportPlugin } from '@ts/viz/core/export'; @@ -114,7 +115,7 @@ export abstract class BaseGauge extends BaseWidget { const formatObject = extend({ value: tooltipParameters.value, valueText: tooltip.formatValue(tooltipParameters.value), - color: tooltipParameters.color, + color: paintedColor(tooltipParameters.color, renderer.root.element), }, info); return tooltip.show(formatObject, { diff --git a/packages/devextreme/js/__internal/viz/handed_out.ts b/packages/devextreme/js/__internal/viz/handed_out.ts new file mode 100644 index 000000000000..c6353fa7b5e9 --- /dev/null +++ b/packages/devextreme/js/__internal/viz/handed_out.ts @@ -0,0 +1,214 @@ +import { isPlainObject } from '@js/core/utils/type'; +import { getWindow, hasWindow } from '@js/core/utils/window'; +import domAdapter from '@ts/core/dom_adapter'; +import { + asRgb, fallbackOf, isCssVariableReference, portableColor, resolvedInScope, +} from '@ts/core/utils/css_variables'; +import * as raw from '@ts/viz/palette'; + +const SVG_NAMESPACE = 'http://www.w3.org/2000/svg'; +const LEFT_TO_THE_BROWSER = /var\(|color-mix\(|\(from /; +const PLAIN_NUMBER = /^-?(?:\d+\.?\d*|\.\d+)$/; + +type Page = HTMLElement | undefined; + +type Resolved = Map; + +interface Source { + source: unknown; + page?: HTMLElement; +} + +interface Colors { + getColor: (at: number) => unknown; +} + +interface Extension { + extensionMode?: string; + keepLastColorInEnd?: boolean; + useHighlight?: boolean; +} + +interface GenerationOptions extends Omit { + baseColorSet?: string; + paletteExtensionMode?: string; +} + +function isLeftToTheBrowser(value: unknown): value is string { + return typeof value === 'string' && LEFT_TO_THE_BROWSER.test(value); +} + +export function paintingPage(): Page { + return hasWindow() && typeof getWindow().getComputedStyle === 'function' + ? domAdapter.getDocumentElement() + : undefined; +} + +function paintedOn(page: HTMLElement, values: string[]): (string | undefined)[] { + const probe = domAdapter.createElementNS(SVG_NAMESPACE, 'svg') as SVGElement; + const swatchOf = (fill: string): SVGElement => { + const swatch = domAdapter.createElementNS(SVG_NAMESPACE, 'rect') as SVGElement; + + swatch.style.setProperty('fill', fill); + probe.appendChild(swatch); + + return swatch; + }; + const swatches = values.map((value) => [swatchOf(value), swatchOf(asRgb(value))]); + + probe.style.setProperty('display', 'none'); + probe.style.setProperty('fill', 'none'); + page.appendChild(probe); + + const painted = swatches.map((pair) => pair + .map((swatch) => portableColor(getWindow().getComputedStyle(swatch).fill)) + .find((color) => color !== undefined)); + + probe.remove(); + + return painted; +} + +function literalOf(value: string, page: Page): string | number | undefined { + const literal = value.startsWith('var(') ? resolvedInScope(value, page) : fallbackOf(value); + + if (isCssVariableReference(literal)) { + return undefined; + } + + return PLAIN_NUMBER.test(literal) ? Number(literal) : literal; +} + +function collectNames(value: unknown, names: Set): Set { + if (isLeftToTheBrowser(value)) { + names.add(value); + } else if (Array.isArray(value)) { + value.forEach((item) => collectNames(item, names)); + } else if (isPlainObject(value)) { + Object.values(value).forEach((item) => collectNames(item, names)); + } + + return names; +} + +function rebuilt(value: unknown, resolved: Resolved): unknown { + if (typeof value === 'string') { + return resolved.has(value) ? resolved.get(value) : value; + } + + if (Array.isArray(value)) { + return value.map((item) => rebuilt(item, resolved)); + } + + if (isPlainObject(value)) { + return Object.fromEntries( + Object.entries(value).map(([key, item]) => [key, rebuilt(item, resolved)]), + ); + } + + return value; +} + +export function handedOut(value: T, page: Page): T { + const names = Array.from(collectNames(value, new Set())); + + if (!names.length) { + return value; + } + + const painted = page ? paintedOn(page, names) : []; + const resolved: Resolved = new Map( + names.map((name, index) => [name, painted[index] ?? literalOf(name, page)]), + ); + + return rebuilt(value, resolved) as T; +} + +function paletteSource(source: unknown, set: string | undefined, themeDefault: unknown): Source { + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + const colors: unknown[] = raw.getPalette(source, { type: set || 'simpleSet', themeDefault }); + const names = colors.filter(isLeftToTheBrowser); + + if (!names.length) { + return { source }; + } + + const page = paintingPage(); + + if (page && paintedOn(page, names).some((painted) => painted !== undefined)) { + return { source, page }; + } + + return { source: handedOut(colors, undefined) }; +} + +export function getPalette(palette: unknown, parameters?: unknown): unknown { + return handedOut(raw.getPalette(palette, parameters), paintingPage()); +} + +export function getAccentColor(palette: unknown, themeDefault?: unknown): unknown { + return handedOut(raw.getAccentColor(palette, themeDefault), paintingPage()); +} + +export function generateColors( + palette: unknown, + count: number, + options?: GenerationOptions, +): unknown { + const { source, page } = paletteSource(palette, options?.baseColorSet, undefined); + const generated = raw.generateColors( + source, + count, + options as Parameters[2], + ); + + return handedOut(generated, page); +} + +export function createPalette( + palette: unknown, + parameters?: Extension & { type?: string }, + themeDefaultPalette?: unknown, +): ReturnType { + const { source, page } = paletteSource(palette, parameters?.type, themeDefaultPalette); + const created = raw.createPalette(source, parameters, themeDefaultPalette); + + if (!page) { + return created; + } + + const { getNextColor, generateColors: generate } = created; + + created.getNextColor = (count): unknown => handedOut(getNextColor.call(created, count), page); + created.generateColors = (count, options): unknown => handedOut( + generate.call(created, count, options), + page, + ); + + return created; +} + +export function getDiscretePalette( + source: unknown, + size: number, + themeDefaultPalette?: unknown, +): Colors { + const input: Source = size > 0 ? paletteSource(source, 'gradientSet', themeDefaultPalette) : { source }; + const discrete = raw.getDiscretePalette(input.source, size, themeDefaultPalette); + + return input.page + ? { getColor: (index): unknown => handedOut(discrete.getColor(index), input.page) } + : discrete; +} + +export function getGradientPalette( + source: unknown, + themeDefaultPalette?: unknown, +): Colors { + const { source: input, page } = paletteSource(source, 'gradientSet', themeDefaultPalette); + const gradient = raw.getGradientPalette(input, themeDefaultPalette); + + return page + ? { getColor: (ratio): unknown => handedOut(gradient.getColor(ratio), page) } + : gradient; +} diff --git a/packages/devextreme/js/__internal/viz/handed_out_theme.ts b/packages/devextreme/js/__internal/viz/handed_out_theme.ts new file mode 100644 index 000000000000..af96bc951e0b --- /dev/null +++ b/packages/devextreme/js/__internal/viz/handed_out_theme.ts @@ -0,0 +1,6 @@ +import { handedOut, paintingPage } from '@ts/viz/handed_out'; +import { getTheme as getRawTheme } from '@ts/viz/themes'; + +export function getTheme(themeName?: string): unknown { + return handedOut(getRawTheme(themeName), paintingPage()); +} diff --git a/packages/devextreme/js/__internal/viz/palette.ts b/packages/devextreme/js/__internal/viz/palette.ts index 8d00c26d2486..87a2328d5530 100644 --- a/packages/devextreme/js/__internal/viz/palette.ts +++ b/packages/devextreme/js/__internal/viz/palette.ts @@ -1,4 +1,3 @@ -/* eslint-disable @stylistic/no-mixed-operators */ /* eslint-disable max-depth */ /* eslint-disable no-continue */ /* eslint-disable @typescript-eslint/init-declarations */ @@ -20,8 +19,25 @@ import { extend } from '@js/core/utils/extend'; import { isString } from '@js/core/utils/type'; import { Color } from '@ts/color'; +import { fallbackOf } from '@ts/core/utils/css_variables'; +import { mixColors, shiftChannels, shiftLightness } from '@ts/viz/color_math'; import { normalizeEnum } from '@ts/viz/core/utils'; +const FLUENT_NEXT_VIZ = { + primary: 'var(--dx-viz-primary, #0f6cbd)', + + blue: 'var(--dx-viz-blue, #0078d4)', + red: 'var(--dx-viz-red, #c83d3d)', + green: 'var(--dx-viz-green, #008f04)', + yellow: 'var(--dx-viz-yellow, #eaa300)', + pink: 'var(--dx-viz-pink, #e43ba6)', + purple: 'var(--dx-viz-purple, #865cbf)', + + success: 'var(--dx-viz-success, #107c10)', + warning: 'var(--dx-viz-warning, #f7630c)', + danger: 'var(--dx-viz-danger, #c50f1f)', +}; + const HIGHLIGHTING_STEP = 50; const DEFAULT_PALETTE = 'material'; @@ -42,6 +58,20 @@ const palettes = { office: officePalette, + 'fluent next': { + simpleSet: [ + FLUENT_NEXT_VIZ.blue, + FLUENT_NEXT_VIZ.red, + FLUENT_NEXT_VIZ.green, + FLUENT_NEXT_VIZ.yellow, + FLUENT_NEXT_VIZ.pink, + FLUENT_NEXT_VIZ.purple, + ], + indicatingSet: [FLUENT_NEXT_VIZ.success, FLUENT_NEXT_VIZ.warning, FLUENT_NEXT_VIZ.danger], + gradientSet: [FLUENT_NEXT_VIZ.blue, FLUENT_NEXT_VIZ.green], + accentColor: FLUENT_NEXT_VIZ.primary, + }, + 'harmony light': { simpleSet: ['#fcb65e', '#679ec5', '#ad79ce', '#7abd5c', '#e18e92', '#b6d623', '#b7abea', '#85dbd5'], indicatingSet: ['#b6d623', '#fcb65e', '#e18e92'], @@ -253,33 +283,6 @@ function getAlternateColorsStrategy(palette, parameters) { } function getExtrapolateColorsStrategy(palette, parameters) { - function convertColor(color, cycleIndex, cycleCount) { - const hsl = new Color(color).hsl; - let l = hsl.l / 100; - const diapason = cycleCount - 1 / cycleCount; - let minL = l - diapason * 0.5; - let maxL = l + diapason * 0.5; - const cycleMiddle = (cycleCount - 1) / 2; - const cycleDiff = cycleIndex - cycleMiddle; - - if (minL < Math.min(0.5, l * 0.9)) { - minL = Math.min(0.5, l * 0.9); - } - - if (maxL > Math.max(0.8, l + (1 - l) * 0.15)) { - maxL = Math.max(0.8, l + (1 - l) * 0.15); - } - - if (cycleDiff < 0) { - l -= (minL - l) * cycleDiff / cycleMiddle; - } else { - l += (maxL - l) * (cycleDiff / cycleMiddle); - } - hsl.l = l * 100; - - return Color.fromHSL(hsl).toHex(); - } - return { getColor(index, count) { const paletteCount = palette.length; @@ -287,7 +290,7 @@ function getExtrapolateColorsStrategy(palette, parameters) { const color = palette[index % paletteCount]; if (cycles > 1) { - return convertColor(color, Math.floor(index / paletteCount), cycles); + return shiftLightness(color, Math.floor(index / paletteCount), cycles); } return color; @@ -351,19 +354,16 @@ function getColorMixer(palette, parameters) { for (let i = 0; i < paletteLength; i++) { const color = paletteWithEmptyColors[i]; if (!color) { - let color1 = paletteWithEmptyColors[i - 1]; + const color1 = paletteWithEmptyColors[i - 1]; if (!color1) { continue; } else { const c2 = getColorAndDistance(paletteWithEmptyColors, i, paletteLength); - // @ts-expect-error - const color2 = new Color(c2[0]); - color1 = new Color(color1); // @ts-expect-error for (let j = 0; j < c2[1]; j++, i++) { // @ts-expect-error - paletteWithEmptyColors[i] = color1.blend(color2, (j + 1) / (c2[1] + 1)).toHex(); + paletteWithEmptyColors[i] = mixColors(color1, c2[0], (j + 1) / (c2[1] + 1)); } } } @@ -485,12 +485,13 @@ function getAlteredPalette(originalPalette, step) { } function getNewColor(currentColor, step) { - let newColor = new Color(currentColor).alter(step); + const newColor = new Color(fallbackOf(currentColor)).alter(step); const lightness = getLightness(newColor); + let shift = step; if (lightness > 200 || lightness < 55) { - newColor = new Color(currentColor).alter(-step / 2); + shift = -step / 2; } - return newColor.toHex(); + return shiftChannels(currentColor, shift); } function getLightness(color) { @@ -511,7 +512,6 @@ export let getDiscretePalette = function (source, size, themeDefaultPalette) { function createDiscreteColors(source, count) { const colorCount = count - 1; const sourceCount = source.length - 1; - const colors = []; const gradient = []; let i; @@ -520,13 +520,9 @@ function createDiscreteColors(source, count) { const kl = Math.floor(k); const kr = Math.ceil(k); // @ts-expect-error - gradient.push(colors[kl].blend(colors[kr], k - kl).toHex()); + gradient.push(mixColors(source[kl], source[kr], k - kl)); } - for (i = 0; i <= sourceCount; ++i) { - // @ts-expect-error - colors.push(new Color(source[i])); - } if (colorCount > 0) { for (i = 0; i <= colorCount; ++i) { addColor(i / colorCount); @@ -540,12 +536,10 @@ function createDiscreteColors(source, count) { export function getGradientPalette(source, themeDefaultPalette) { // TODO: Looks like some new set is going to be added const palette = getPalette(source, { type: 'gradientSet', themeDefault: themeDefaultPalette }); - const color1 = new Color(palette[0]); - const color2 = new Color(palette[1]); return { getColor(ratio) { - return ratio >= 0 && ratio <= 1 ? color1.blend(color2, ratio).toHex() : null; + return ratio >= 0 && ratio <= 1 ? mixColors(palette[0], palette[1], ratio) : null; }, }; } diff --git a/packages/devextreme/js/__internal/viz/sankey/link_item.ts b/packages/devextreme/js/__internal/viz/sankey/link_item.ts index 4839e816b4e6..9a870203c391 100644 --- a/packages/devextreme/js/__internal/viz/sankey/link_item.ts +++ b/packages/devextreme/js/__internal/viz/sankey/link_item.ts @@ -8,6 +8,7 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ import { isDefined } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { COLOR_MODE_GRADIENT, COLOR_MODE_SOURCE, COLOR_MODE_TARGET } from '@ts/viz/sankey/constants'; const states = ['normal', 'adjacentNodeHover', 'hover']; @@ -44,7 +45,7 @@ function Link(widget, params) { that.code = 0; that.widget = widget; - that.color = params.color; + that.fill = params.color; that.connection = params.connection; that.d = params.d; that.options = params.options; @@ -55,19 +56,27 @@ function Link(widget, params) { }; that.states = { - normal: compileAttrs(that.color, that.options, that.options, params.gradient), - adjacentNodeHover: compileAttrs(that.color, { opacity: 0, border: {} }, that.options, params.gradient), - hover: compileAttrs(that.color, { opacity: 0, border: {} }, that.options, params.gradient), + normal: compileAttrs(that.fill, that.options, that.options, params.gradient), + adjacentNodeHover: compileAttrs(that.fill, { opacity: 0, border: {} }, that.options, params.gradient), + hover: compileAttrs(that.fill, { opacity: 0, border: {} }, that.options, params.gradient), }; that.overlayStates = { - normal: compileAttrs(that.color, { opacity: 0, border: {} }, that.options), - adjacentNodeHover: compileAttrs(that.color, that.options.hoverStyle, that.options), - hover: compileAttrs(that.color, that.options.hoverStyle, that.options), + normal: compileAttrs(that.fill, { opacity: 0, border: {} }, that.options), + adjacentNodeHover: compileAttrs(that.fill, that.options.hoverStyle, that.options), + hover: compileAttrs(that.fill, that.options.hoverStyle, that.options), }; } Link.prototype = { + get color() { + return paintedColor(this.fill, this.widget._renderer?.root?.element); + }, + + set color(value) { + this.fill = value; + }, + getState() { return states[this.code]; }, diff --git a/packages/devextreme/js/__internal/viz/sankey/node_item.ts b/packages/devextreme/js/__internal/viz/sankey/node_item.ts index ac6518f6c5ee..e47963c64784 100644 --- a/packages/devextreme/js/__internal/viz/sankey/node_item.ts +++ b/packages/devextreme/js/__internal/viz/sankey/node_item.ts @@ -11,6 +11,7 @@ /* eslint-disable @typescript-eslint/prefer-optional-chain */ import { isDefined } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { patchFontOptions } from '@ts/viz/core/utils'; const states = ['normal', 'hover']; @@ -37,7 +38,7 @@ function compileLabelAttrs(labelOptions, filter, node) { const _patchFontOptions = patchFontOptions; if (labelOptions.useNodeColors) { - labelOptions.font.color = node.color; + labelOptions.font.color = node.fill; } const borderVisible = isDefined(labelOptions.border.visible) ? labelOptions.border.visible : false; @@ -68,7 +69,7 @@ function Node(widget, params) { that.code = 0; that.widget = widget; - that.color = params.color; + that.fill = params.color; that.options = params.options; that.rect = params.rect; that.label = params.rect._name; @@ -81,14 +82,22 @@ function Node(widget, params) { that.linksOut = params.linksOut; this.states = { - normal: compileAttrs(this.color, that.options, that.options), - hover: compileAttrs(this.color, that.options.hoverStyle, that.options), + normal: compileAttrs(this.fill, that.options, that.options), + hover: compileAttrs(this.fill, that.options.hoverStyle, that.options), }; } Node.prototype = { + get color() { + return paintedColor(this.fill, this.widget._renderer?.root?.element); + }, + + set color(value) { + this.fill = value; + }, + compileAttrs() { - return compileAttrs(this.color, this.options); + return compileAttrs(this.fill, this.options); }, getState() { diff --git a/packages/devextreme/js/__internal/viz/series/base_series.ts b/packages/devextreme/js/__internal/viz/series/base_series.ts index 864025498e3d..508b51143b54 100644 --- a/packages/devextreme/js/__internal/viz/series/base_series.ts +++ b/packages/devextreme/js/__internal/viz/series/base_series.ts @@ -24,6 +24,7 @@ import { noop as _noop } from '@js/core/utils/common'; import { extend as _extend } from '@js/core/utils/extend'; import { each as _each } from '@js/core/utils/iterator'; import { isDefined as _isDefined, isEmptyObject as _isEmptyObject, isFunction } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import consts from '@ts/viz/components/consts'; import { normalizeEnum as _normalizeEnum } from '@ts/viz/core/utils'; @@ -1318,7 +1319,7 @@ Series.prototype = { }, getColor() { - return this.getLegendStyles().normal.fill; + return paintedColor(this.getLegendStyles().normal.fill, this._renderer?.root?.element); }, getOpacity() { diff --git a/packages/devextreme/js/__internal/viz/series/points/base_point.ts b/packages/devextreme/js/__internal/viz/series/points/base_point.ts index acc91bc39396..428b854d63ce 100644 --- a/packages/devextreme/js/__internal/viz/series/points/base_point.ts +++ b/packages/devextreme/js/__internal/viz/series/points/base_point.ts @@ -17,6 +17,7 @@ import { noop as _noop } from '@js/core/utils/common'; import { extend } from '@js/core/utils/extend'; import { isDefined as _isDefined } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import consts from '@ts/viz/components/consts'; import { normalizeEnum as _normalizeEnum } from '@ts/viz/core/utils'; import barPoint from '@ts/viz/series/points/bar_point'; @@ -134,7 +135,9 @@ Point.prototype = { if (!this.hasValue() && !this._styles.usePointCustomOptions) { this.series.customizePoint(this, this._dataItem); } - return this._styles.normal.fill || this.series.getColor(); + const fill = paintedColor(this._styles.normal.fill, this.series.getRenderer?.()?.root?.element); + + return fill || this.series.getColor(); }, _getStyle() { diff --git a/packages/devextreme/js/__internal/viz/series/points/candlestick_point.ts b/packages/devextreme/js/__internal/viz/series/points/candlestick_point.ts index 0f8517b1adb9..abf3234de4fa 100644 --- a/packages/devextreme/js/__internal/viz/series/points/candlestick_point.ts +++ b/packages/devextreme/js/__internal/viz/series/points/candlestick_point.ts @@ -14,6 +14,7 @@ /* eslint-disable @typescript-eslint/no-unused-expressions */ import { extend as _extend } from '@js/core/utils/extend'; +import { paintedColor } from '@ts/core/utils/css_variables'; import barPoint from '@ts/viz/series/points/bar_point'; import symbolPoint from '@ts/viz/series/points/symbol_point'; @@ -112,7 +113,11 @@ export default _extend({}, barPoint, { getColor() { const that = this; - return that._isReduction ? that._options.reduction.color : that._styles.normal.stroke || that.series.getColor(); + const element = that.series.getRenderer?.()?.root?.element; + + return that._isReduction + ? paintedColor(that._options.reduction.color, element) + : paintedColor(that._styles.normal.stroke, element) || that.series.getColor(); }, _drawMarkerInGroup(group, attributes, renderer) { diff --git a/packages/devextreme/js/__internal/viz/series/points/pie_point.ts b/packages/devextreme/js/__internal/viz/series/points/pie_point.ts index 26be6c9736d2..a3360b01b087 100644 --- a/packages/devextreme/js/__internal/viz/series/points/pie_point.ts +++ b/packages/devextreme/js/__internal/viz/series/points/pie_point.ts @@ -13,6 +13,7 @@ import { extend } from '@js/core/utils/extend'; import { isDefined as _isDefined } from '@js/core/utils/type'; +import { paintedColor } from '@ts/core/utils/css_variables'; import consts from '@ts/viz/components/consts'; import { getCosAndSin as _getCosAndSin, getVerticallyShiftedAngularCoords, normalizeAngle as _normalizeAngle } from '@ts/viz/core/utils'; import symbolPoint from '@ts/viz/series/points/symbol_point'; @@ -388,7 +389,7 @@ export default _extend({}, symbolPoint, { }, getColor() { - return this._styles.normal.fill; + return paintedColor(this._styles.normal.fill, this.series.getRenderer?.()?.root?.element); }, coordsIn(x, y) { diff --git a/packages/devextreme/js/__internal/viz/themes.ts b/packages/devextreme/js/__internal/viz/themes.ts index b931a9744ab1..3c699fd60e5b 100644 --- a/packages/devextreme/js/__internal/viz/themes.ts +++ b/packages/devextreme/js/__internal/viz/themes.ts @@ -19,6 +19,7 @@ import { extend } from '@js/core/utils/extend'; import { isEmptyObject } from '@js/core/utils/type'; import { current as getCurrentTheme } from '@js/ui/themes'; import fluentThemes from '@ts/viz/core/themes/fluent/index'; +import fluentNextThemes from '@ts/viz/core/themes/fluent-next/index'; import carmineThemes from '@ts/viz/core/themes/generic/carmine'; import contrastThemes from '@ts/viz/core/themes/generic/contrast'; import darkThemes from '@ts/viz/core/themes/generic/dark'; @@ -242,6 +243,7 @@ if (isEmptyObject(themes) && isEmptyObject(themesMapping) && !defaultTheme) { softBlueThemes, materialThemes, fluentThemes, + fluentNextThemes, ).forEach((t) => { // @ts-expect-error registerTheme(t.theme, t.baseThemeName); diff --git a/packages/devextreme/js/__internal/viz/vector_map/legend.ts b/packages/devextreme/js/__internal/viz/vector_map/legend.ts index a0cc3472d8da..5c281b4aff88 100644 --- a/packages/devextreme/js/__internal/viz/vector_map/legend.ts +++ b/packages/devextreme/js/__internal/viz/vector_map/legend.ts @@ -17,6 +17,7 @@ import { extend } from '@js/core/utils/extend'; import { each } from '@js/core/utils/iterator'; import { clone } from '@js/core/utils/object'; +import { paintedColor } from '@ts/core/utils/css_variables'; import { Legend as _BaseLegend } from '@ts/viz/components/legend'; const _extend = extend; @@ -58,7 +59,9 @@ let Legend = function (parameters) { itemsGroupClass: null, textField: 'text', getFormatObject(data) { - return data; + return data.color === undefined + ? data + : { ...data, color: paintedColor(data.color, parameters.renderer.root.element) }; }, }); that._onDataChanged = function (data) { diff --git a/packages/devextreme/js/common/charts.d.ts b/packages/devextreme/js/common/charts.d.ts index 8907a07b402e..a964e80f860a 100644 --- a/packages/devextreme/js/common/charts.d.ts +++ b/packages/devextreme/js/common/charts.d.ts @@ -97,7 +97,7 @@ export type LegendMarkerState = 'normal' | 'hovered' | 'selected'; * @public * @namespace DevExpress.common.charts */ -export type Palette = 'Bright' | 'Harmony Light' | 'Ocean' | 'Pastel' | 'Soft' | 'Soft Pastel' | 'Vintage' | 'Violet' | 'Carmine' | 'Dark Moon' | 'Dark Violet' | 'Green Mist' | 'Soft Blue' | 'Material' | 'Office'; +export type Palette = 'Bright' | 'Harmony Light' | 'Ocean' | 'Pastel' | 'Soft' | 'Soft Pastel' | 'Vintage' | 'Violet' | 'Carmine' | 'Dark Moon' | 'Dark Violet' | 'Green Mist' | 'Soft Blue' | 'Material' | 'Office' | 'Fluent Next'; /** * @public diff --git a/packages/devextreme/js/core/errors.js b/packages/devextreme/js/core/errors.js index be269baa3e89..4f819fd6ac99 100644 --- a/packages/devextreme/js/core/errors.js +++ b/packages/devextreme/js/core/errors.js @@ -168,5 +168,11 @@ /** * @name ErrorsCore.W0023 */ +/** + * @name ErrorsCore.W0024 + */ +/** + * @name ErrorsCore.W0025 + */ import errors from '../__internal/core/errors'; export default errors; diff --git a/packages/devextreme/js/ui/themes.d.ts b/packages/devextreme/js/ui/themes.d.ts index c4cf17bed007..16bee1c7d797 100644 --- a/packages/devextreme/js/ui/themes.d.ts +++ b/packages/devextreme/js/ui/themes.d.ts @@ -1,3 +1,5 @@ +import { UserDefinedElement } from '../core/element'; + /** * @docid ui.themes * @namespace DevExpress.ui @@ -33,6 +35,38 @@ export default class themes { * @public */ static initialized(callback: Function): void; + /** + * @docid ui.themes.mode + * @publicName mode(element) + * @param1 element:Element|jQuery + * @return String + * @static + * @public + */ + static mode(element: UserDefinedElement): 'light' | 'dark'; + /** + * @docid ui.themes.refreshMode + * @publicName refreshMode() + * @static + * @public + */ + static refreshMode(): void; + /** + * @docid ui.themes.customAccentColor + * @publicName customAccentColor() + * @return String + * @static + * @public + */ + static customAccentColor(): string; + /** + * @docid ui.themes.customAccentColor + * @publicName customAccentColor(color) + * @param1 color:String|null + * @static + * @public + */ + static customAccentColor(color: string | null): void; } export function current(): string; @@ -41,3 +75,8 @@ export function isFluent(theme: string): boolean; export function isMaterial(theme: string): boolean; export function isGeneric(theme: string): boolean; export function isCompact(theme: string): boolean; + +export function mode(element: UserDefinedElement): 'light' | 'dark'; +export function refreshMode(): void; +export function customAccentColor(): string; +export function customAccentColor(color: string | null): void; diff --git a/packages/devextreme/js/ui/themes.js b/packages/devextreme/js/ui/themes.js index 7ba25bcc98a7..4d2a7eec8486 100644 --- a/packages/devextreme/js/ui/themes.js +++ b/packages/devextreme/js/ui/themes.js @@ -14,6 +14,9 @@ export const { isMaterial, isFluent, isMaterialBased, + mode, + refreshMode, + customAccentColor, detachCssClasses, attachCssClasses, current, diff --git a/packages/devextreme/js/viz/palette.js b/packages/devextreme/js/viz/palette.js index 17041d680699..a41143ae7f03 100644 --- a/packages/devextreme/js/viz/palette.js +++ b/packages/devextreme/js/viz/palette.js @@ -1,10 +1,12 @@ export { currentPalette, + registerPalette, +} from '../__internal/viz/palette'; +export { generateColors, getPalette, - registerPalette, getAccentColor, createPalette, getDiscretePalette, getGradientPalette, -} from '../__internal/viz/palette'; +} from '../__internal/viz/handed_out'; diff --git a/packages/devextreme/js/viz/themes.js b/packages/devextreme/js/viz/themes.js index 6a6de9b750fc..734efb729776 100644 --- a/packages/devextreme/js/viz/themes.js +++ b/packages/devextreme/js/viz/themes.js @@ -1 +1,2 @@ export * from '../__internal/viz/themes'; +export { getTheme } from '../__internal/viz/handed_out_theme'; diff --git a/packages/devextreme/playground/tier-reachability-audit.html b/packages/devextreme/playground/tier-reachability-audit.html new file mode 100644 index 000000000000..ffc2445e0b02 --- /dev/null +++ b/packages/devextreme/playground/tier-reachability-audit.html @@ -0,0 +1,514 @@ + + + + + fluent-next: runtime reachability audit of the --dx-* tier + + + + + + + + + +

Reachability audit: every rule reading var(--dx-…) must see the variable on the elements it matches

+
initialising…
+ + + + + diff --git a/packages/devextreme/project.json b/packages/devextreme/project.json index 3e76b2ceeeaf..3338a73fb94b 100644 --- a/packages/devextreme/project.json +++ b/packages/devextreme/project.json @@ -1248,10 +1248,17 @@ "outputDir": "./artifacts/npm/devextreme-internal/scss" } }, + "dependsOn": [ + { + "projects": ["devextreme-scss"], + "target": "build:themes" + } + ], "inputs": [ "{workspaceRoot}/packages/devextreme-scss/scss/**/*", "{workspaceRoot}/packages/devextreme-scss/fonts/**/*", - "{workspaceRoot}/packages/devextreme-scss/icons/**/*" + "{workspaceRoot}/packages/devextreme-scss/icons/**/*", + "{workspaceRoot}/packages/devextreme-scss/build/internal-scss-paths.json" ], "outputs": [ "{projectRoot}/artifacts/npm/devextreme/scss/**/*", @@ -1653,6 +1660,11 @@ "!{projectRoot}/js/__internal/core/localization/cldr-data/**/*", "!{projectRoot}/js/__internal/core/localization/default_messages.ts", "test", + "{workspaceRoot}/packages/devextreme-dist/package.json", + "{workspaceRoot}/packages/devextreme-scss/scss/**/*", + "{workspaceRoot}/packages/devextreme-scss/fonts/**/*", + "{workspaceRoot}/packages/devextreme-scss/icons/**/*", + "{workspaceRoot}/README.md", "{workspaceRoot}/pnpm-lock.yaml" ], "outputs": [ @@ -1713,6 +1725,11 @@ "internalPackageEnv", "default", "test", + "{workspaceRoot}/packages/devextreme-dist/package.json", + "{workspaceRoot}/packages/devextreme-scss/scss/**/*", + "{workspaceRoot}/packages/devextreme-scss/fonts/**/*", + "{workspaceRoot}/packages/devextreme-scss/icons/**/*", + "{workspaceRoot}/README.md", "{workspaceRoot}/pnpm-lock.yaml" ], "outputs": [ diff --git a/packages/devextreme/testing/tests/DevExpress.exporter/imageCreator.tests.js b/packages/devextreme/testing/tests/DevExpress.exporter/imageCreator.tests.js index a1af698c0299..4a7c15534516 100644 --- a/packages/devextreme/testing/tests/DevExpress.exporter/imageCreator.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.exporter/imageCreator.tests.js @@ -1204,6 +1204,70 @@ QUnit.test('lineargradient', function(assert) { }); }); +QUnit.test('lineargradient with a published name in stop-color', function(assert) { + const done = assert.async(); + const markup = testingMarkupStart + + '' + + + '' + + '' + + '' + + '' + + + '' + + '' + + testingMarkupEnd; + + document.documentElement.style.setProperty('--dx-viz-blue', 'rgb(1, 2, 3)'); + + const imageBlob = getData(markup); + + $.when(imageBlob).done(() => { + try { + const gradient = this.drawnElements.filter((element) => element.type === 'linearGradient')[0]; + + assert.strictEqual(gradient.addColorStop.callCount, 2); + assert.deepEqual(gradient.addColorStop.getCall(0).args, [0, 'rgb(1, 2, 3)'], 'a name is exported as what the cascade resolved, not as the literal written beside it'); + assert.deepEqual(gradient.addColorStop.getCall(1).args, [1, 'blue'], 'a literal is left as it is written'); + } finally { + document.documentElement.style.removeProperty('--dx-viz-blue'); + done(); + } + }); +}); + +QUnit.test('lineargradient with a published name in stop-color, exported from a live element', function(assert) { + const done = assert.async(); + const host = $('
').appendTo('body'); + + host.html(testingMarkupStart + + '' + + + '' + + '' + + '' + + '' + + + '' + + '' + + testingMarkupEnd); + + host.get(0).querySelector('#testlineargradientlive').style.setProperty('--dx-viz-blue', 'rgb(4, 5, 6)'); + + const imageBlob = imageCreator.getData(host.children().get(0), { width: 500, height: 250, format: 'png', margin: 10 }, true); + + $.when(imageBlob).done(() => { + try { + const gradient = this.drawnElements.filter((element) => element.type === 'linearGradient')[0]; + + assert.deepEqual(gradient.addColorStop.getCall(0).args, [0, 'rgb(4, 5, 6)'], 'exportTo and print hand the exporter a live element, where nothing has resolved the name beforehand'); + } finally { + host.remove(); + done(); + } + }); +}); + QUnit.test('lineargradient with rotation angle', function(assert) { const done = assert.async(); const markup = testingMarkupStart + diff --git a/packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialog.tests.js b/packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialog.tests.js index 694c366e0cbc..b0ef7a1ec28d 100644 --- a/packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialog.tests.js +++ b/packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialog.tests.js @@ -1497,6 +1497,43 @@ QUnit.module('AIDialog', () => { }); }); + QUnit.module('sizes declared by the theme', { + beforeEach() { + this.$style = $('