adata-ui 0.3.91 → 3.0.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 (106) hide show
  1. package/README.md +84 -7
  2. package/dist/module.d.mts +8 -0
  3. package/dist/module.json +9 -0
  4. package/dist/module.mjs +16 -0
  5. package/dist/runtime/plugin.d.ts +2 -0
  6. package/dist/runtime/plugin.js +4 -0
  7. package/dist/runtime/server/tsconfig.json +3 -0
  8. package/dist/types.d.mts +3 -0
  9. package/package.json +55 -76
  10. package/babel.config.js +0 -5
  11. package/dist/adata-ui.common.js +0 -10489
  12. package/dist/adata-ui.common.js.map +0 -1
  13. package/dist/adata-ui.css +0 -1
  14. package/dist/adata-ui.umd.js +0 -10499
  15. package/dist/adata-ui.umd.js.map +0 -1
  16. package/dist/adata-ui.umd.min.js +0 -7
  17. package/dist/adata-ui.umd.min.js.map +0 -1
  18. package/dist/demo.html +0 -10
  19. package/dist/img/facebook.797d820f.svg +0 -4
  20. package/dist/img/instagram.8a77381c.svg +0 -6
  21. package/dist/img/logo-desktop-main.4d169395.svg +0 -8
  22. package/dist/img/logo-mobile-main.397bce24.svg +0 -4
  23. package/dist/img/logo-white-desktop.7d0e3481.svg +0 -8
  24. package/dist/img/telegram.be0d1008.svg +0 -4
  25. package/dist/img/tiktok.eaeb39cb.svg +0 -4
  26. package/dist/img/up-down.e2b28f72.svg +0 -3
  27. package/dist/img/youtube.125aace6.svg +0 -5
  28. package/package-lock.json +0 -27138
  29. package/public/favicon.ico +0 -0
  30. package/public/index.html +0 -17
  31. package/public/logo.svg +0 -4
  32. package/src/App.vue +0 -28
  33. package/src/assets/_text_field.scss +0 -225
  34. package/src/assets/facebook.svg +0 -4
  35. package/src/assets/instagram.svg +0 -6
  36. package/src/assets/logo-desktop-main.svg +0 -8
  37. package/src/assets/logo-desktop.svg +0 -9
  38. package/src/assets/logo-desktop.webp +0 -0
  39. package/src/assets/logo-mobile-main.svg +0 -4
  40. package/src/assets/logo-mobile.svg +0 -9
  41. package/src/assets/logo-mobile.webp +0 -0
  42. package/src/assets/logo-white-desktop.svg +0 -8
  43. package/src/assets/style.scss +0 -1
  44. package/src/assets/telegram.svg +0 -4
  45. package/src/assets/tiktok.svg +0 -4
  46. package/src/assets/up-down.svg +0 -3
  47. package/src/assets/youtube.svg +0 -5
  48. package/src/components/Alert/Alert.stories.js +0 -17
  49. package/src/components/Alert/Alert.vue +0 -63
  50. package/src/components/BottomNavigationBar/ABottomNavigationBar.vue +0 -160
  51. package/src/components/BottomNavigationBar/BottomNavigationBar.stories.js +0 -25
  52. package/src/components/Button/AButton.vue +0 -231
  53. package/src/components/Button/Button.stories.js +0 -23
  54. package/src/components/Checkbox/ACheckbox.vue +0 -114
  55. package/src/components/Checkbox/Checkbox.stories.js +0 -15
  56. package/src/components/CheckboxMenu/CheckboxMenu.stories.js +0 -24
  57. package/src/components/CheckboxMenu/CheckboxMenu.vue +0 -108
  58. package/src/components/ErrorPages/BadGateway.vue +0 -224
  59. package/src/components/ErrorPages/Forbidden.vue +0 -468
  60. package/src/components/ErrorPages/InternalServerError.vue +0 -275
  61. package/src/components/ErrorPages/NotFound.vue +0 -995
  62. package/src/components/ErrorPages/Unavailable.vue +0 -3705
  63. package/src/components/Footer/Footer.stories.js +0 -20
  64. package/src/components/Footer/Footer.vue +0 -292
  65. package/src/components/Header/ChildLinks.vue +0 -144
  66. package/src/components/Header/Header.stories.js +0 -56
  67. package/src/components/Header/Header.vue +0 -1308
  68. package/src/components/Header/InfoHeader.vue +0 -319
  69. package/src/components/Header/Profile.vue +0 -670
  70. package/src/components/Header/ProfileMenu.vue +0 -293
  71. package/src/components/Header/ProfileMobile.vue +0 -308
  72. package/src/components/Header/ProfileOld.vue +0 -781
  73. package/src/components/InternalServerError/InternalServerError.stories.js +0 -17
  74. package/src/components/InternalServerError/InternalServerError.vue +0 -262
  75. package/src/components/Introduction.stories.mdx +0 -7
  76. package/src/components/Loader/Loader.stories.js +0 -25
  77. package/src/components/Loader/Loader.vue +0 -325
  78. package/src/components/MailTo/MailTo.stories.js +0 -15
  79. package/src/components/MailTo/MailTo.vue +0 -258
  80. package/src/components/NavIcon/ANavIcon.vue +0 -50
  81. package/src/components/NavIcon/NavIcon.stories.js +0 -15
  82. package/src/components/PasswordField/PasswordField.stories.js +0 -16
  83. package/src/components/PasswordField/PasswordField.vue +0 -77
  84. package/src/components/SearchTextField/SearchTextField.stories.js +0 -78
  85. package/src/components/SearchTextField/SearchTextField.vue +0 -230
  86. package/src/components/ServiceSlider/AServiceSlider.vue +0 -793
  87. package/src/components/ServiceSlider/ServiceSlider.stories.js +0 -20
  88. package/src/components/Table/ATable.vue +0 -117
  89. package/src/components/Table/Table.stories.js +0 -15
  90. package/src/components/TextArea/TextArea.stories.js +0 -17
  91. package/src/components/TextArea/TextArea.vue +0 -116
  92. package/src/components/TextError/TextError.stories.js +0 -15
  93. package/src/components/TextError/TextError.vue +0 -57
  94. package/src/components/TextField/TextField.stories.js +0 -17
  95. package/src/components/TextField/TextField.vue +0 -107
  96. package/src/components/index.js +0 -54
  97. package/src/components/newComponents/FooterNew/FooterBottom.vue +0 -153
  98. package/src/components/newComponents/FooterNew/FooterItem.vue +0 -114
  99. package/src/components/newComponents/FooterNew/FooterNew.stories.js +0 -20
  100. package/src/components/newComponents/FooterNew/FooterNew.vue +0 -39
  101. package/src/components/newComponents/FooterNew/FooterTop.vue +0 -321
  102. package/src/components/transitions/SlideToggle.vue +0 -55
  103. package/src/components/transitions/VerticalMobileToggle.vue +0 -75
  104. package/src/configs/icons.js +0 -112
  105. package/src/configs/profileDropDown.js +0 -134
  106. package/src/main.js +0 -12
