devextreme-cli 1.7.1 → 1.8.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/package.json +2 -2
  2. package/src/applications/application.angular.js +4 -8
  3. package/src/applications/application.react.js +2 -0
  4. package/src/applications/application.vue.js +2 -0
  5. package/src/commands.json +3 -6
  6. package/src/templates/react/application/devextreme.json +28 -0
  7. package/src/templates/react/application/src/App.tsx +11 -7
  8. package/src/templates/react/application/src/components/change-password-form/ChangePasswordForm.tsx +86 -86
  9. package/src/templates/react/application/src/components/create-account-form/CreateAccountForm.scss +3 -3
  10. package/src/templates/react/application/src/components/create-account-form/CreateAccountForm.tsx +107 -107
  11. package/src/templates/react/application/src/components/footer/Footer.scss +7 -4
  12. package/src/templates/react/application/src/components/header/Header.scss +4 -5
  13. package/src/templates/react/application/src/components/header/Header.tsx +8 -12
  14. package/src/templates/react/application/src/components/login-form/LoginForm.scss +1 -1
  15. package/src/templates/react/application/src/components/reset-password-form/ResetPasswordForm.scss +1 -1
  16. package/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.scss +49 -68
  17. package/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx +5 -3
  18. package/src/templates/react/application/src/components/theme-switcher/ThemeSwitcher.tsx +20 -0
  19. package/src/templates/react/application/src/components/user-panel/UserPanel.scss +41 -53
  20. package/src/templates/react/application/src/components/user-panel/UserPanel.tsx +22 -25
  21. package/src/templates/react/application/src/dx-styles.scss +63 -67
  22. package/src/templates/react/application/src/layouts/side-nav-inner-toolbar/side-nav-inner-toolbar.scss +1 -6
  23. package/src/templates/react/application/src/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.scss +3 -3
  24. package/src/templates/react/application/src/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.tsx +2 -2
  25. package/src/templates/react/application/src/layouts/single-card/single-card.scss +4 -2
  26. package/src/templates/react/application/src/theme.tsx +51 -0
  27. package/src/templates/react/application/src/themes/metadata.additional.dark.json +11 -0
  28. package/src/templates/react/application/src/themes/metadata.additional.json +1 -1
  29. package/src/templates/react/application/src/themes/metadata.base.dark.json +8 -0
  30. package/src/templates/react/application/src/themes/metadata.base.json +1 -1
  31. package/src/templates/react/application/src/variables.scss +37 -0
  32. package/src/templates/react/page/page.tsx +1 -1
  33. package/src/templates/react/sample-pages/home/home.scss +20 -15
  34. package/src/templates/react/sample-pages/home/home.tsx +50 -4
  35. package/src/templates/react/sample-pages/profile/profile.tsx +1 -1
  36. package/src/templates/react/sample-pages/tasks/tasks.scss +3 -0
  37. package/src/templates/react/sample-pages/tasks/tasks.tsx +3 -2
  38. package/src/templates/vue-v3/application/devextreme.json +28 -0
  39. package/src/templates/vue-v3/application/src/App.vue +1 -5
  40. package/src/templates/vue-v3/application/src/components/app-footer.vue +7 -4
  41. package/src/templates/vue-v3/application/src/components/header-toolbar.vue +23 -30
  42. package/src/templates/vue-v3/application/src/components/side-nav-menu.vue +63 -73
  43. package/src/templates/vue-v3/application/src/components/theme-switcher.vue +19 -0
  44. package/src/templates/vue-v3/application/src/components/user-panel.vue +61 -81
  45. package/src/templates/vue-v3/application/src/dx-styles.scss +66 -51
  46. package/src/templates/vue-v3/application/src/layouts/side-nav-inner-toolbar.vue +4 -7
  47. package/src/templates/vue-v3/application/src/layouts/side-nav-outer-toolbar.vue +4 -2
  48. package/src/templates/vue-v3/application/src/layouts/single-card.vue +2 -4
  49. package/src/templates/vue-v3/application/src/theme-service.js +40 -0
  50. package/src/templates/vue-v3/application/src/themes/metadata.additional.dark.json +11 -0
  51. package/src/templates/vue-v3/application/src/themes/metadata.additional.json +1 -1
  52. package/src/templates/vue-v3/application/src/themes/metadata.base.dark.json +8 -0
  53. package/src/templates/vue-v3/application/src/themes/metadata.base.json +1 -1
  54. package/src/templates/vue-v3/application/src/variables.scss +37 -0
  55. package/src/templates/vue-v3/application/src/views/create-account-form.vue +5 -7
  56. package/src/templates/vue-v3/application/src/views/login-form.vue +1 -3
  57. package/src/templates/vue-v3/application/src/views/reset-password-form.vue +2 -4
  58. package/src/templates/vue-v3/page/page.vue +1 -1
  59. package/src/templates/vue-v3/sample-pages/home-page.vue +86 -45
  60. package/src/templates/vue-v3/sample-pages/profile-page.vue +1 -1
  61. package/src/templates/vue-v3/sample-pages/tasks-page.vue +7 -2
  62. package/src/utility/latest-versions.js +3 -3
