@eeacms/volto-n2k 1.0.21 → 1.0.23

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 (30) hide show
  1. package/CHANGELOG.md +14 -2
  2. package/package.json +4 -5
  3. package/src/components/index.js +2 -2
  4. package/src/components/manage/Blocks/BodyClass/index.js +1 -1
  5. package/src/components/manage/Blocks/CarouselHorizontal/HorizontalView.jsx +84 -37
  6. package/src/components/manage/Blocks/CarouselHorizontal/styles.less +32 -0
  7. package/src/components/manage/Blocks/HabitatsBanner/Edit.jsx +49 -0
  8. package/src/components/manage/Blocks/HabitatsBanner/View.jsx +115 -21
  9. package/src/components/manage/Blocks/HabitatsBanner/chevron-left-square-fill-svgrepo-com.svg +9 -0
  10. package/src/components/manage/Blocks/HabitatsBanner/chevron-right-square-fill-svgrepo-com.svg +9 -0
  11. package/src/components/manage/Blocks/HabitatsBanner/index.js +18 -11
  12. package/src/components/manage/Blocks/HabitatsBanner/schema.js +64 -5
  13. package/src/components/manage/Blocks/HabitatsBanner/style.less +139 -17
  14. package/src/components/manage/Blocks/Landing/DefalutView.jsx +21 -11
  15. package/src/components/manage/Blocks/Landing/index.js +7 -6
  16. package/src/components/manage/Blocks/Landing/style.less +54 -37
  17. package/src/components/manage/Blocks/NavigationAnchors/View.jsx +16 -10
  18. package/src/components/manage/Blocks/NavigationAnchors/styles.less +2 -0
  19. package/src/components/manage/Blocks/SiteBanner/style.less +4 -0
  20. package/src/components/manage/Blocks/SiteShape/View.jsx +4 -4
  21. package/src/components/manage/Blocks/SiteSpeciesList/style.less +2 -1
  22. package/src/components/manage/Blocks/TilesImages/View.jsx +1 -0
  23. package/src/index.js +1 -48
  24. package/src/less/styles.less +0 -42
  25. package/src/components/theme/Footer/Footer.jsx +0 -209
  26. package/src/components/theme/Header/Header.jsx +0 -169
  27. package/src/components/theme/LanguageSelector/LanguageSelector.jsx +0 -98
  28. package/src/components/theme/LanguageSelector/styles.less +0 -62
  29. package/src/components/theme/Navigation/Navigation.jsx +0 -524
  30. package/src/components/theme/Navigation/bise.svg +0 -132
@@ -1,30 +1,81 @@
1
+ @type: extra;
2
+ @element: custom;
3
+
4
+ @import (multiple, reference, optional) '../../theme.config';
5
+
6
+ @import 'swiper/swiper.less';
7
+ @import 'swiper/modules/navigation/navigation.less';
8
+ @import 'swiper/modules/pagination/pagination.less';
9
+
10
+ @{view} {
11
+ .habitat-banner-details {
12
+ &::before {
13
+ .full-width();
14
+ position: absolute;
15
+ z-index: -1;
16
+ }
17
+
18
+ .carousel {
19
+ .half-width(960px);
20
+
21
+ @media @mobile {
22
+ width: calc(@pageFullWidth - 2rem) !important;
23
+ }
24
+ }
25
+ }
26
+ }
27
+
28
+ @{edit} {
29
+ .habitat-banner-details {
30
+ &::before {
31
+ .full-width-edit();
32
+ position: absolute;
33
+ z-index: -1;
34
+ }
35
+
36
+ .carousel {
37
+ .half-width-edit(960px);
38
+
39
+ @media @mobile {
40
+ width: calc(@pageFullWidthEdit - 2rem) !important;
41
+ }
42
+ }
43
+ }
44
+ }
45
+
1
46
  div#view .habitat-banner-details .ui.container > * {
2
47
  margin-bottom: 0;
3
48
  }
4
49
 
