@webitel/ui-sdk 23.9.2 → 23.12.2

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 (56) hide show
  1. package/dist/ui-sdk.common.js +11155 -445
  2. package/dist/ui-sdk.common.js.map +1 -1
  3. package/dist/ui-sdk.css +1 -1
  4. package/dist/ui-sdk.umd.js +11307 -597
  5. package/dist/ui-sdk.umd.js.map +1 -1
  6. package/dist/ui-sdk.umd.min.js +8 -8
  7. package/dist/ui-sdk.umd.min.js.map +1 -1
  8. package/package.json +9 -4
  9. package/src/components/wt-app-header/_variables.scss +1 -0
  10. package/src/components/wt-app-header/wt-app-header.vue +1 -1
  11. package/src/components/wt-button/Readme.md +23 -0
  12. package/src/components/wt-button/_variables.scss +53 -30
  13. package/src/components/wt-button/wt-button.vue +45 -147
  14. package/src/components/wt-button-select/Readme.md +13 -0
  15. package/src/components/wt-button-select/_variables.scss +0 -11
  16. package/src/components/wt-button-select/wt-button-select.vue +33 -92
  17. package/src/components/wt-checkbox/wt-checkbox.vue +8 -2
  18. package/src/components/wt-context-menu/wt-context-menu.vue +4 -1
  19. package/src/components/wt-datepicker/wt-datepicker.vue +9 -3
  20. package/src/components/wt-icon/Readme.md +327 -0
  21. package/src/components/wt-icon/_variables.scss +26 -0
  22. package/src/components/wt-icon/docs/cleanup-svg-fill-none.png +0 -0
  23. package/src/components/wt-icon/docs/cleanup-svg-fill.png +0 -0
  24. package/src/components/wt-icon/docs/cleanup-svg-viewbox-correct.png +0 -0
  25. package/src/components/wt-icon/docs/cleanup-svg-viewbox-incorrect.png +0 -0
  26. package/src/components/wt-icon/docs/cleanup-svg-width-height.png +0 -0
  27. package/src/components/wt-icon/docs/svg-icon-code-example.png +0 -0
  28. package/src/components/wt-icon/docs/svg-sprite-in-dom.png +0 -0
  29. package/src/components/wt-icon/wt-icon.vue +72 -87
  30. package/src/components/wt-icon-action/_internals/wt-edit-icon-action.vue +0 -1
  31. package/src/components/wt-icon-btn/Readme.md +10 -0
  32. package/src/components/wt-icon-btn/_variables.scss +9 -0
  33. package/src/components/wt-icon-btn/wt-icon-btn.vue +27 -62
  34. package/src/components/wt-input/wt-input.vue +8 -5
  35. package/src/components/wt-navigation-bar/wt-navigation-bar.vue +2 -2
  36. package/src/components/wt-page-header/wt-page-header.vue +3 -3
  37. package/src/components/wt-pagination/__tests__/WtPagination.spec.js +2 -1
  38. package/src/components/wt-radio/wt-radio.vue +4 -1
  39. package/src/components/wt-rounded-action/Readme.md +68 -0
  40. package/src/components/wt-rounded-action/_variables.scss +42 -4
  41. package/src/components/wt-rounded-action/wt-rounded-action.vue +139 -107
  42. package/src/components/wt-select/wt-select.vue +15 -6
  43. package/src/components/wt-switcher/wt-switcher.vue +5 -2
  44. package/src/components/wt-tabs/wt-tabs.vue +4 -1
  45. package/src/components/wt-tags-input/wt-tags-input.vue +11 -5
  46. package/src/components/wt-textarea/wt-textarea.vue +5 -2
  47. package/src/components/wt-time-input/wt-time-input.vue +5 -2
  48. package/src/components/wt-timepicker/wt-timepicker.vue +1 -1
  49. package/src/css/styleguide/colors/_colors.scss +170 -148
  50. package/src/css/styleguide/colors/_deprecated.scss +151 -0
  51. package/src/css/styleguide/colors/_palette.scss +2 -2
  52. package/src/directives/clickaway/clickaway.js +2 -51
  53. package/src/directives/index.js +0 -1
  54. package/src/modules/AuditForm/components/questions/options/__tests__/audit-form-question-options-write-row.spec.js +1 -1
  55. package/src/modules/QueryFilters/components/abstract-api-filter.vue +1 -1
  56. package/src/modules/QueryFilters/components/abstract-enum-filter.vue +1 -1