@@ -4,6 +4,7 @@ import Button from 'devextreme-react/button';
4
4
  import UserPanel from '../user-panel/UserPanel';
5
5
  import './Header.scss';
6
6
  import { Template } from 'devextreme-react/core/template';
7
+ import { ThemeSwitcher } from '../theme-switcher/ThemeSwitcher';
7
8
  <%=#isTypeScript%>import type { HeaderProps } from '../../types';<%=/isTypeScript%>
8
9
 
9
10
  export default function Header({ menuToggleEnabled, title, toggleMenu }<%=#isTypeScript%>: HeaderProps<%=/isTypeScript%>) {
@@ -26,21 +27,16 @@ export default function Header({ menuToggleEnabled, title, toggleMenu }<%=#isTyp
26
27
  />
27
28
  <Item
28
29
  location={'after'}
29
- locateInMenu={'auto'}
30
- menuItemTemplate={'userPanelTemplate'}
31
30
  >
32
- <Button
33
- className={'user-button authorization'}
34
- width={210}
35
- height={'100%'}
36
- stylingMode={'text'}
37
- >
38
- <UserPanel menuMode={'context'} />
39
- </Button>
31
+ <ThemeSwitcher />
40
32
  </Item>
41
- <Template name={'userPanelTemplate'}>
42
- <UserPanel menuMode={'list'} />
33
+ <Item location='after' locateInMenu='auto' menuItemTemplate='userPanelTemplate'>
34
+ <UserPanel menuMode='context' />
35
+ </Item>
36
+ <Template name='userPanelTemplate'>
37
+ <UserPanel menuMode='list' />
43
38
  </Template>
39
+
44
40
  </Toolbar>
45
41
  </header>
46
42
  )}
@@ -13,6 +13,6 @@
13
13
 
14
14
  .form-text {
15
15
  margin: 10px 0;
16
- color: rgba($base-text-color, alpha($base-text-color) * 0.7);
16
+ color: var(--base-text-color-alpha-7);
17
17
  }
18
18
  }
@@ -6,7 +6,7 @@
6
6
  }
7
7
 
8
8
  .login-link {
9
- color: $base-accent;
9
+ color: var(--base-accent);
10
10
  font-size: 16px;
11
11
  text-align: center;
12
12
  }
@@ -1,91 +1,72 @@
1
1
  @import "../../dx-styles.scss";
2
- @import "../../themes/generated/variables.additional.scss";
3
2
 