@@ -1,20 +0,0 @@
1
- import AServiceSlider from "./AServiceSlider";
2
-
3
- export default {
4
- title: 'ServiceSlider',
5
- component: AServiceSlider,
6
- template: "<a-service-slider></a-service-slider>"
7
- }
8
-
9
- const Template = (args, { argTypes }) => ({
10
- components: { AServiceSlider },
11
- props: Object.keys(argTypes),
12
- template: "<a-service-slider v-bind='$props'></a-service-slider>",
13
- });
14
-
15
- export const serviceSlider = Template.bind({})
16
-
17
- serviceSlider.args = {
18
- openService: false,
19
- isAuth: false
20
- }
@@ -1,117 +0,0 @@
1
- <template>
2
- <table class="a-table">
3
- <thead>
4
- <tr>
5
- <th v-for="(col, i) in cols" :key="i">{{ col.name }}</th>
6
- </tr>
7
- </thead>
8
- <tbody>
9
- <tr v-for="(row, i) in rows" :key="i">
10
- <td v-for="col in cols" :key="col.key" :data-label="`${col.name}`">
11
- <slot :name="'key-' + col.key" :row="row">
12
- {{ row[col.key] || defaultEmpty }}
13
- </slot>
14
- </td>
15
- </tr>
16
- </tbody>
17
- </table>
18
- </template>
19
-
20
- <script>
21
- export default {
22
- props: {
23
- cols: {
24
- type: Array,
25
- default: () => [],
26
- },
27
- rows: {
28
- type: Array,
29
- default: () => [],
30
- },
31
- defaultEmpty: {
32
- type: [String, Number],
33
- default: "Нет данных",
34
- },
35
- },
36
- };
37
- </script>
38
-
39
- <style lang="scss" scoped>
40
- .a-table {
41
- display: flex;
42
- flex-direction: column;
43
- background: #fff;
44
-
45
- @media screen and (max-width: 850px) {
46
- border: 0;
47
- }
48
-
49
- thead {
50
- background: rgba(189, 199, 206, 0.3);
51
-
52
- @media screen and (max-width: 850px) {
53
- display: none;
54
- }
55
-
56
- tr {
57
- display: flex;
58
-
59
- th {
60
- display: flex;
61
- justify-content: center;
62
- flex: 1;
63
- padding: 20px 16px;
64
- font-size: 12px;
65
- font-weight: normal;
66
- word-break: break-word;
67
-
68
- @media screen and (max-width: 850px) {
69
- justify-content: flex-start;
70
- }
71
- }
72
- }
73
- }
74
-
75
- tbody {
76
- tr {
77
- display: flex;
78
- border-bottom: 1px solid #ccc;
79
-
80
- @media screen and (max-width: 850px) {
81
- flex-direction: column;
82
- margin: 10px;
83
- padding: 10px 0;
84
- border: 0;
85
- background: rgba(189, 199, 206, 0.3);
86
- }
87
-
88
- td {
89
- display: flex;
90
- justify-content: center;
91
- flex: 1;
92
- padding: 20px 16px;
93
- word-break: break-word;
94
- font-size: 12px;
95
- font-weight: normal;
96
- text-align: left;
97
-
98
- @media screen and (max-width: 850px) {
99
- flex-direction: column;
100
- row-gap: 4px;
101
- justify-content: flex-start;
102
- padding: 8px 16px;
103
- }
104
-
105
- &:before {
106
- @media screen and (max-width: 850px) {
107
- content: attr(data-label);
108
- display: flex;
109
- align-items: left;
110
- font-weight: bold;
111
- }
112
- }
113
- }
114
- }
115
- }
116
- }
117
- </style>
@@ -1,15 +0,0 @@
1
- import ATable from "./ATable.vue";
2
-
3
- export default {
4
- title: "Table",
5
- component: ATable,
6
- template: "<a-table></a-table>",
7
- };
8
-
9
- const Template = (args, { argTypes }) => ({
10
- components: { ATable },
11
- props: Object.keys(argTypes),
12
- template: "<a-table v-bind='$props'></a-header>",
13
- });
14
-
15
- export const BaseTable = Template.bind({});
@@ -1,17 +0,0 @@
1
- import ATextArea from "./TextArea.vue";
2
-
3
- export default {
4
- title: 'TextArea',
5
- component: ATextArea,
6
- data: () => ({ value: "" }),
7
- template: "<a-text-area @input='(val) => {this.value = val}' label='Example'></a-text-area>>"
8
- }
9
-
10
- const Template = (args, { argTypes }) => ({
11
- components: { ATextArea },
12
- props: Object.keys(argTypes),
13
- template: '<a-text-area v-bind="$props"></a-text-area>'
14
- })
15
-
16
- export const Clearable = Template.bind({});
17
- Clearable.args = {label: 'Clearable', clearable: true}
@@ -1,116 +0,0 @@
1
- <template>
2
- <div class="adt-text-block__wrapper">
3
- <div
4
- class="adt-text-block__textarea"
5
- :class="{ 'adt-text-block__textarea--error': !!errorText }"
6
- >
7
- <textarea
8
- :id="id"
9
- ref="textarea"
10
- :type="type"
11
- :value="value"
12
- :placeholder="placeholder"
13
- required
14
- @input="$emit('input', $event.target.value)"
15
- @keyup.enter="enterPressed"
16
- />
17
- <label
18
- :for="id"
19
- class="adt-text-block__label"
20
- :class="{ 'adt-text-block--ellipsis': isEllipsis }"
21
- >
22
- {{ label }}
23
- <span v-if="required" class="adt-text-block__required">*</span>
24
- </label>
25
- <div
26
- class="adt-text-block__icon desktop"
27
- v-if="clearable && value && value.length > 0"
28
- @click="$emit('input', '')"
29
- >
30
- <svg
31
- width="12"
32
- height="12"
33
- fill="none"
34
- xmlns="http://www.w3.org/2000/svg"
35
- viewBox="0 0 16 16"
36
- id="clearIcon"
37
- >
38
- <path
39
- d="M2 2l12 12m0-12L2 14"
40
- stroke="#2C3E50"
41
- stroke-linecap="round"
42
- stroke-linejoin="round"
43
- ></path>
44
- </svg>
45
- </div>
46
- </div>
47
- <text-error v-if="!!errorText" :errorText="errorText" />
48
- </div>
49
- </template>
50
- <script>
51
- import "@/assets/style.scss";
52
- import TextError from "@/components/TextError/TextError";
53
-
54
- export default {
55
- name: "TextArea",
56
- props: {
57
- id: {
58
- type: String,
59
- default: ""
60
- },
61
- errorText: {
62
- type: String,
63
- default: "",
64
- },
65
- label: {
66
- type: String,
67
- required: true,
68
- },
69
- type: {
70
- type: String,
71
- default: "text",
72
- },
73
- value: {
74
- type: String,
75
- default: "",
76
- },
77
- placeholder: {
78
- type: String,
79
- default: "",
80
- },
81
- clearable: {
82
- type: Boolean,
83
- default: false,
84
- },
85
- required: {
86
- type: Boolean,
87
- default: false,
88
- },
89
- isEllipsis: {
90
- type: Boolean,
91
- default: false,
92
- },
93
- },
94
- components: {
95
- TextError
96
- },
97
- data() {
98
- return {
99
- showPlaceholder: false,
100
- };
101
- },
102
- computed: {
103
- inputPlaceholder() {
104
- return this.showPlaceholder ? this.placeholder : "";
105
- },
106
- },
107
- methods: {
108
- enterPressed() {
109
- this.$emit("enterPressed", this.value);
110
- },
111
- inputHandler(e) {
112
- this.$emit("input", e.target.value);
113
- },
114
- },
115
- };
116
- </script>
@@ -1,15 +0,0 @@
1
- import TextError from "./TextError";
2
-
3
- export default {
4
- title: 'TextError',
5
- component: TextError,
6
- }
7
-
8
- const Template = (args, { argTypes }) => ({
9
- components: { TextError },
10
- props: Object.keys(argTypes),
11
- template: '<text-error v-bind="$props"></text-error>'
12
- })
13
-
14
- export const Default = Template.bind({});
15
- Default.args = {errorText: 'Введите больше чем 20 символов'}
@@ -1,57 +0,0 @@
1
- <template>
2
- <div class="adt-text-error">
3
- <div class="adt-text-error__icon">
4
- <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
5
- <g clip-path="url(#clip0_508_13640)">
6
- <path
7
- d="M8.00016 14.6666C11.6821 14.6666 14.6668 11.6818 14.6668 7.99992C14.6668 4.31802 11.6821 1.33325 8.00016 1.33325C4.31826 1.33325 1.3335 4.31802 1.3335 7.99992C1.3335 11.6818 4.31826 14.6666 8.00016 14.6666Z"
8
- stroke="white" stroke-linecap="round" stroke-linejoin="round"/>
9
- <path d="M8 10.6667H8.00667" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
10
- <path d="M8 5.33325V7.99992" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
11
- </g>
12
- <defs>
13
- <clipPath id="clip0_508_13640">
14
- <rect width="16" height="16" fill="white"/>
15
- </clipPath>
16
- </defs>
17
- </svg>
18
- </div>
19
- <p class="adt-text-error__text">{{ errorText }}</p>
20
- </div>
21
- </template>
22
-
23
- <script>
24
- export default {
25
- name: "TextError",
26
- props: {
27
- errorText: {
28
- type: String,
29
- default: ""
30
- },
31
- },
32
- };
33
- </script>
34
-
35
- <style lang="scss" scoped>
36
- .adt-text-error {
37
- display: flex;
38
- background: rgba(255, 46, 67, 0.12);
39
- border-radius: 4px;
40
- overflow: hidden;
41
- color: #2c3e50;
42
- margin-top: 8px;
43
-
44
- &__icon {
45
- background: #FF2E43;
46
- padding: 4px 8px;
47
- display: grid;
48
- place-content: center;
49
- }
50
-
51
- &__text {
52
- font-size: 12px;
53
- line-height: 20px;
54
- padding: 2px 16px;
55
- }
56
- }
57
- </style>
@@ -1,17 +0,0 @@
1
- import ATextField from "./TextField.vue";
2
-
3
- export default {
4
- title: 'TextField',
5
- component: ATextField,
6
- data: () => ({ value: "" }),
7
- template: "<a-text-field @input='(val) => {this.value = val}' label='Example'></a-text-field>>"
8
- }
9
-
10
- const Template = (args, { argTypes }) => ({
11
- components: { ATextField },
12
- props: Object.keys(argTypes),
13
- template: '<a-text-field v-bind="$props"></a-text-field>'
14
- })
15
-
16
- export const Clearable = Template.bind({});
17
- Clearable.args = {label: 'Clearable', clearable: true}
@@ -1,107 +0,0 @@
1
- <template>
2
- <div class="adt-text-block">
3
- <div :class="['adt-text-block__field', { error: !!errorText }]">
4
- <input
5
- :id="id"
6
- ref="input"
7
- :type="type"
8
- :value="value"
9
- :placeholder="placeholder"
10
- required
11
- @input="$emit('input', $event.target.value)"
12
- @keyup.enter="enterPressed"
13
- class="adt-text-block__input"
14
- :class="{ error: !!errorText }"
15
- />
16
- <label :for="id" class="adt-text-block__label">
17
- {{ label }}
18
- <span v-if="required" class="adt-text-block__required">*</span>
19
- </label>
20
- <div
21
- class="adt-text-block__icon desktop"
22
- v-if="clearable && value && value.length > 0"
23
- @click="$emit('input', '')"
24
- >
25
- <svg
26
- width="12"
27
- height="12"
28
- fill="none"
29
- xmlns="http://www.w3.org/2000/svg"
30
- viewBox="0 0 16 16"
31
- id="clearIcon"
32
- >
33
- <path
34
- d="M2 2l12 12m0-12L2 14"
35
- stroke="#2C3E50"
36
- stroke-linecap="round"
37
- stroke-linejoin="round"
38
- ></path>
39
- </svg>
40
- </div>
41
- </div>
42
- <text-error v-if="!!errorText" :errorText="errorText" />
43
- </div>
44
- </template>
45
- <script>
46
- import "@/assets/style.scss";
47
- import TextError from "@/components/TextError/TextError";
48
-
49
- export default {
50
- name: "TextField",
51
- components: {
52
- TextError
53
- },
54
- props: {
55
- id: {
56
- type: String,
57
- default: ""
58
- },
59
- errorText: {
60
- type: String,
61
- default: "",
62
- },
63
- label: {
64
- type: String,
65
- required: true,
66
- },
67
- type: {
68
- type: String,
69
- default: "text",
70
- },
71
- value: {
72
- type: String,
73
- default: "",
74
- },
75
- placeholder: {
76
- type: String,
77
- default: "",
78
- },
79
- clearable: {
80
- type: Boolean,
81
- default: false,
82
- },
83
- required: {
84
- type: Boolean,
85
- default: false,
86
- },
87
- },
88
- data() {
89
- return {
90
- showPlaceholder: false,
91
- };
92
- },
93
- computed: {
94
- inputPlaceholder() {
95
- return this.showPlaceholder ? this.placeholder : "";
96
- },
97
- },
98
- methods: {
99
- enterPressed() {
100
- this.$emit("enterPressed", this.value);
101
- },
102
- inputHandler(e) {
103
- this.$emit("input", e.target.value);
104
- },
105
- },
106
- };
107
- </script>
@@ -1,54 +0,0 @@
1
- import Vue from "vue";
2
- import ACheckbox from "./Checkbox/ACheckbox";
3
- import ACheckboxMenu from "./CheckboxMenu/CheckboxMenu";
4
- import AButton from "./Button/AButton";
5
- import ATextField from "./TextField/TextField";
6
- import ATextArea from "./TextArea/TextArea";
7
- import APasswordField from "./PasswordField/PasswordField";
8
- import AAlert from "./Alert/Alert";
9
- import AHeader from "./Header/Header";
10
- import AFooter from "./Footer/Footer";
11
- import AFooterNew from "./newComponents/FooterNew/FooterNew";
12
- import ASearchTextField from "./SearchTextField/SearchTextField";
13
- import AMailTo from "./MailTo/MailTo";
14
- import ATable from "./Table/ATable";
15
- import ALoader from "./Loader/Loader";
16
- import ABottomNavigationBar from "./BottomNavigationBar/ABottomNavigationBar";
17
- import ANavIcon from "./NavIcon/ANavIcon";
18
- import AServiceSlider from "./ServiceSlider/AServiceSlider";
19
- // import ABadGateway from "./ErrorPages/BadGateway";
20
- // import AForbidden from "./ErrorPages/Forbidden";
21
- // import AInternalServerError from "./ErrorPages/InternalServerError";
22
- // import ANotFound from "./ErrorPages/NotFound";
23
- // import AUnavailable from "./ErrorPages/Unavailable";
24
-
25
- const Components = {
26
- ACheckbox,
27
- AButton,
28
- ATextField,
29
- ATextArea,
30
- APasswordField,
31
- AAlert,
32
- AHeader,
33
- AFooter,
34
- AFooterNew,
35
- ASearchTextField,
36
- AMailTo,
37
- ATable,
38
- ALoader,
39
- ACheckboxMenu,
40
- ABottomNavigationBar,
41
- ANavIcon,
42
- AServiceSlider
43
- // ABadGateway,
44
- // AForbidden,
45
- // AInternalServerError,
46
- // ANotFound,
47
- // AUnavailable,
48
- };
49
-
50
- Object.keys(Components).forEach((name) => {
51
- Vue.component(name, Components[name]);
52
- });
53
-
54
- export default Components;
@@ -1,153 +0,0 @@
1
- <template>
2
- <div class="bottom">
3
- <div class="bottom__left">
4
- <a v-for="item in list" :key="item.id" :href="item.link" class="bottom__left__link">
5
- {{ item.name }}
6
- </a>
7
- </div>
8
- <div class="bottom__right">
9
- <span class="bottom__right-text">{{ new Date().getFullYear() }} © ТОО "Alldata"</span>
10
- <span class="logo-desktop"></span>
11
- </div>
12
- </div>
13
- </template>
14
-
15
- <script>
16
- export default {
17
- name: "FooterBottom",
18
- props: {
19
- mode: {
20
- type: String,
21
- required: true,
22
- validator: function (value) {
23
- return ["prod", "dev", "staging"].indexOf(value) !== -1;
24
- },
25
- },
26
- },
27
- data() {
28
- return {
29
- main: {
30
- dev: "adtdev.kz",
31
- prod: "adata.kz",
32
- staging: "adada.kz",
33
- },
34
- }
35
- },
36
- computed:{
37
- environment() {
38
- return this.main[this.mode]
39
- },
40
-
41
- list(){
42
- return [
43
- {
44
- id: 1,
45
- name: 'Тарифы',
46
- link: `https://${this.environment}/tariffs`
47
- },
48
- {
49
- id: 2,
50
- name: 'Полезное',
51
- link: `https://${this.environment}/about`
52
- },
53
- {
54
- id: 3,
55
- name: 'Описание API',
56
- link: `https://${this.environment}/apiInfo`
57
- },
58
- {
59
- id: 4,
60
- name: 'Пользовательское соглашение',
61
- link: `https://${this.environment}/user-agreements`
62
- },
63
- {
64
- id: 5,
65
- name: 'Политика конфиденциальности',
66
- link: `https://${this.environment}/privacy-policy`
67
- },
68
- {
69
- id: 6,
70
- name: 'Вакансии',
71
- link: `https://${this.environment}/vacancy`
72
- },
73
- {
74
- id: 7,
75
- name: 'Каталог предприятий',
76
- link: `https://pk.${this.environment}/counterparty`
77
- },
78
- {
79
- id: 8,
80
- name: 'Контакты',
81
- link: `https://${this.environment}/contacts`
82
- },
83
- ]
84
-
85
- }
86
- }
87
- }
88
- </script>
89
-
90
- <style lang="scss" scoped>
91
- .bottom {
92
- display: flex;
93
- align-items: center;
94
- justify-content: space-between;
95
- max-width: 1180px;
96
- margin: 0 calc((100vw - 1180px)/2);
97
- padding: 20px;
98
- @media (max-width: 1140px) {
99
- padding: 20px 16px;
100
- margin: 0 auto;
101
- }
102
- @media (max-width: 768px) {
103
- padding: 20px 16px 12px;
104
- }
105
-
106
- &__left {
107
- display: flex;
108
- align-items: center;
109
- gap: 24px;
110
- @media screen and (max-width: 1140px) {
111
- flex-direction: column;
112
- align-items: flex-start;
113
- gap: 16px;
114
- }
115
-
116
- &__link {
117
- font-weight: 400;
118
- font-size: 10px;
119
- line-height: 16px;
120
- color: #FFFFFF;
121
- }
122
- }
123
-
124
- &__right {
125
- display: flex;
126
- align-items: center;
127
- gap: 16px;
128
-
129
- &-text {
130
- font-weight: 400;
131
- font-size: 10px;
132
- line-height: 16px;
133
- color: #FFFFFF;
134
- @media screen and (max-width: 1140px) {
135
- display: none;
136
- }
137
- }
138
- }
139
- }
140
-
141
- .logo-desktop {
142
- display: inline-block;
143
- width: 90px;
144
- height: 26px;
145
- background-image: url("~@/assets/logo-white-desktop.svg");
146
- background-size: cover;
147
- background-position: center;
148
- @media screen and (max-width: 1140px) {
149
- display: none;
150
-
151
- }
152
- }
153
- </style>