@@ -1,11 +1,13 @@
1
1
  <template>
2
2
  <div
3
3
  class="wt-button-select"
4
- v-clickaway="away">
4
+ v-clickaway="away"
5
+ >
5
6
 
6
7
  <wt-button
7
- class="wt-button-select__button"
8
8
  v-bind="$attrs"
9
+ class="wt-button-select__button"
10
+ :color="color"
9
11
  :disabled="disabled"
10
12
  @click="$emit('click', $event)"
11
13
  >
@@ -19,8 +21,9 @@
19
21
  >
20
22
  <template v-slot:activator>
21
23
  <wt-button
22
- class="wt-button-select__select-btn"
23
24
  v-bind="$attrs"
25
+ class="wt-button-select__select-btn"
26
+ :color="color"
24
27
  :disabled="disabled"
25
28
  :loading="false"
26
29
  @click="isOpened = !isOpened"
@@ -29,6 +32,7 @@
29
32
  class="wt-button-select__select-arrow"
30
33
  :class="{'wt-button-select__select-arrow--active': isOpened}"
31
34
  icon="arrow-down"
35
+ :color="color === 'primary' ? 'on-primary' : 'default'"
32
36
  :disabled="disabled"
33
37
  ></wt-icon>
34
38
  </wt-button>
@@ -44,16 +48,41 @@ export default {
44
48
  isOpened: false,
45
49
  }),
46
50
  props: {
47
- // all buttons props are passed as "$attrs"
51
+ /**
52
+ * See context-menu component docs
53
+ */
48
54
  options: {
49
55
  type: Array,
50
56
  required: true,
51
57
  },
58
+ /**
59
+ * @values 'primary', 'secondary'
60
+ * @example <wt-button color="secondary"></wt-button>
61
+ */
62
+ color: {
63
+ type: String,
64
+ default: 'primary',
65
+ },
52
66
  disabled: {
53
67
  type: Boolean,
54
68
  default: false,
55
69
  },
56
70
  },