4
- .side-navigation-menu {
5
- display: flex;
6
- flex-direction: column;
7
- min-height: 100%;
8
- height: 100%;
9
- width: 250px !important;
10
-
11
- .menu-container {
12
- min-height: 100%;
3
+ .dx-swatch-additional, .dx-swatch-additional-dark {
4
+ &.side-navigation-menu {
13
5
  display: flex;
14
- flex: 1;
6
+ flex-direction: column;
7
+ min-height: 100%;
8
+ height: 100%;
9
+ width: 250px !important;
10
+ background-color: var(--base-bg);
15
11
 
16
- .dx-treeview {
17
- // ## Long text positioning
18
- white-space: nowrap;
19
- // ##
12
+ .menu-container {
13
+ min-height: 100%;
14
+ display: flex;
15
+ flex: 1;
20
16
 
21
- // ## Icon width customization
22
- .dx-treeview-item {
23
- padding-left: 0;
24
- flex-direction: row-reverse;
17
+ .dx-treeview {
18
+ // ## Long text positioning
19
+ white-space: nowrap;
20
+ // ##
25
21
 
26
- .dx-icon {
27
- width: $side-panel-min-width !important;
28
- margin: 0 !important;
22
+ .dx-treeview-node-container:empty {
23
+ display: none;
29
24
  }
30
- }
31
- // ##
32
-
33
- // ## Arrow customization
34
- .dx-treeview-node {
35
- padding: 0 0 !important;
36
- }
37
25
 
38
- .dx-treeview-toggle-item-visibility {
39
- right: 10px;
40
- left: auto;
41
- }
26
+ // ## Icon width customization
27
+ .dx-treeview-item {
28
+ padding-left: 0;
29
+ border-radius: 0;
30
+ flex-direction: row-reverse;
42
31
 
43
- .dx-rtl .dx-treeview-toggle-item-visibility {
44
- left: 10px;
45
- right: auto;
46
- }
47
- // ##
32
+ .dx-icon {
33
+ width: $side-panel-min-width !important;
34
+ margin: 0 !important;
35
+ }
36
+ }
48
37
 
49
- // ## Item levels customization
50
- .dx-treeview-node {
51
- &[aria-level='1'] {
52
- font-weight: bold;
53
- border-bottom: 1px solid $base-border-color;
38
+ // ##
39
+
40
+ // ## Arrow customization
41
+ .dx-treeview-node {
42
+ padding: 0 0 !important;
54
43
  }
55
-
56
- &[aria-level='2'] .dx-treeview-item-content {
57
- font-weight: normal;
58
- padding: 0 $side-panel-min-width;
44
+
45
+ .dx-treeview-toggle-item-visibility {
46
+ right: 10px;
47
+ left: auto;
59
48
  }
60
- }
61
- // ##
62
- }
63
49
 
64
- // ## Selected & Focuced items customization
65
- .dx-treeview {
66
- .dx-treeview-node-container {
67
- .dx-treeview-node {
68
- &.dx-state-selected:not(.dx-state-focused)> .dx-treeview-item {
69
- background: transparent;
70
- }
50
+ .dx-rtl .dx-treeview-toggle-item-visibility {
51
+ left: 10px;
52
+ right: auto;
53
+ }
54
+ // ##
71
55
 
72
- &.dx-state-selected > .dx-treeview-item * {
73
- color: $base-accent;
56
+ // ## Item levels customization
57
+ .dx-treeview-node {
58
+ &[aria-level="1"] {
59
+ font-weight: bold;
74
60
  }
75
61
 
76
- &:not(.dx-state-focused)>.dx-treeview-item.dx-state-hover {
77
- background-color: lighten($base-bg, 4.00);
62
+ &[aria-level="2"] .dx-treeview-item-content {
63
+ font-weight: normal;
64
+ padding: 0 $side-panel-min-width;
78
65
  }
79
66
  }
67
+ // ##
80
68
  }
81
69
  }
82
-
83
- .dx-theme-generic .dx-treeview {
84
- .dx-treeview-node-container .dx-treeview-node.dx-state-selected.dx-state-focused > .dx-treeview-item * {
85
- color: inherit;
86
- }
87
- }
88
- // ##
89
70
  }
90
71
  }
91
72
 
@@ -1,12 +1,13 @@
1
- import React, { useEffect, useRef, useCallback, useMemo } from 'react';
1
+ import React, { useEffect, useRef, useCallback, useMemo, useContext } from 'react';
2
2
  import { TreeView<%=#isTypeScript%>, TreeViewRef<%=/isTypeScript%> } from 'devextreme-react/tree-view';
3
+ import * as events from 'devextreme/events';
3
4
  import { navigation } from '../../app-navigation';
4
5
  import { useNavigation } from '../../contexts/navigation';
5
6
  import { useScreenSize } from '../../utils/media-query';
6
7
  import './SideNavigationMenu.scss';
7
8
  <%=#isTypeScript%>import type { SideNavigationMenuProps } from '../../types';<%=/isTypeScript%>
8
9
 
9
- import * as events from 'devextreme/events';
10
+ import { ThemeContext } from '../../theme';
10
11
 
11
12
  export default function SideNavigationMenu(props<%=#isTypeScript%>: React.PropsWithChildren<SideNavigationMenuProps><%=/isTypeScript%>) {
12
13
  const {
@@ -17,6 +18,7 @@ export default function SideNavigationMenu(props<%=#isTypeScript%>: React.PropsW
17
18
  onMenuReady
18
19
  } = props;
19
20
 
21
+ const theme = useContext(ThemeContext);
20
22
  const { isLarge } = useScreenSize();
21
23
  function normalizePath () {
22
24
  return navigation.map((item) => (
@@ -64,7 +66,7 @@ export default function SideNavigationMenu(props<%=#isTypeScript%>: React.PropsW
64
66
 
65
67
  return (
66
68
  <div
67
- className={'dx-swatch-additional side-navigation-menu'}
69
+ className={`dx-swatch-additional${theme?.isDark() ? '-dark' : ''} side-navigation-menu`}
68
70
  ref={getWrapperRef}
69
71
  >
70
72
  {children}
@@ -0,0 +1,20 @@
1
+ import React, { useCallback, useContext } from 'react';
2
+ import Button from 'devextreme-react/button';
3
+ import { ThemeContext } from '../../theme';
4
+
5
+ export const ThemeSwitcher = () => {
6
+ const themeContext = useContext(ThemeContext);
7
+
8
+ const onButtonClick = useCallback(() => {
9
+ themeContext?.switchTheme();
10
+ }, []);
11
+
12
+ return <div>
13
+ <Button
14
+ className='theme-button'
15
+ stylingMode='text'
16
+ icon={`${themeContext?.theme === 'dark' ? 'sun' : 'moon'}`}
17
+ onClick={onButtonClick}
18
+ />
19
+ </div>;
20
+ };
@@ -1,63 +1,51 @@
1
- @import "../../themes/generated/variables.base.scss";
1
+ .app .header-toolbar .user-panel .user-button.dx-dropdownbutton img.dx-icon {
2
+ height: 100%;
3
+ width: auto;
2
4
 
3
- .user-info {
4
- display: flex;
5
- align-items: center;
6
-
7
- .dx-toolbar-menu-section & {
8
- padding: 10px 6px;
9
- border-bottom: 1px solid rgba(0, 0, 0, 0.1);
5
+ .dx-theme-generic & {
6
+ max-height: 32px;
10
7
  }
8
+ }
11
9
 
12
- .image-container {
13
- overflow: hidden;
14
- border-radius: 50%;
15
- height: 30px;
16
- width: 30px;
17
- margin: 0 4px;
18
- border: 1px solid rgba(0, 0, 0, 0.1);
19
- box-shadow: 0 1px 3px rgba(0,0,0,0.15);
20
-
21
- .user-image {
22
- width: 100%;
23
- height: 100%;
10
+ .user-panel {
11
+ display: flex;
12
+ flex-direction: column;
13
+
14
+ .user-button.dx-dropdownbutton {
15
+ margin-left: 5px;
16
+
17
+ img.dx-icon {
18
+ border-radius: 50%;
19
+ margin: 0;
20
+ width: auto;
21
+ aspect-ratio: 1 / 1;
22
+ box-sizing: border-box;
23
+ border: 1px solid var(--dx-color-border);
24
+ object-fit: cover;
25
+ object-position: top;
26
+ background: rgb(255, 255, 255);
27
+ background-clip: padding-box;
24
28
  }
25
- }
26
29
 
27
- .user-name {
28
- font-size: 14px;
29
- color: $base-text-color;
30
- margin: 0 9px;
31
- }
32
- }
33
30
 
34
- .user-panel {
35
- .dx-list-item .dx-icon {
36
- vertical-align: middle;
37
- color: $base-text-color;
38
- margin-right: 16px;
39
- }
40
- .dx-rtl .dx-list-item .dx-icon {
41
- margin-right: 0;
42
- margin-left: 16px;
43
- }
44
- }
45
31
 
46
- .dx-context-menu.user-menu.dx-menu-base {
47
- &.dx-rtl {
48
- .dx-submenu .dx-menu-items-container .dx-icon {
49
- margin-left: 16px;
32
+ .dx-buttongroup {
33
+ vertical-align: middle;
34
+
35
+ .dx-button.dx-button-has-icon:not(.dx-button-has-text) {
36
+ .dx-button-content {
37
+ padding: 0;
38
+ }
39
+
40
+ &.dx-state-hover,
41
+ &.dx-state-focused {
42
+ background-color: transparent;
43
+
44
+ img.dx-icon {
45
+ border-color: var(--dx-color-primary);
46
+ }
47
+ }
48
+ }
50
49
  }
51
50
  }
52
- .dx-submenu .dx-menu-items-container .dx-icon {
53
- margin-right: 16px;
54
- }
55
- .dx-menu-item .dx-menu-item-content {
56
- padding: 3px 15px 4px;
57
- }
58
- }
59
-
60
- .dx-theme-generic .user-menu .dx-menu-item-content .dx-menu-item-text {
61
- padding-left: 4px;
62
- padding-right: 4px;
63
51
  }
@@ -1,18 +1,19 @@
1
1
  import React, { useMemo, useCallback } from 'react';
2
2
  import { useNavigate } from "react-router-dom";
3
- import ContextMenu, { Position } from 'devextreme-react/context-menu';
3
+ import DropDownButton from 'devextreme-react/drop-down-button';
4
4
  import List from 'devextreme-react/list';
5
5
  import { useAuth } from '../../contexts/auth';
6
6
  import './UserPanel.scss';
7
7
  <%=#isTypeScript%>import type { UserPanelProps } from '../../types';<%=/isTypeScript%>
8
8
 
9
9
  export default function UserPanel({ menuMode }<%=#isTypeScript%>: UserPanelProps<%=/isTypeScript%>) {
10
- const { user, signOut } = useAuth();
10
+ const { signOut } = useAuth();
11
11
  const navigate = useNavigate();
12
12
 
13
13
  const navigateToProfile = useCallback(() => {
14
14
  navigate("/profile");
15
15
  }, [navigate]);
16
+
16
17
  const menuItems = useMemo(() => ([
17
18
  {
18
19
  text: 'Profile',
@@ -25,33 +26,29 @@ export default function UserPanel({ menuMode }<%=#isTypeScript%>: UserPanelProps
25
26
  onClick: signOut
26
27
  }
27
28
  ]), [navigateToProfile, signOut]);
28
- return (
29
- <div className={'user-panel'}>
30
- <div className={'user-info'}>
31
- <div className={'image-container'}>
32
- <div
33
- style={{
34
- background: `url(${user<%=#isTypeScript%>!<%=/isTypeScript%>.avatarUrl}) no-repeat #fff`,
35
- backgroundSize: 'cover'
36
- }}
37
- className={'user-image'} />
38
- </div>
39
- <div className={'user-name'}>{user<%=#isTypeScript%>!<%=/isTypeScript%>.email}</div>
40
- </div>
41
29
 
30
+ const dropDownButtonAttributes = {
31
+ class: 'user-button'
32
+ };
33
+
34
+ const buttonDropDownOptions = {
35
+ width: '150px'
36
+ };
37
+
38
+ return (
39
+ <div className='user-panel'>
42
40
  {menuMode === 'context' && (
43
- <ContextMenu
44
- items={menuItems}
45
- target={'.user-button'}
46
- showEvent={'dxclick'}
47
- width={210}
48
- cssClass={'user-menu'}
49
- >
50
- <Position my={{ x: 'center', y: 'top' }} at={{ x: 'center', y: 'bottom' }} />
51
- </ContextMenu>
41
+ <DropDownButton
42
+ stylingMode='text'
43
+ icon='https://js.devexpress.com/Demos/WidgetsGallery/JSDemos/images/employees/06.png'
44
+ showArrowIcon={false}
45
+ elementAttr={dropDownButtonAttributes}
46
+ dropDownOptions={buttonDropDownOptions}
47
+ items={menuItems}>
48
+ </DropDownButton>
52
49
  )}
53
50
  {menuMode === 'list' && (
54
- <List className={'dx-toolbar-menu-action'} items={menuItems} />
51
+ <List items={menuItems} />
55
52
  )}
56
53
  </div>
57
54
  );
@@ -1,36 +1,45 @@
1
- @import "./themes/generated/variables.base.scss";
1
+ $side-panel-min-width: 60px;
2
2
 
3
+ html,
3
4
  body {
4
- font-family:
5
- -apple-system,
6
- BlinkMacSystemFont,
7
- 'Segoe UI',
8
- 'Roboto',
9
- 'Oxygen',
10
- 'Ubuntu',
11
- 'Cantarell',
12
- 'Fira Sans',
13
- 'Droid Sans',
14
- 'Helvetica Neue',
15
- sans-serif;
16
- -webkit-font-smoothing: antialiased;
17
- -moz-osx-font-smoothing: grayscale;
5
+ margin: 0;
6
+ min-height: 100%;
7
+ height: 100%;
18
8
  }
19
9
 
20
- .app {
21
- background-color: darken($base-bg, 5.00);
22
- display: flex;
23
- height: 100%;
24
- width: 100%;
10
+ .dx-viewport {
11
+ .dx-popup-wrapper {
12
+ z-index: 1510 !important;
13
+ }
14
+
15
+ #root {
16
+ height: 100%;
17
+ }
18
+
19
+ * {
20
+ box-sizing: border-box;
21
+ }
22
+
23
+ .app {
24
+ background-color: var(--base-bg-darken-5);
25
+ display: flex;
26
+ height: 100%;
27
+ width: 100%;
28
+ }
25
29
 
26
30
  .content {
27
31
  line-height: 1.5;
28
32
  flex-grow: 1;
33
+ padding: 20px 40px;
29
34
 
30
35
  h2 {
31
- font-size: 30px;
32
- margin-top: 20px;
33
- margin-bottom: 20px;
36
+ font-size: 32px;
37
+ margin: 0;
38
+ line-height: 40px;
39
+ }
40
+
41
+ .screen-x-small & {
42
+ padding: 20px;
34
43
  }
35
44
  }
36
45
 
@@ -45,61 +54,48 @@ body {
45
54
  min-height: 0;
46
55
  }
47
56
 
57
+ .side-nav-outer-toolbar .dx-drawer {
58
+ height: calc(100% - 56px)
59
+ }
60
+
48
61
  .content-block {
49
- margin-left: 40px;
50
- margin-right: 40px;
51
62
  margin-top: 20px;
52
63
  }
53
- }
54
-
55
- .side-nav-outer-toolbar .dx-drawer {
56
- height: calc(100% - 56px)
57
- }
58
64
 
59
- .screen-x-small .content-block {
60
- margin-left: 20px;
61
- margin-right: 20px;
62
- }
63
-
64
- .responsive-paddings {
65
- padding: 20px;
65
+ .responsive-paddings {
66
+ padding: 20px;
66
67
 
67
- .screen-large & {
68
- padding: 40px;
68
+ .screen-large & {
69
+ padding: 40px;
70
+ }
69
71
  }
70
- }
71
-
72
- .dx-card.wide-card {
73
- border-radius: 0;
74
- margin-left: 0;
75
- margin-right: 0;
76
- border-right: 0;
77
- border-left: 0;
78
- }
79
72
 
80
- .with-footer > .dx-scrollable-wrapper >
81
- .dx-scrollable-container > .dx-scrollable-content {
82
- height: 100%;
83
-
84
- & > .dx-scrollview-content {
85
- display: flex;
86
- flex-direction: column;
87
- min-height: 100%;
73
+ .dx-card.wide-card {
74
+ border-radius: 0;
75
+ margin-left: 0;
76
+ margin-right: 0;
77
+ border-right: 0;
78
+ border-left: 0;
88
79
  }
89
- }
90
80
 
91
- $side-panel-min-width: 60px;
81
+ .with-footer > .dx-scrollable-wrapper >
82
+ .dx-scrollable-container > .dx-scrollable-content {
83
+ height: 100%;
92
84
 
93
- html, body {
94
- margin: 0px;
95
- min-height: 100%;
96
- height: 100%;
97
- }
85
+ & > .dx-scrollview-content {
86
+ display: flex;
87
+ flex-direction: column;
88
+ min-height: 100%;
89
+ }
90
+ }
98
91
 
99
- #root {
100
- height: 100%;
101
92
  }
102
93
 
103
- * {
104
- box-sizing: border-box;
94
+ .dx-theme-fluent {
95
+ .dx-drawer-wrapper {
96
+ .dx-drawer-panel-content,
97
+ .dx-overlay-content {
98
+ box-shadow: 0 4px 4px 0 var(--shadow-color-first), 0 1px 2px 0 var(--shadow-color-second);
99
+ }
100
+ }
105
101
  }
@@ -3,13 +3,8 @@
3
3
  }
4
4
 
5
5
  #navigation-header {
6
- @import "../../themes/generated/variables.additional.scss";
7
- background-color: $base-accent;
8
6
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
9
-
10
- .menu-button .dx-icon {
11
- color: $base-text-color;
12
- }
7
+ background-color: var(--base-bg);
13
8
 
14
9
  .screen-x-small & {
15
10
  padding-left: 20px;
@@ -3,8 +3,8 @@
3
3
  display: flex;
4
4
  height: 100%;
5
5
  width: 100%;
6
- }
7
6
 
8
- .layout-header {
9
- z-index: 1501;
7
+ .header-component {
8
+ z-index: 1505;
9
+ }
10
10
  }
@@ -69,7 +69,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
69
69
  title={title}
70
70
  />
71
71
  <Drawer
72
- className={['drawer', patchCssClass].join(' ')}
72
+ className={['drawer layout-body', patchCssClass].join(' ')}
73
73
  position={'before'}
74
74
  closeOnOutsideClick={onOutsideClick}
75
75
  openedStateMode={isLarge ? 'shrink' : 'overlap'}
@@ -81,7 +81,7 @@ export default function SideNavOuterToolbar({ title, children }<%=#isTypeScript%
81
81
  template={'menu'}
82
82
  >
83
83
  <div className={'container'}>
84
- <ScrollView ref={scrollViewRef} className={'layout-body with-footer'}>
84
+ <ScrollView ref={scrollViewRef} className={'with-footer'}>
85
85
  <div className={'content'}>
86
86
  {React.Children.map(children, (item<%=#isTypeScript%>: any<%=/isTypeScript%>) => {
87
87
  return item.type !== Footer && item;
@@ -1,6 +1,8 @@
1
1
  @import "../../themes/generated/variables.base.scss";
2
2
 
3
3
  .single-card {
4
+ width: 100%;
5
+ height: 100%;
4
6
 
5
7
  .dx-card {
6
8
  width: 330px;
@@ -22,14 +24,14 @@
22
24
  margin-bottom: 30px;
23
25
 
24
26
  .title {
25
- color: $base-text-color;
27
+ color: var(--base-text-color);
26
28
  line-height: 28px;
27
29
  font-weight: 500;
28
30
  font-size: 24px;
29
31
  }
30
32
 
31
33
  .description {
32
- color: rgba($base-text-color, alpha($base-text-color) * 0.7);
34
+ color: var(--base-text-color-alpha-7);
33
35
  line-height: 18px;
34
36
  }
35
37
  }