5
50
  .habitat-banner-details {
6
- padding: 1.5em 0;
7
- background-color: #00a390;
51
+ position: relative;
52
+ padding: 0;
8
53
  color: #fff !important;
9
54
  font-family: 'RajdhaniB', 'Helvetica Neue', Arial, Helvetica, sans-serif;
10
55
 
56
+ &::before {
57
+ display: block;
58
+ height: 100%;
59
+ background-color: #00a390;
60
+ content: '';
61
+ }
62
+
11
63
  .habitat-details {
12
64
  display: flex;
13
- align-items: flex-start;
65
+ align-items: center;
14
66
  justify-content: space-between;
15
- gap: 1rem;
16
-
17
- @media only screen and (max-width: 765px) {
18
- flex-flow: column;
19
-
20
- .habitat-metadata {
21
- margin-bottom: 1rem;
22
- }
23
- }
24
67
 
25
68
  .habitat-metadata {
69
+ display: flex;
70
+ width: 50%;
71
+ flex: 0 0 50%;
72
+ flex-direction: column;
73
+ justify-content: center;
74
+ margin: 4rem 0;
75
+ word-wrap: break-word;
76
+
26
77
  .name {
27
- margin-top: 0.5em !important;
78
+ margin-top: 0 !important;
28
79
  margin-bottom: 0 !important;
29
80
  color: #fff !important;
30
81
  font-family: inherit;
@@ -39,6 +90,10 @@ div#view .habitat-banner-details .ui.container > * {
39
90
  }
40
91
  }
41
92
 
93
+ .info {
94
+ margin-bottom: 0;
95
+ }
96
+
42
97
  h3 {
43
98
  margin-top: 0 !important;
44
99
  margin-bottom: 0 !important;
@@ -68,10 +123,77 @@ div#view .habitat-banner-details .ui.container > * {
68
123
  }
69
124
  }
70
125
 
71
- img {
72
- max-height: 200px;
73
- border-radius: 10px;
74
- filter: drop-shadow(-2px 2px 3px rgba(0, 0, 0, 0.4));
126
+ .carousel {
127
+ p {
128
+ font-family: 'RajdhaniB', 'Helvetica Neue', Arial, Helvetica, sans-serif;
129
+ }
130
+
131
+ img {
132
+ width: 100%;
133
+ }
134
+
135
+ .swiper {
136
+ img {
137
+ display: block;
138
+ // max-height: 300px;
139
+ width: 100%;
140
+ height: 300px;
141
+ object-fit: cover;
142
+ }
143
+ }
144
+
145
+ .arrows {
146
+ position: absolute;
147
+ z-index: 1;
148
+ bottom: 0;
149
+ left: 0;
150
+ display: flex;
151
+ width: 100%;
152
+ align-items: center;
153
+
154
+ .icon {
155
+ display: block;
156
+ width: 32px;
157
+ background-color: #fff;
158
+ cursor: pointer;
159
+ }
160
+
161
+ p {
162
+ overflow: hidden;
163
+ width: calc(100% - 64px);
164
+ padding: 0.25rem 0.25rem 0.25rem 1rem;
165
+ margin: 0;
166
+ backdrop-filter: brightness(0.5);
167
+ text-overflow: ellipsis;
168
+ white-space: nowrap;
169
+ }
170
+ }
171
+ }
172
+
173
+ .swiper {
174
+ z-index: 0;
175
+ width: 100%;
176
+
177
+ .swiper-slide:not(.swiper-slide-active) {
178
+ filter: grayscale(100%);
179
+ }
180
+
181
+ .swiper-slide {
182
+ transition: filter 0.5s;
183
+ }
184
+ }
185
+
186
+ @media @mobile {
187
+ flex-flow: column;
188
+
189
+ .habitat-metadata {
190
+ width: 100%;
191
+ margin-top: 2rem;
192
+ }
193
+
194
+ .carousel {
195
+ margin: 0 1rem 1rem 1rem;
196
+ }
75
197
  }
76
198
  }
77
199
  }
@@ -1,9 +1,10 @@
1
1
  import React, { useEffect } from 'react';
2
2
  import { connect } from 'react-redux';
3
3
  import { generatePath } from 'react-router';
4
+ import Cookies from 'universal-cookie';
4
5
  import { Grid } from 'semantic-ui-react';
6
+ import config from '@plone/volto/registry';
5
7
  import { UniversalLink } from '@plone/volto/components';
6
- import { withLocalStorage } from '@eeacms/volto-n2k/hocs';
7
8
  import hiker from './images/hiker.webp';
8
9
  import { tiles, tileProps, getStyle } from './index';
9
10
 
@@ -11,15 +12,25 @@ function removeTrailingSlash(str) {
11
12
  return str.replace(/\/+$/, '');
12
13
  }