71
+ emits: [
72
+ /**
73
+ * @event click
74
+ */
75
+ 'click',
76
+ /**
77
+ * Click on option in context-menu
78
+ *
79
+ * @event click:option
80
+ *
81
+ * @property {object} option clicked option object
82
+ * @property {index} index clicked option index in options list
83
+ */
84
+ 'click:option',
85
+ ],
57
86
  methods: {
58
87
  selectOption({ option, index }) {
59
88
  this.$emit('click:option', option, index);
@@ -89,94 +118,6 @@ export default {
89
118
  padding: var(--button-select-icon-button-padding);
90
119
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
91
120
 
92
- // NORMAL MODE
93
- &:not(.wt-button--outline)::v-deep {
94
- & .wt-icon__icon {
95
- fill: var(--button-select-icon-color-dark);
96
- }
97
-
98
- // For secondary color, the icon color and icon hover color are the same as in primary color mode
99
-
100
- &.danger,
101
- &.success,
102
- &.transfer {
103
- .wt-icon__icon {
104
- fill: var(--button-select-icon-color-ligth);
105
- }
106
- }
107
- }
108
-
109
- //OUTLINE MODE
110
- &.wt-button--outline::v-deep {
111
- & .wt-icon__icon {
112
- fill: var(--button-select-icon-color-primary);
113
- }
114
-
115
- &:hover,
116
- &:active {
117
- .wt-icon__icon {
118
- fill: var(--button-select-icon-color-primary--hover);
119
- }
120
- }
121
-
122
- &.danger {
123
- & .wt-icon__icon {
124
- fill: var(--icon-color-danger)
125
- }
126
-
127
- &:hover,
128
- &:active {
129
- .wt-icon__icon {
130
- fill: var(--button-select-icon-color-danger--hover);
131
- }
132
- }
133
- }
134
-
135
- &.success {
136
- & .wt-icon__icon {
137
- fill: var(--icon-color-success)
138
- }
139
-
140
- &:hover,
141
- &:active {
142
- .wt-icon__icon {
143
- fill: var(--button-select-icon-color-success--hover);
144
- }
145
- }
146
- }
147
-
148
- &.transfer {
149
- & .wt-icon__icon {
150
- fill: var(--icon-color-transfer)
151
- }
152
-
153
- &:hover,
154
- &:active {
155
- .wt-icon__icon {
156
- fill: var(--button-select-icon-color-transfer--hover);
157
- }
158
- }
159
- }
160
-
161
- &.secondary {
162
- .wt-icon__icon {
163
- fill: var(--button-select-icon-color-secondary);
164
- }
165
-
166
- &:hover,
167
- &:active {
168
- .wt-icon__icon {
169
- fill: var(--button-select-icon-color-secondary--hover);
170
- }
171
- }
172
- }
173
- }
174
-
175
- // DISABLED MODE
176
- &.wt-button--disabled .wt-icon::v-deep .wt-icon__icon {
177
- fill: var(--icon-color-secondary-50);
178
- }
179
-
180
121
  // OPEN AND SHUT ARROW
181
122
  .wt-button-select__select-arrow {
182
123
  display: flex;
@@ -7,7 +7,10 @@
7
7
  'wt-checkbox--disabled': disabled,
8
8
  }"
9
9
  >
10
- <wt-label class="wt-checkbox__wrapper" v-bind="labelProps">
10
+ <wt-label
11
+ v-bind="labelProps"
12
+ class="wt-checkbox__wrapper"
13
+ >
11
14
  <input
12
15
  class="wt-checkbox__input"
13
16
  type="checkbox"
@@ -23,7 +26,10 @@
23
26
  ></wt-icon>
24
27
  </span>
25
28
  <!-- @slot Custom label markup -->
26
- <slot name="label" v-bind="{ label, isChecked, disabled }">
29
+ <slot
30
+ v-bind="{ label, isChecked, disabled }"
31
+ name="label"
32
+ >
27
33
  <div v-if="label" class="wt-checkbox__label">{{ label }}</div>
28
34
  </slot>
29
35
  </wt-label>
@@ -28,7 +28,10 @@
28
28
  href="#"
29
29
  @click.prevent="handleOptionClick({ option, index, hide })"
30
30
  >
31
- <slot name="option" v-bind="option">
31
+ <slot
32
+ v-bind="option"
33
+ name="option"
34
+ >
32
35
  {{ option.text || option }}
33
36
  </slot>
34
37
  </a>
@@ -5,17 +5,23 @@
5
5
  }"
6
6
  class="wt-datepicker"
7
7
  >
8
- <wt-label :disabled="disabled" v-bind="labelProps">
8
+ <wt-label
9
+ v-bind="labelProps"
10
+ :disabled="disabled"
11
+ >
9
12
  <!-- @slot Custom input label -->
10
- <slot name="label" v-bind="{ label }">{{ label }}</slot>
13
+ <slot
14
+ v-bind="{ label }"
15
+ name="label"
16
+ >{{ label }}</slot>
11
17
  </wt-label>
12
18
  <vue-datepicker
19
+ v-bind="{ ...$attrs, ...$props }"
13
20
  ref="datepicker"
14
21
  :locale="$i18n.locale === 'ua' ? 'uk' : $i18n.locale"
15
22
  :model-value="+value"
16
23
  :placeholder="label || placeholder"
17
24
  class="wt-datepicker__datepicker"
18
- v-bind="{ ...$attrs, ...$props }"
19
25
  :format="isDateTime ? 'dd/MM/yyyy HH:mm' : 'dd/MM/yyyy'"
20
26
  :close-on-auto-apply="false"
21
27
  auto-apply
@@ -0,0 +1,327 @@
1
+
2
+ ```vue
3
+ <wt-icon icon="edit"></wt-icon>
4
+ ```
5
+
6
+ Different color icons:
7
+ ```vue
8
+ const colors = ['default', 'disabled', 'error', 'success', 'warning', 'on-dark', 'on-light', 'on-primary', 'info', 'chat', 'transfer'];
9
+
10
+ <div
11
+ style="display: flex; align-items: center; gap: 5px;"
12
+ v-for="color of this.colors"
13
+ :key="color"
14
+ >
15
+ <wt-icon
16
+ icon="edit"
17
+ size="lg"
18
+ :color="color"
19
+ ></wt-icon>
20
+ {{ color }}
21
+ </div>
22
+ ```
23
+
24
+ ## How does it work?
25
+
26
+ Icons are located in <code>assets/icons/sprite</code> directory, in <code>SVG</code> format,
27
+ without <code>width</code> and <code>height</code> attributes, but with <code>
28
+ [viewBox](https://developer.mozilla.org/ru/docs/Web/SVG/Attribute/viewBox)
29
+ </code> attribute.
30
+ (<code>viewBox</code> is provided by designer in svg pic itself - so you just need to check it presence,
31
+ by the way check for `width` `height` absence).
32
+
33
+ For example:
34
+
35
+ ```
36
+ const img = require('./docs/svg-icon-code-example.png');
37
+ <img :src="this.img" alt="svg icon code example">
38
+ ```
39
+
40
+ At build stage, <code><a href="https://github.com/JetBrains/svg-sprite-loader#svg-sprite-loader">svg-sprite-loader</a></code>
41
+ collects all icons (looking for "All files`.svg` in all directories, which names include `sprite`,
42
+ ). This rule is described in <code>vue.config.js:</code>
43
+ (from "Quick Start" icons installation section):
44
+
45
+ <pre class="language-javascript"><code>
46
+ config.module
47
+ .rule('svg')
48
+ .exclude.add(/^(.*sprite).*\.svg/); // same as in svg-sprite-loader
49
+
50
+ config.module
51
+ .rule('svg-sprite')
52
+ .test(/^(.*sprite).*\.svg/) // same as in svg-url-loader
53
+ .use('svg-sprite-loader')
54
+ .loader('svg-sprite-loader');
55
+ </code></pre>
56
+
57
+ So that, all these icons are collected in one sprite. This sprite is injected in <code>index.html</code>.
58
+
59
+ For example: (By the way, you can check it if you want to see, which icons were collected in this sprite):
60
+
61
+ ```
62
+ const img = require('./docs/svg-sprite-in-dom.png');
63
+ <img :src="this.img" alt="svg-sprite-in-dom">
64
+ ```
65
+
66
+ Then, these icons can be used as:
67
+
68
+ <pre class="language-html"><code>
69
+ &lt;svg&gt;&lt;use xlink:href="#attach"&gt;&lt;/use&gt;&lt;/svg&gt;
70
+ // or, using wt-icon component:
71
+ &lt;wt-icon icon="attach"&gt;&lt;/wt-icon&gt;
72
+ </code></pre>
73
+
74
+ ## How to install your custom icons to project?
75
+
76
+ `svg-sprite-loader` webpack rule in <code>vue.config.js</code> also collects all icons from `sprite`
77
+ directories in project and adds it to final sprite.
78
+
79
+ *In fact, webitel-ui icons are added to sprite just cause they're imported from
80
+ "sprite" directory - just in <code>node_modules</code>*
81
+
82
+ For stylistic purposes, it's recommended to allocate icons in <code>src/(app?)/assets/icons/sprite/*</code>,
83
+ So that developers and designer could find (and then check or update) them in any project.
84
+
85
+ All icons from this directory should be imported in <code>index.js</code> in this directory
86
+ (create `index.js` if it doesn't exist).
87
+
88
+ Then, `index.html` should be imported in `main.js`:
89
+ <pre class="language-javascript"><code>import './assets/icons/sprite';</code></pre>
90
+
91
+ And, then, if you put some new icons in this directory, and import them in `index.js`,
92
+ they automatically become available in project.
93
+
94
+ ### Simple TODO:
95
+ * Create directory `src/(app?)/assets/icons/sprite/` (if doesn't exists)
96
+ * in this folder, create `index.js` (if doesn't exists)
97
+ * Import `index.js` to `>main.js` (if doesn't exists)
98
+ * Put icon to this directory, and import it to `index.js`
99
+ * That's all, you're awesome!
100
+
101
+ ## Icon sprites naming convention:
102
+
103
+ App-specific icons are highly recommended to be named with the prefix corresponding to this application.
104
+
105
+ The reason is: when you see an icon usage, you will be able to distinguish `svg` location:
106
+ in this app, or library - and update it, if needed.
107
+ *For example, if you want to move this icon from app to library, you just need to remove `icon-prefix` prop
108
+ from all icon usages (and, of course, rename the icon file)*
109
+
110
+ ### Icon prefix corresponding to application:
111
+ * **Webitel UI:** no prefix
112
+ * **Admin:** `adm-`
113
+ * **Workspace:** `ws-`
114
+ * **Supervisor:** `sv-`
115
+ * **History:** `hs-`
116
+ * **Webitel CC UI:** `cc-`
117
+
118
+ ## How to clean up icons before adding them to project?
119
+
120
+ After export from Figma, icons should be cleaned up to avoid a few issues.
121
+
122
+ Use this checklist:
123
+ 1. **Remove** `width` and `height` from svg-tag
124
+ ```
125
+ const img = require('./docs/cleanup-svg-width-height.png');
126
+ <img :src="this.img" alt="Remove width and height">
127
+ ```
128
+
129
+ 2. **Check** `viewBox`: it's size should be square **(BUT DO NOT DELETE!)**
130
+
131
+ If there's an issue, contact the designer.
132
+
133
+ Incorrect:
134
+ ```
135
+ const img = require('./docs/cleanup-svg-viewbox-incorrect.png');
136
+ <img :src="this.img" alt="viewBox is incorrect">
137
+ ```
138
+
139
+ Correct:
140
+ ```
141
+ const img = require('./docs/cleanup-svg-viewbox-correct.png');
142
+ <img :src="this.img" alt="viewBox is correct">
143
+ ```
144
+
145
+ 4. **Remove** `fill="none"` from svg-tag
146
+ ```
147
+ const img = require('./docs/cleanup-svg-fill-none.png');
148
+ <img :src="this.img" alt="Remove "fill=none"">
149
+ ```
150
+
151
+ 5. **Remove** all `fill=""` with default color
152
+
153
+ *Default "fill" should be cleaned up, cause Figma adds it to icon by default, but we are
154
+ changing this fill in styles to suit our needs.
155
+ But! Specific colors should stay in svg-code. (for instance, red dot in `record` icon)*
156
+
157
+ ```
158
+ const img = require('./docs/cleanup-svg-fill.png');
159
+ <img :src="this.img" alt="Remove this fill">
160
+ ```
161
+
162
+ ```vue
163
+ <template>
164
+ <div style="display: grid; grid-template-columns: repeat(auto-fit, 120px); grid-gap: var(--spacing-xs);">
165
+ <div
166
+ style="text-align: center; display: flex; flex-direction: column; align-items: center; gap: 5px;"
167
+ v-for="icon of this.icons"
168
+ :key="icon"
169
+ >
170
+ <wt-icon
171
+ :icon="icon"
172
+ size="xl"
173
+ ></wt-icon>
174
+ {{ icon }}
175
+ </div>
176
+ </div>
177
+ </template>
178
+
179
+ <script setup>
180
+ const icons = [
181
+ 'email',
182
+ 'adfs',
183
+ 'azure',
184
+ 'instagram',
185
+ 'zoom-in',
186
+ 'zoom-out',
187
+ 'send-arrow',
188
+ 'close',
189
+ 'close--filled',
190
+ 'attach',
191
+ 'mail',
192
+ 'mail--color',
193
+ 'telegram-bot',
194
+ 'messenger-infobip',
195
+ 'messenger-telegram',
196
+ 'messenger-telegram--filled',
197
+ 'messenger-facebook',
198
+ 'messenger-facebook--filled',
199
+ 'messenger-viber',
200
+ 'messenger-viber--filled',
201
+ 'messenger-web-chat',
202
+ 'messenger-whatsapp',
203
+ 'messenger-whatsapp--filled',
204
+ 'messenger-messenger',
205
+ 'meta',
206
+ 'lock',
207
+ 'move',
208
+ 'queue-member',
209
+ 'history',
210
+ 'generate',
211
+ 'google',
212
+ 'rounded-info',
213
+ 'copy',
214
+ 'menu',
215
+ 'clear',
216
+ 'video-cam',
217
+ 'video-cam-off',
218
+ 'bell',
219
+ 'bell-badged',
220
+ 'star',
221
+ 'star--filled',
222
+ 'sound-on',
223
+ 'sound-off',
224
+ 'back',
225
+ 'prompter',
226
+ 'play',
227
+ 'pause',
228
+ 'stop',
229
+ 'download',
230
+ 'upload',
231
+ 'filter',
232
+ 'column-select',
233
+ 'refresh',
234
+ 'calendar',
235
+ 'radio',
236
+ 'radio--checked',
237
+ 'checkbox',
238
+ 'checkbox--checked',
239
+ 'checkbox--checked--filled',
240
+ 'eye--closed',
241
+ 'eye--opened',
242
+ 'numpad',
243
+ 'settings',
244
+ 'docs',
245
+ 'logout',
246
+ 'account',
247
+ 'app-navigator',
248
+ 'collapse',
249
+ 'expand',
250
+ 'bucket',
251
+ 'tick',
252
+ 'edit',
253
+ 'plus',
254
+ 'search',
255
+ 'rec-off',
256
+ 'rec',
257
+ 'note',
258
+ 'mic',
259
+ 'mic-muted',
260
+ 'hold',
261
+ 'contacts',
262
+ 'done',
263
+ 'attention',
264
+
265
+ 'call',
266
+ 'call--filled',
267
+ 'call-end',
268
+ 'call-end--filled',
269
+ 'call-transfer',
270
+ 'call-transfer--filled',
271
+ 'call-ringing',
272
+ 'call-ringing--filled',
273
+ 'call-missed',
274
+ 'call-missed--filled',
275
+ 'call-add-to',
276
+ 'call-add-to--filled',
277
+ 'call-disconnect',
278
+ 'call-disconnect--filled',
279
+ 'call-outbound',
280
+ 'call-outbound--filled',
281
+ 'call-inbound',
282
+ 'call-inbound--filled',
283
+
284
+ 'chat',
285
+ 'chat--filled',
286
+ 'chat-join',
287
+ 'chat-transfer',
288
+ 'chat-transfer--filled',
289
+ 'chat-end',
290
+ 'chat-end--filled',
291
+ 'chat-group',
292
+ 'chat-quick-response',
293
+ 'chat-quick-response--filled',
294
+ 'chat-send',
295
+ 'chat-emoji',
296
+ 'chat-reply',
297
+ 'chat-message-status-sent',
298
+ 'chat-message-status-read',
299
+
300
+ 'job',
301
+ 'job--accept',
302
+ 'job--end',
303
+
304
+ 'sort-arrow-down',
305
+ 'sort-arrow-up',
306
+ 'arrow-down',
307
+ 'arrow-left',
308
+ 'arrow-mix',
309
+ 'arrow-right',
310
+ 'arrow-up',
311
+ 'tts-download',
312
+ 'stt',
313
+ 'stt-download',
314
+ 'stt-search',
315
+ 'scorecard',
316
+ 'idle',
317
+ 'pin',
318
+ 'unpin',
319
+ 'options',
320
+
321
+ 'preview-tag-video',
322
+ 'preview-tag-audio',
323
+ 'preview-tag-application',
324
+ 'preview-tag-image',
325
+ ].sort();
326
+ </script>
327
+ ```
@@ -7,4 +7,30 @@
7
7
  --icon-md-size: 24px;
8
8
  --icon-sm-size: 16px;
9
9
  --icon-xs-size: 8px;
10
+
11
+ --icon-color: var(--grey-darken-2);
12
+ --icon-error-color: var(--error-color);
13
+ --icon-success-color: var(--success-color);
14
+ --icon-warning-color: var(--warning-color);
15
+ --icon-on-dark-color: var(--white);
16
+ --icon-on-light-color: var(--grey-darken-3);
17
+ --icon-on-primary-color: var(--on-primary-color);
18
+ --icon-info-color: var(--info-color);
19
+ --icon-chat-color: var(--chat-color);
20
+ --icon-transfer-color: var(--transfer-color);
21
+ --icon-disabled-color: var(--grey-lighten-4);
22
+ }
23
+
24
+ :root.theme--dark {
25
+ --icon-color: var(--grey-lighten-2);
26
+ --icon-disabled-color: var(--grey-darken-2);
27
+ --icon-error-color: var(--error-color);
28
+ --icon-success-color: var(--success-color);
29
+ --icon-warning-color: var(--warning-color);
30
+ --icon-on-dark-color: var(--white);
31
+ --icon-on-light-color: var(--grey-darken-3);
32
+ --icon-on-primary-color: var(--on-primary-color);
33
+ --icon-info-color: var(--info-color);
34
+ --icon-chat-color: var(--chat-color);
35
+ --icon-transfer-color: var(--transfer-color);
10
36
  }