devextreme-cli 1.7.0 → 1.7.3

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 (66) hide show
  1. package/package.json +2 -2
  2. package/src/.DS_Store +0 -0
  3. package/src/applications/application.angular.js +4 -8
  4. package/src/applications/application.react.js +2 -0
  5. package/src/applications/application.vue.js +2 -0
  6. package/src/commands.json +3 -6
  7. package/src/templates/.DS_Store +0 -0
  8. package/src/templates/react/.DS_Store +0 -0
  9. package/src/templates/react/application/.DS_Store +0 -0
  10. package/src/templates/react/application/devextreme.json +28 -0
  11. package/src/templates/react/application/src/App.tsx +11 -7
  12. package/src/templates/react/application/src/components/create-account-form/CreateAccountForm.scss +3 -3
  13. package/src/templates/react/application/src/components/footer/Footer.scss +7 -4
  14. package/src/templates/react/application/src/components/header/Header.scss +4 -5
  15. package/src/templates/react/application/src/components/header/Header.tsx +8 -12
  16. package/src/templates/react/application/src/components/login-form/LoginForm.scss +1 -1
  17. package/src/templates/react/application/src/components/reset-password-form/ResetPasswordForm.scss +1 -1
  18. package/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.scss +49 -68
  19. package/src/templates/react/application/src/components/side-navigation-menu/SideNavigationMenu.tsx +5 -3
  20. package/src/templates/react/application/src/components/theme-switcher/ThemeSwitcher.tsx +20 -0
  21. package/src/templates/react/application/src/components/user-panel/UserPanel.scss +41 -53
  22. package/src/templates/react/application/src/components/user-panel/UserPanel.tsx +22 -25
  23. package/src/templates/react/application/src/dx-styles.scss +63 -67
  24. package/src/templates/react/application/src/layouts/side-nav-inner-toolbar/side-nav-inner-toolbar.scss +1 -6
  25. package/src/templates/react/application/src/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.scss +3 -3
  26. package/src/templates/react/application/src/layouts/side-nav-outer-toolbar/side-nav-outer-toolbar.tsx +2 -2
  27. package/src/templates/react/application/src/layouts/single-card/single-card.scss +4 -2
  28. package/src/templates/react/application/src/theme.tsx +51 -0
  29. package/src/templates/react/application/src/themes/metadata.additional.dark.json +11 -0
  30. package/src/templates/react/application/src/themes/metadata.additional.json +1 -1
  31. package/src/templates/react/application/src/themes/metadata.base.dark.json +8 -0
  32. package/src/templates/react/application/src/themes/metadata.base.json +1 -1
  33. package/src/templates/react/application/src/types.tsx +55 -55
  34. package/src/templates/react/application/src/variables.scss +37 -0
  35. package/src/templates/react/page/page.tsx +1 -1
  36. package/src/templates/react/sample-pages/home/home.scss +20 -15
  37. package/src/templates/react/sample-pages/home/home.tsx +50 -4
  38. package/src/templates/react/sample-pages/profile/profile.tsx +1 -1
  39. package/src/templates/react/sample-pages/tasks/tasks.scss +3 -0
  40. package/src/templates/react/sample-pages/tasks/tasks.tsx +3 -2
  41. package/src/templates/vue-v3/application/devextreme.json +28 -0
  42. package/src/templates/vue-v3/application/src/App.vue +1 -5
  43. package/src/templates/vue-v3/application/src/components/app-footer.vue +7 -4
  44. package/src/templates/vue-v3/application/src/components/header-toolbar.vue +23 -30
  45. package/src/templates/vue-v3/application/src/components/side-nav-menu.vue +63 -73
  46. package/src/templates/vue-v3/application/src/components/theme-switcher.vue +19 -0
  47. package/src/templates/vue-v3/application/src/components/user-panel.vue +61 -81
  48. package/src/templates/vue-v3/application/src/dx-styles.scss +66 -51
  49. package/src/templates/vue-v3/application/src/layouts/side-nav-inner-toolbar.vue +4 -7
  50. package/src/templates/vue-v3/application/src/layouts/side-nav-outer-toolbar.vue +4 -2
  51. package/src/templates/vue-v3/application/src/layouts/single-card.vue +2 -4
  52. package/src/templates/vue-v3/application/src/theme-service.js +40 -0
  53. package/src/templates/vue-v3/application/src/themes/metadata.additional.dark.json +11 -0
  54. package/src/templates/vue-v3/application/src/themes/metadata.additional.json +1 -1
  55. package/src/templates/vue-v3/application/src/themes/metadata.base.dark.json +8 -0
  56. package/src/templates/vue-v3/application/src/themes/metadata.base.json +1 -1
  57. package/src/templates/vue-v3/application/src/variables.scss +37 -0
  58. package/src/templates/vue-v3/application/src/views/create-account-form.vue +5 -7
  59. package/src/templates/vue-v3/application/src/views/login-form.vue +1 -3
  60. package/src/templates/vue-v3/application/src/views/reset-password-form.vue +2 -4
  61. package/src/templates/vue-v3/page/page.vue +1 -1
  62. package/src/templates/vue-v3/sample-pages/home-page.vue +86 -45
  63. package/src/templates/vue-v3/sample-pages/profile-page.vue +1 -1
  64. package/src/templates/vue-v3/sample-pages/tasks-page.vue +7 -2
  65. package/src/utility/latest-versions.js +4 -4
  66. package/src/templates/react/application/src/index.tsx +0 -16