13
14
 
15
+ function getLanguage() {
16
+ if (__SERVER__) {
17
+ return config.settings.eea.defaultLanguage;
18
+ }
19
+ const cookies = new Cookies();
20
+
21
+ if (!cookies.get('LANGUAGE')) {
22
+ cookies.set('LANGUAGE', config.settings.eea.defaultLanguage || '');
23
+ }
24
+
25
+ return cookies.get('LANGUAGE');
26
+ }
27
+
14
28
  const DefaultView = (props) => {
15
- const currentLang = props.localStorage.get('N2K_LANGUAGE');
29
+ const language = getLanguage();
16
30
 
17
31
  useEffect(() => {
18
- if (
19
- props.location?.pathname &&
20
- removeTrailingSlash(props.location.pathname) === '/natura2000'
21
- ) {
22
- props.history.push(`/natura2000/${currentLang || 'en'}`);
32
+ if (removeTrailingSlash(props.location?.pathname || '') === '/natura2000') {
33
+ props.history.push(`/natura2000/${language || 'en'}`);
23
34
  }
24
35
  /* eslint-disable-next-line */
25
36
  }, []);
@@ -59,10 +70,10 @@ const DefaultView = (props) => {
59
70
  mobile="7"
60
71
  >
61
72
  <Grid style={{ justifyContent: 'space-around' }}>
62
- {currentLang
73
+ {language
63
74
  ? tiles.map((item, index) => {
64
75
  const link = generatePath(item.link, {
65
- lang: currentLang,
76
+ lang: language,
66
77
  });
67
78
  return (
68
79
  <Grid.Column
@@ -93,6 +104,5 @@ const DefaultView = (props) => {
93
104
  };
94
105
 
95
106
  export default connect((state) => ({
96
- navigation: state.navigation,
97
107
  screen: state.screen,
98
- }))(withLocalStorage(DefaultView));
108
+ }))(DefaultView);
@@ -73,13 +73,14 @@ export const tileProps = {
73
73
  export const getStyle = (props) => {
74
74
  if (!props.screen) return {};
75
75
  if (!props.screen.width || !props.screen.height) return {};
76
+ const height =
77
+ props.screen.height -
78
+ props.screen.content.offsetTop -
79
+ props.screen.browserToolbarHeight;
80
+
76
81
  return {
77
- minHeight: (
78
- props.screen.height - props.screen.browserToolbarHeight
79
- ).toPixel(),
80
- maxHeight: (
81
- props.screen.height - props.screen.browserToolbarHeight
82
- ).toPixel(),
82
+ minHeight: `${height}px`,
83
+ maxHeight: `${height}px`,
83
84
  };
84
85
  };
85
86
 
@@ -2,28 +2,23 @@
2
2
  @type: extra;
3
3
  @element: custom;
4
4
 
5
- div#view .ui.container > {
6
- .landing-page-wrapper {
7
- margin-bottom: 0;
8
- }
9
- }
10
-
11
- .landing-page-wrapper {
5
+ .landing-page-wrapper,
6
+ [class~='view-defaultview'] [id='page-document'] .landing-page-wrapper {
12
7
  position: relative;
8
+ max-width: 100vw !important;
13
9
  padding-top: 4rem;
14
10
  background-image: url('./images/background.webp');
15
11
  background-repeat: no-repeat;
16
12
  background-size: cover;
17
13
 
18
- &:not(.edit) {
19
- overflow-y: hidden;
14
+ overflow-y: hidden;
20
15
 
21
- .ui.grid.landing-page {
22
- overflow-y: auto;
23
- }
16
+ .ui.grid.landing-page {
17
+ overflow-y: auto;
24
18
  }
25
19
 
26
20
  .ui.grid.landing-page {
21
+ position: relative;
27
22
  z-index: 1;
28
23
  max-height: inherit;
29
24
 
@@ -32,7 +27,6 @@ div#view .ui.container > {
32
27
  scrollbar-width: none; /* Firefox */
33
28
 
34
29
  > .row {
35
- z-index: 1;
36
30
  justify-content: space-between;
37
31
  padding-bottom: 5rem;
38
32
  }
@@ -44,7 +38,7 @@ div#view .ui.container > {
44
38
 
45
39
  .landing-page-description {
46
40
  margin-bottom: 3rem;
47
- color: #fff !important;
41
+ color: #fff;
48
42
 
49
43
  p {
50
44
  font-size: 20px;
@@ -65,17 +59,18 @@ div#view .ui.container > {
65
59
  .item a {
66
60
  display: flex;
67
61
  flex-flow: column;
62
+ align-items: center;
63
+ justify-content: center;
68
64
  }
69
65
 
70
66
  .item img.image {
71
67
  width: 100%;
72
- // max-width: 200px;
73
68
  }
74
69
 
75
70
  .item p.description {
76
71
  position: relative;
77
72
  margin-top: 1rem;
78
- color: #fff !important;
73
+ color: #fff;
79
74
  font-size: 0.9em;
80
75
  font-weight: bold;
81
76
  }
@@ -95,7 +90,7 @@ div#view .ui.container > {
95
90
  border: 1px solid #78c0d7bf;
96
91
  border-bottom: 1px solid #fff;
97
92
  margin-top: -45px;
98
- background-color: #fff !important;
93
+ background-color: #fff;
99
94
 
100
95
  .ui.basic.button {
101
96
  padding: 3px;
@@ -144,31 +139,53 @@ div#view .ui.container > {
144
139
  }
145
140
 
146
141
  .slick-image {
147
- z-index: 0 !important;
142
+ position: absolute;
143
+ z-index: 0;
144
+ bottom: 0;
145
+ left: 0;
148
146
  pointer-events: none;
149
147
  }
150
148
  }
151
149
 
152
- // @media only screen and (max-width: @largeMonitorBreakpoint + @offset) {
153
- // .natura2000-theme {
154
- // .landing-page-wrapper {
155
- // .ui.grid.landing-page {
156
- // > .row {
157
- // justify-content: flex-end;
158
- // }
159
- // }
160
- // }
161
- // }
162
- // }
163
-
164
- @media only screen and (max-width: @largestTabletScreen) {
165
- .natura2000-theme {
166
- .landing-page-wrapper {
167
- .ui.grid.landing-page {
168
- > .row {
169
- justify-content: flex-end;
170
- }
150
+ @media only screen and (min-width: @mobileBreakpoint) {
151
+ .landing-page-wrapper {
152
+ .item a img.image {
153
+ max-width: 280px;
154
+ }
155
+
156
+ .ui.grid.landing-page {
157
+ > .row {
158
+ justify-content: flex-end !important;
159
+ }
160
+ }
161
+
162
+ .slick-image {
163
+ width: 450px !important;
164
+ transform: translateX(-40%) translateY(5%) !important;
165
+ }
166
+ }
167
+ }
168
+
169
+ @media only screen and (min-width: @tabletBreakpoint) {
170
+ .landing-page-wrapper {
171
+ .ui.grid.landing-page {
172
+ > .row {
173
+ justify-content: flex-end !important;
171
174
  }
172
175
  }
176
+
177
+ .slick-image {
178
+ width: 500px !important;
179
+ transform: translateX(-25%) translateY(5%) !important;
180
+ }
181
+ }
182
+ }
183
+
184
+ @media only screen and (min-width: @computerBreakpoint) {
185
+ .landing-page-wrapper {
186
+ .slick-image {
187
+ width: 600px !important;
188
+ transform: translateX(-20%) translateY(5%) !important;
189
+ }
173
190
  }
174
191
  }
@@ -1,11 +1,10 @@
1
- import React, { useState, useEffect, useContext, useRef } from 'react';
1
+ import React, { useState, useEffect, useRef } from 'react';
2
2
  import { connect } from 'react-redux';
3
3
  import { withRouter } from 'react-router';
4
4
  import { Menu, Container, Sticky } from 'semantic-ui-react';
5
5
  import qs from 'querystring';
6
6
  import cx from 'classnames';
7
7
  import { UniversalLink } from '@plone/volto/components';
8
- import { StickyContext } from '@eeacms/volto-bise/components';
9
8
  import { withHashLink } from '@eeacms/volto-n2k/hocs';
10
9
  import './styles.less';
11
10
 
@@ -20,8 +19,8 @@ const formatLink = (str, obj) => {
20
19
 
21
20
  const View = (props) => {
22
21
  const [activeHash, setActiveHash] = useState();
22
+ const [height, setHeight] = useState();
23
23
  const [offsetHeight, setOffsetHeight] = useState(0);
24
- const { stickyRef } = useContext(StickyContext);
25
24
  const anchorsRef = useRef();
26
25
  const { data = {}, screen = {} } = props;
27
26
  const links = data.links || [];
@@ -39,18 +38,24 @@ const View = (props) => {
39
38
 
40
39
  const onScroll = () => {
41
40
  const top = document.documentElement.scrollTop;
42
- const offsetHeight = anchorsRef.current?.offsetHeight + 10;
43
- let activeHash,
41
+ const offsetHeight = anchorsRef.current?.offsetHeight + 16;
42
+ let newActiveHash,
44
43
  maxTop = 0;
45
44
  hashList.forEach((hash) => {
46
45
  const hashTop = document.getElementById(hash)?.offsetTop;
47
46
  if (top >= hashTop - offsetHeight && top >= maxTop) {
48
47
  maxTop = top;
49
- activeHash = hash;
48
+ newActiveHash = hash;
50
49
  }
51
50
  });
52
- setActiveHash(activeHash);
53
- setOffsetHeight(offsetHeight - 11);
51
+ if (newActiveHash !== activeHash) {
52
+ setActiveHash(newActiveHash);
53
+ }
54
+ setOffsetHeight(offsetHeight);
55
+ setHeight(
56
+ document.querySelector('.eea.header .fixed-container > .ui.sticky')
57
+ ?.offsetHeight,
58
+ );
54
59
  };
55
60
 
56
61
  useEffect(() => {
@@ -64,8 +69,8 @@ const View = (props) => {
64
69
 
65
70
  return (
66
71
  <Sticky
67
- active={sticky && screen.page?.width > 765}
68
- context={stickyRef}
72
+ active={sticky && screen.page?.width > 767}
73
+ context={__CLIENT__ && document.querySelector('.content-area')}
69
74
  className={cx('sticky-navigation-anchors', {
70
75
  'full-width': sticky,
71
76
  'is-sticky': sticky,
@@ -73,6 +78,7 @@ const View = (props) => {
73
78
  >
74
79
  <div
75
80
  className={cx('navigation-anchors', data.className)}
81
+ style={{ ...(height ? { height: `${height}px` } : {}) }}
76
82
  ref={anchorsRef}
77
83
  >
78
84
  <Container>
@@ -15,6 +15,8 @@ div#view .ui.container > .sticky-navigation-anchors {
15
15
  }
16
16
 
17
17
  .sticky-navigation-anchors {
18
+ z-index: 5 !important;
19
+
18
20
  &.is-sticky {
19
21
  .navigation-anchors {
20
22
  background-color: #fff !important;
@@ -1,3 +1,7 @@
1
+ #site-details {
2
+ margin-top: 0;
3
+ }
4
+
1
5
  .site-banner {
2
6
  padding: 1.5em 0;
3
7
  background-color: #00a390;
@@ -105,8 +105,8 @@ const View = (props) => {
105
105
  />
106
106
  </Map>
107
107
  </div>
108
- <Container className="map-info-notice">
109
- <Message>
108
+ <Message className="map-info-notice">
109
+ <Container>
110
110
  <p>
111
111
  The designations employed and the presentation of material on this
112
112
  map do not imply the expression of any opinion whatsoever on the
@@ -114,8 +114,8 @@ const View = (props) => {
114
114
  country, territory, city or area or of its authorities, or
115
115
  concerning the delimitation of its frontiers or boundaries.
116
116
  </p>
117
- </Message>
118
- </Container>
117
+ </Container>
118
+ </Message>
119
119
  </div>
120
120
  );
121
121
  };
@@ -38,6 +38,7 @@ div#view .site-species-list .species-list .ui.container > * {
38
38
  .ui.button.dropdown,
39
39
  button {
40
40
  border: 1px solid #0000001f;
41
+ margin-bottom: 0;
41
42
  background-color: #fff !important;
42
43
  color: #000;
43
44
  cursor: pointer;
@@ -191,7 +192,7 @@ div#view .site-species-list .species-list .ui.container > * {
191
192
  border-top-right-radius: 10px;
192
193
 
193
194
  @media only screen and (max-width: 767px) {
194
- margin-left: 1rem;
195
+ margin-left: 0.625rem;
195
196
  border-bottom-left-radius: 10px;
196
197
  border-bottom-right-radius: 10;
197
198
  border-top-left-radius: 0;
@@ -12,6 +12,7 @@ const View = (props) => {
12
12
  {mode === 'edit' && !images.length ? <p>Tiles images block</p> : ''}
13
13
  {images.map((image) => (
14
14
  <p
15
+ key={`tile-${image.title}`}
15
16
  className={cx('p-image', {
16
17
  'with-border': data.hasBorder ?? true,
17
18
  'rounded-border': data.rounded ?? true,
package/src/index.js CHANGED
@@ -1,5 +1,4 @@
1
1
  /* eslint-disable no-extend-native */
2
- import React from 'react';
3
2
  import loadable from '@loadable/component';
4
3
  import { compose } from 'redux';
5
4
  import { connectToProviderData } from '@eeacms/volto-datablocks/hocs';
@@ -44,11 +43,9 @@ import installTilesImages from './components/manage/Blocks/TilesImages';
44
43
 
45
44
  import { LINK } from '@plone/volto-slate/constants';
46
45
 
47
- import { Header } from '@eeacms/volto-n2k/components';
48
-
49
46
  import { gridSizes, variants } from './grid';
50
47
 
51
- import './less/styles.less';
48
+ // import './less/styles.less';
52
49
 
53
50
  Array.prototype.sortByProperty = function (property, order = 'ASC') {
54
51
  return this.sort((a, b) => {
@@ -72,50 +69,6 @@ const applyConfig = (config) => {
72
69
 
73
70
  config.settings.persistentReducers.push('localStorage');
74
71
 
75
- config.settings = {
76
- ...config.settings,
77
- n2k: {
78
- multilingualRoot: '/natura2000/:lang',
79
- multilingualPath: '/natura2000/:lang/*',
80
- defaultLanguage: 'en',
81
- supportedLanguages: [
82
- 'bg',
83
- 'hr',
84
- 'cs',
85
- 'da',
86
- 'nl',
87
- 'en',
88
- 'et',
89
- 'fi',
90
- 'fr',
91
- 'de',
92
- 'el',
93
- 'hu',
94
- 'ga',
95
- 'it',
96
- 'lv',
97
- 'lt',
98
- 'mt',
99
- 'pl',
100
- 'pt',
101
- 'ro',
102
- 'sk',
103
- 'sl',
104
- 'es',
105
- 'sv',
106
- ],
107
- },
108
- };
109
-
110
- config.settings.themes = {
111
- ...(config.settings.themes || {}),
112
- natura2000: {
113
- Header: Header,
114
- // Footer: Footer,
115
- Breadcrumbs: () => <></>,
116
- },
117
- };
118
-
119
72
  config.blocks.blocksConfig.columnsBlock = {
120
73
  ...(config.blocks.blocksConfig.columnsBlock || {}),
121
74
  gridSizes: {
@@ -402,16 +402,6 @@ img.slick-image {
402
402
  pointer-events: none;
403
403
  }
404
404
 
405
- .styled.protected-habitats
406
- > .tabs-block.default
407
- > .styled
408
- > .tabs.default
409
- > .ui.menu {
410
- border-bottom: 2px solid #dadada;
411
- margin-bottom: 1rem;
412
- border-radius: 0;
413
- }
414
-
415
405
  .sdf-image {
416
406
  height: 500px;
417
407
 
@@ -480,38 +470,6 @@ img.slick-image {
480
470
  }
481
471
  }
482
472
 
483
- .protected-habitats {
484
- .default.tabs {
485
- .ui.menu {
486
- border-bottom: none !important;
487
- background-color: #00a390;
488
-
489
- .item {
490
- padding: 1rem;
491
- border-radius: 0;
492
- color: #fff !important;
493
-
494
- p {
495
- font-size: 16px !important;
496
- }
497
-
498
- &.active:hover,
499
- &:hover {
500
- padding-bottom: calc(1rem - 3px);
501
- border-bottom: 3px solid #fff;
502
- color: #fff !important;
503
- }
504
-
505
- &.active {
506
- padding-bottom: calc(1rem - 3px);
507
- border-bottom: 3px solid #fff;
508
- color: #fff !important;
509
- }
510
- }
511
- }
512
- }
513
- }
514
-
515
473
  .smart-table .search-description {
516
474
  margin-bottom: 2rem;
517
475
  color: #6b6b6b;