@@ -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
  }
@@ -0,0 +1,51 @@
1
+ import React, { useCallback, useMemo, useState } from 'react';
2
+
3
+ const themes = ['light', 'dark'];
4
+ const themeClassNamePrefix = 'dx-swatch-';
5
+ let currentTheme = getNextTheme();
6
+
7
+ function getNextTheme(theme = '') {
8
+ return themes[themes.indexOf(theme) + 1] || themes[0];
9
+ }
10
+
11
+ function getCurrentTheme() {
12
+ return currentTheme;
13
+ }
14
+
15
+ function toggleTheme(prevTheme<%=#isTypeScript%>: string<%=/isTypeScript%>) {
16
+ const isCurrentThemeDark = prevTheme === 'dark';
17
+ const newTheme = getNextTheme(prevTheme);
18
+
19
+ document.body.classList.replace(
20
+ themeClassNamePrefix + prevTheme,
21
+ themeClassNamePrefix + newTheme
22
+ );
23
+
24
+ const additionalClassNamePrefix = themeClassNamePrefix + 'additional';
25
+ const additionalClassNamePostfix = isCurrentThemeDark ? '-' + prevTheme : '';
26
+ const additionalClassName = `${additionalClassNamePrefix}${additionalClassNamePostfix}`
27
+
28
+ document.body
29
+ .querySelector(`.${additionalClassName}`)?.classList
30
+ .replace(additionalClassName, additionalClassNamePrefix + (isCurrentThemeDark ? '' : '-dark'));
31
+
32
+ currentTheme = newTheme;
33
+
34
+ return newTheme;
35
+ }
36
+
37
+ export function useThemeContext() {
38
+ const [theme, setTheme] = useState(getCurrentTheme());
39
+ const switchTheme = useCallback(() => setTheme((currentTheme) => toggleTheme(currentTheme)), []);
40
+ const isDark = useCallback(()<%=#isTypeScript%>: boolean<%=/isTypeScript%> => {
41
+ return currentTheme === 'dark';
42
+ }, []);
43
+
44
+ if (!document.body.className.includes(themeClassNamePrefix)) {
45
+ document.body.classList.add(themeClassNamePrefix + theme);
46
+ }
47
+
48
+ return useMemo(()=> ({ theme, switchTheme, isDark }), [theme]);
49
+ }
50
+
51
+ export const ThemeContext = React.createContext<%=#isTypeScript%><ReturnType<typeof useThemeContext> | null><%=/isTypeScript%>(null);
@@ -0,0 +1,11 @@
1
+ {
2
+ "items": [],
3
+ "baseTheme": "fluent.blue.dark",
4
+ "assetsBasePath": "../../../node_modules/devextreme/dist/css/",
5
+ "outputColorScheme": "additional-dark",
6
+ "makeSwatch": true,
7
+ "base": true,
8
+ "widgets": [
9
+ "treeview"
10
+ ]
11
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "items": [],
3
- "baseTheme": "material.orange.dark",
3
+ "baseTheme": "fluent.blue.light",
4
4
  "assetsBasePath": "../../../node_modules/devextreme/dist/css/",
5
5
  "outputColorScheme": "additional",
6
6
  "makeSwatch": true,
@@ -0,0 +1,8 @@
1
+ {
2
+ "items": [],
3
+ "baseTheme": "fluent.blue.dark",
4
+ "assetsBasePath": "../../../node_modules/devextreme/dist/css/",
5
+ "outputColorScheme": "dark",
6
+ "base": true,
7
+ "makeSwatch": true
8
+ }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "items": [],
3
- "baseTheme": "material.orange.light",
3
+ "baseTheme": "fluent.blue.light",
4
4
  "assetsBasePath": "../../../node_modules/devextreme/dist/css/",
5
5
  "outputColorScheme": "base",
6
6
  "base": true
@@ -1,56 +1,56 @@
1
- import { TreeViewTypes } from 'devextreme-react/tree-view';
2
- import { ButtonTypes } from 'devextreme-react/button';
3
- import React from 'react';
4
-
5
- export interface HeaderProps {
6
- menuToggleEnabled: boolean;
7
- title?: string;
8
- toggleMenu: (e: ButtonTypes.ClickEvent) => void;
9
- }
10
-
11
- export interface SideNavigationMenuProps {
12
- selectedItemChanged: (e: TreeViewTypes.ItemClickEvent) => void;
13
- openMenu: (e: React.PointerEvent) => void;
14
- compactMode: boolean;
15
- onMenuReady: (e: TreeViewTypes.ContentReadyEvent) => void;
16
- }
17
-
18
- export interface UserPanelProps {
19
- menuMode: 'context' | 'list';
20
- }
21
-
22
- export interface User {
23
- email: string;
24
- avatarUrl: string;
25
- }
26
-
27
- export type AuthContextType = {
28
- user?: User;
29
- signIn: (email: string, password: string) => Promise<{isOk: boolean, data?: User, message?: string}>;
30
- signOut: () => void;
31
- loading: boolean;
32
- }
33
-
34
- export interface SideNavToolbarProps {
35
- title: string;
36
- }
37
-
38
- export interface SingleCardProps {
39
- title?: string;
40
- description?: string;
41
- }
42
-
43
- export type Handle = () => void;
44
-
45
- interface NavigationData {
46
- currentPath: string;
47
- }
48
-
49
- export type NavigationContextType = {
50
- setNavigationData?: ({ currentPath }: NavigationData) => void;
51
- navigationData: NavigationData;
52
- }
53
-
54
- export type ValidationType = {
55
- value: string;
1
+ import { TreeViewTypes } from 'devextreme-react/tree-view';
2
+ import { ButtonTypes } from 'devextreme-react/button';
3
+ import React from 'react';
4
+
5
+ export interface HeaderProps {
6
+ menuToggleEnabled: boolean;
7
+ title?: string;
8
+ toggleMenu: (e: ButtonTypes.ClickEvent) => void;
9
+ }
10
+
11
+ export interface SideNavigationMenuProps {
12
+ selectedItemChanged: (e: TreeViewTypes.ItemClickEvent) => void;
13
+ openMenu: (e: React.PointerEvent) => void;
14
+ compactMode: boolean;
15
+ onMenuReady: (e: TreeViewTypes.ContentReadyEvent) => void;
16
+ }
17
+
18
+ export interface UserPanelProps {
19
+ menuMode: 'context' | 'list';
20
+ }
21
+
22
+ export interface User {
23
+ email: string;
24
+ avatarUrl: string;
25
+ }
26
+
27
+ export type AuthContextType = {
28
+ user?: User;
29
+ signIn: (email: string, password: string) => Promise<{isOk: boolean, data?: User, message?: string}>;
30
+ signOut: () => void;
31
+ loading: boolean;
32
+ }
33
+
34
+ export interface SideNavToolbarProps {
35
+ title: string;
36
+ }
37
+
38
+ export interface SingleCardProps {
39
+ title?: string;
40
+ description?: string;
41
+ }
42
+
43
+ export type Handle = () => void;
44
+
45
+ interface NavigationData {
46
+ currentPath: string;
47
+ }
48
+
49
+ export type NavigationContextType = {
50
+ setNavigationData?: ({ currentPath }: NavigationData) => void;
51
+ navigationData: NavigationData;
52
+ }
53
+
54
+ export type ValidationType = {
55
+ value: string;
56
56
  }
@@ -0,0 +1,37 @@
1
+ :root {
2
+ .dx-swatch-light, .dx-swatch-additional {
3
+ @import "./themes/generated/variables.base.scss";
4
+
5
+ --base-text-color: #{$base-text-color};
6
+ --base-bg: #{$base-bg};
7
+ --base-bg-darken-5: #{darken($base-bg, 5)};
8
+ --base-accent: #{$base-accent};
9
+ --base-text-color-alpha-7: #{rgba($base-text-color, alpha($base-text-color) * 0.7)};
10
+ --footer-border-color: rgba(224, 224, 224, 1);
11
+
12
+ --plus-icon-color: #242424;
13
+ --devextreme-logo-color: #596C7D;
14
+ --vue-logo-text-color: #35495E;
15
+
16
+ --shadow-color-first: rgba(0, 0, 0, 0.06);
17
+ --shadow-color-second: rgba(0, 0, 0, 0.12);
18
+ }
19
+
20
+ .dx-swatch-dark, .dx-swatch-additional-dark {
21
+ @import "./themes/generated/variables.base.dark.scss";
22
+
23
+ --base-text-color: #{$base-text-color};
24
+ --base-bg: #{$base-bg};
25
+ --base-bg-darken-5: #{darken($base-bg, 5)};
26
+ --base-accent: #{$base-accent};
27
+ --base-text-color-alpha-7: #{rgba($base-text-color, alpha($base-text-color) * 0.7)};
28
+
29
+ --plus-icon-color: #fff;
30
+ --devextreme-logo-color: #fff;
31
+ --vue-logo-text-color: #fff;
32
+
33
+ --shadow-color-first: rgba(0, 0, 0, 0.12);
34
+ --shadow-color-second: rgba(0, 0, 0, 0.24);
35
+ --footer-border-color: rgba(97, 97, 97, 1);
36
+ }
37
+ }
@@ -3,7 +3,7 @@ import './<%=pageName%>.scss';
3
3
 
4
4
  export default () => (
5
5
  <React.Fragment>
6
- <h2 className={'content-block'}><%=title%></h2>
6
+ <h2><%=title%></h2>
7
7
  <div className={'content-block'}>
8
8
  <div className={'dx-card responsive-paddings'}>
9
9
  Put your content here
@@ -1,34 +1,39 @@
1
+ @use "../../variables.scss" as *;
2
+
1
3
  .logos-container {
2
- margin: 20px 0 40px 0;
3
- text-align: center;
4
+ margin: 0 0 40px 0;
5
+
4
6
  svg {
5
7
  display: inline-block;
6
8
  }
7
9
  }
8
10
 
9
11
  .devextreme-logo {
10
- width: 200px;
11
- height: 34px;
12
- margin-bottom: 19px;
12
+ width: 255px;
13
+ height: 60px;
14
+
15
+ > path {
16
+ fill: var(--devextreme-logo-color);
17
+ }
18
+
19
+ .by-devexpress {
20
+ path {
21
+ fill: var(--devextreme-logo-color);
22
+ }
23
+ }
13
24
  }
14
25
 
15
26
  .react-logo {
16
27
  width: 184px;
17
- height: 68px;
28
+ height: 60px;
18
29
  }
19
30
 
20
31
  .plus {
21
- margin: 23px 10px;
32
+ margin: 20px;
22
33
  width: 22px;
23
34
  height: 22px;
24
- }
25
35
 
26
- .screen-x-small .logos-container {
27
- svg {
28
- width: 100%;
29
- display: block;
30
- &.plus {
31
- margin: 0;
32
- }
36
+ path {
37
+ fill: var(--plus-icon-color);
33
38
  }
34
39
  }