@ldmjs/ui 1.0.90 → 2.0.0-beta.1

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 (104) hide show
  1. package/README.md +46 -94
  2. package/dist/components/ld-avatar.js +1 -0
  3. package/dist/components/ld-badge.js +1 -0
  4. package/dist/components/ld-breadcrumbs.js +1 -0
  5. package/dist/components/ld-button.js +1 -0
  6. package/dist/components/ld-calendar.js +1 -0
  7. package/dist/components/ld-checkbox.js +1 -0
  8. package/dist/components/ld-chip.js +1 -0
  9. package/dist/components/ld-combobox.js +1 -0
  10. package/dist/components/ld-data-iterator.js +1 -0
  11. package/dist/components/ld-datepicker.js +1 -0
  12. package/dist/components/ld-dialog.js +1 -0
  13. package/dist/components/ld-edit-list-box.js +1 -0
  14. package/dist/components/ld-edit-masked-text.js +1 -0
  15. package/dist/components/ld-edit-text.js +1 -0
  16. package/dist/components/ld-expansion-panel.js +1 -0
  17. package/dist/components/ld-expansion-panels.js +1 -0
  18. package/dist/components/ld-icon.js +1 -0
  19. package/dist/components/ld-loader.js +1 -0
  20. package/dist/components/ld-page-toolbar.js +1 -0
  21. package/dist/components/ld-pager.js +1 -0
  22. package/dist/components/ld-progress.js +1 -0
  23. package/dist/components/ld-radiobutton.js +1 -0
  24. package/dist/components/ld-radiogroup.js +1 -0
  25. package/dist/components/ld-select-list-box.js +1 -0
  26. package/dist/components/ld-select.js +1 -0
  27. package/dist/components/ld-slider.js +1 -0
  28. package/dist/components/ld-splitter.js +1 -0
  29. package/dist/components/ld-step.js +1 -0
  30. package/dist/components/ld-switch.js +1 -0
  31. package/dist/components/ld-tab.js +1 -0
  32. package/dist/components/ld-tabs.js +1 -0
  33. package/dist/components/ld-text-markup.js +1 -0
  34. package/dist/components/ld-text-viewer.js +1 -0
  35. package/dist/components/ld-textarea.js +1 -0
  36. package/dist/components/ld-timepicker.js +1 -0
  37. package/dist/components/ld-toggle-buttons.js +1 -0
  38. package/dist/components/ld-uploader.js +1 -0
  39. package/dist/fonts/Roboto-Medium.ttf +0 -0
  40. package/dist/fonts/Roboto-Medium.woff +0 -0
  41. package/dist/fonts/Roboto-Medium.woff2 +0 -0
  42. package/dist/fonts/Roboto-SemiBold.ttf +0 -0
  43. package/dist/fonts/Roboto-SemiBold.woff +0 -0
  44. package/dist/fonts/Roboto-SemiBold.woff2 +0 -0
  45. package/dist/i18n/ru/ru-Ru.json +50 -2
  46. package/dist/index.d.ts +20 -15
  47. package/dist/index.js +1 -21186
  48. package/dist/lib/runtime-template.js +1 -1
  49. package/dist/lib/toastification.js +1 -1
  50. package/dist/scss/_animations.scss +31 -12
  51. package/dist/scss/_avatar.scss +333 -0
  52. package/dist/scss/_badge.scss +128 -0
  53. package/dist/scss/_breadcrumbs.scss +133 -17
  54. package/dist/scss/_buttons.scss +584 -282
  55. package/dist/scss/_calendar.scss +154 -51
  56. package/dist/scss/_checkbox.scss +245 -0
  57. package/dist/scss/_chip.scss +163 -63
  58. package/dist/scss/_colors.scss +21 -19
  59. package/dist/scss/_dialogs.scss +106 -177
  60. package/dist/scss/_editor.scss +146 -0
  61. package/dist/scss/_expansions.scss +57 -0
  62. package/dist/scss/_fonts.scss +115 -0
  63. package/dist/scss/_inputs.scss +928 -138
  64. package/dist/scss/_loader.scss +163 -0
  65. package/dist/scss/_pager.scss +83 -16
  66. package/dist/scss/_progress.scss +282 -0
  67. package/dist/scss/_radiobutton.scss +218 -0
  68. package/dist/scss/_radiogroup.scss +87 -0
  69. package/dist/scss/_scroll.scss +65 -0
  70. package/dist/scss/_shadows.scss +47 -0
  71. package/dist/scss/_slider.scss +53 -0
  72. package/dist/scss/_splitter.scss +60 -0
  73. package/dist/scss/_step.scss +179 -0
  74. package/dist/scss/_switch.scss +198 -0
  75. package/dist/scss/_tabs.scss +318 -0
  76. package/dist/scss/_textmarkup.scss +47 -0
  77. package/dist/scss/_textviewer.scss +13 -0
  78. package/dist/scss/_toasted.scss +44 -22
  79. package/dist/scss/_toggle.scss +125 -0
  80. package/dist/scss/_toolbar.scss +40 -1
  81. package/dist/scss/_tooltip.scss +30 -0
  82. package/dist/scss/_treeview.scss +35 -0
  83. package/dist/scss/_uploader.scss +167 -0
  84. package/dist/scss/_variables.scss +5 -27
  85. package/dist/scss/index.scss +150 -16
  86. package/dist/scss/utils.scss +17 -0
  87. package/dist/types/breadcrumbs.d.ts +2 -0
  88. package/dist/types/calendar.d.ts +8 -73
  89. package/dist/types/combobox.d.ts +10 -0
  90. package/dist/types/dialogs.d.ts +28 -1
  91. package/dist/types/form.d.ts +6 -0
  92. package/dist/types/options.d.ts +11 -1
  93. package/dist/types/toasted.d.ts +4 -4
  94. package/dist/utils/validators.js +1 -1
  95. package/package.json +123 -120
  96. package/dist/css/calendar.css +0 -1066
  97. package/dist/css/index.css +0 -20
  98. package/dist/css/root.css +0 -86
  99. package/dist/lib/calendar.js +0 -1
  100. package/dist/lib/floating.js +0 -1
  101. package/dist/lib/multiselect.js +0 -1
  102. package/dist/scss/_multiselect.scss +0 -170
  103. package/dist/scss/_toasted-old.scss +0 -408
  104. package/dist/scss/index-old.scss +0 -16
@@ -1,201 +1,996 @@
1
- .small-input {
2
- .v-text-field__prefix {
3
- min-height: var(--input-height);
4
- padding: 0 4px 0 8px;
5
- opacity: 1 !important;
1
+ @use "sass:selector";
2
+ @use "sass:list";
3
+ @use "sass:map";
4
+ @use "utils";
6
5
 
7
- .v-text-field__prefix__text {
8
- margin: 0;
6
+ $input-s: 32px;
7
+ $input-m: 40px;
8
+ $input-l: 48px;
9
+
10
+ :root {
11
+ --input-s: #{$input-s};
12
+ --input-m: #{$input-m};
13
+ --input-l: #{$input-l};
14
+ }
15
+
16
+ $sizearray: (
17
+ '--x-small': (
18
+ // input height
19
+ $input-s,
20
+ // font-size
21
+ var(--text-body-s),
22
+ // dropdown list item padding
23
+ 6px 12px,
24
+ // dropdown list title font size
25
+ var(--text-body-s),
26
+ // dropdown list subtitle font size
27
+ var(--text-body),
28
+ // dropdown list subtitle margin top
29
+ 0
30
+ ),
31
+ '--small': (
32
+ $input-m,
33
+ var(--text-body-m),
34
+ 8px 12px,
35
+ var(--text-body-m),
36
+ var(--text-body),
37
+ 4px
38
+ ),
39
+ '--large': (
40
+ $input-l,
41
+ var(--text-body-l),
42
+ 12px 20px,
43
+ var(--text-body-l),
44
+ var(--text-body-s),
45
+ 4px
46
+ ),
47
+ );
48
+
49
+ $input-border-color-default: var(--grey-l-4);
50
+ $input-border-color-hover: var(--grey);
51
+ $input-disabled-color: var(--grey-l-2);
52
+ $input-disabled-background-color: var(--grey-l-6);
53
+
54
+ $colors: (
55
+ "grey": ("default": $input-border-color-default, "hover": $input-border-color-hover),
56
+ "success": ("default": var(--success-d-1), "hover": var(--success-d-1)),
57
+ "error": ("default": var(--error), "hover": var(--error)),
58
+ );
59
+
60
+ :root {
61
+ --input-height: #{$input-s};
62
+ --input-height-m: #{$input-m};
63
+ --input-height-l: #{$input-l};
64
+ --input-border-color-default: #{$input-border-color-default};
65
+ --input-border-color-hover: #{$input-border-color-hover};
66
+ --input-disabled-color: #{$input-disabled-color};
67
+ --input-disabled-background-color: #{$input-disabled-background-color};
68
+ }
69
+
70
+ @mixin inputsize() {
71
+ $parent: utils.getParent(&);
72
+
73
+ @at-root {
74
+ @each $s, $values in $sizearray {
75
+
76
+ &#{utils.getSelector($parent, $s)} {
77
+ $size: list.nth($values, 1);
78
+ $font: list.nth($values, 2);
79
+
80
+ .v-field {
81
+ min-height: $size;
82
+
83
+ .v-field__input {
84
+ min-height: $size;
85
+ font-size: $font;
86
+ padding-top: 3px;
87
+ padding-bottom: 3px;
88
+ }
89
+
90
+ @if $parent == '.ld-edit-text' {
91
+ .v-field__input {
92
+ height: $size;
93
+ max-height: $size;
94
+ }
95
+ }
96
+
97
+ .v-text-field__prefix,
98
+ .v-text-field__suffix {
99
+ min-height: $size;
100
+ }
101
+ }
102
+
103
+ .ld-label {
104
+ height: $size;
105
+ &-content {
106
+ font-size: $font;
107
+ }
108
+ }
109
+
110
+ .v-input__details {
111
+ .v-messages {
112
+ font-size: calc($font - 2px);
113
+ line-height: calc($font - 2px + 6px);
114
+ }
115
+ }
116
+
117
+ #{utils.getSelector($parent, '-help')} {
118
+ display: flex;
119
+ align-items: center;
120
+ margin-left: 8px;
121
+ height: $size;
122
+ }
123
+ }
9
124
  }
125
+ }
126
+ }
10
127
 
11
- & + input.v-field__input {
12
- padding-left: 0px !important;
128
+ @mixin dropdownlistsize() {
129
+ @at-root {
130
+ @each $size, $values in $sizearray {
131
+ $p: list.nth($values, 3);
132
+ $f: list.nth($values, 4);
133
+ $s: list.nth($values, 5);
134
+ $mt: list.nth($values, 6);
135
+
136
+ &#{utils.getSelector('.ld-dropdown-list', $size)} {
137
+ .v-list-item {
138
+ padding: $p !important;
139
+ .v-list-item__content {
140
+ .v-list-item-title {
141
+ font-size: $f;
142
+ line-height: calc($f + 4px);
143
+ }
144
+ .v-list-item-subtitle {
145
+ font-size: $s;
146
+ line-height: calc($s + 4px);
147
+ margin-top: $mt;
148
+ }
149
+ }
150
+ }
151
+ }
13
152
  }
14
153
  }
15
154
 
16
- .v-text-field__suffix {
17
- min-height: var(--input-height);
18
- padding: 0 8px 0 4px;
19
- opacity: 1 !important;
155
+ }
156
+
157
+ @mixin vfieldoutline($color) {
158
+ .v-field__outline {
159
+ border-radius: var(--border-radius);
160
+ .v-field__outline__start,
161
+ .v-field__outline__end {
162
+ border-color: $color !important;
163
+ opacity: 1 !important;
164
+ transition: all 0.2s;
165
+ }
20
166
  }
167
+ }
21
168
 
22
- &.v-field {
169
+ @mixin vfield {
170
+ .v-field {
171
+ border-radius: var(--border-radius);
23
172
  background-color: var(--white);
173
+ overflow: hidden;
174
+
175
+ .v-field__input {
176
+ font-family: var(--regular);
177
+ color: var(--text);
178
+ padding-inline: unset;
179
+ padding-top: unset;
180
+ padding-bottom: unset;
181
+ padding: 0 12px;
182
+ }
183
+
184
+ .v-text-field__prefix {
185
+ padding: 0 0 0 12px;
186
+ opacity: 1 !important;
187
+
188
+ .v-text-field__prefix__text {
189
+ font-family: var(--regular);
190
+ font-size: var(--text-body-s);
191
+ color: var(--text);
192
+ }
193
+ }
194
+
195
+ .v-text-field__suffix {
196
+ padding: 0 12px 0 0;
197
+ opacity: 1 !important;
198
+
199
+ .v-text-field__suffix__text {
200
+ font-family: var(--regular);
201
+ font-size: var(--text-body-s);
202
+ color: var(--text);
203
+ }
204
+ }
205
+
206
+ .v-field__prepend-inner {
207
+ color: var(--grey-d-1);
208
+ }
209
+
210
+ .v-field__append-inner {
211
+ padding-right: 16px;
212
+ color: var(--grey-d-1);
213
+ }
24
214
  }
215
+ }
216
+
217
+ @mixin vfieldborder() {
218
+ $parent: utils.getParent(&);
219
+
220
+ @at-root {
221
+ $index: 0;
222
+ @each $color, $values in $colors {
223
+ $index: $index + 1;
224
+ $prefix: #{selector.append('--', $color)};
25
225
 
26
- & .v-field__input {
27
- min-height: var(--input-height);
226
+
227
+ &#{utils.getSelector($parent, $prefix)} {
228
+ $default: '';
229
+ $hover : '';
230
+ @each $key, $value in $values {
231
+ @if $key == "default" {
232
+ $default: $value;
233
+ }
234
+ @if $key == "hover" {
235
+ $hover: $value;
236
+ }
237
+ }
238
+
239
+ .v-input {
240
+ .v-field.v-field--variant-outlined {
241
+ @include vfieldoutline($default);
242
+ }
243
+
244
+ .v-input__append {
245
+ &:after {
246
+ border-color: $default;
247
+ border-width: 1px;
248
+ }
249
+ }
250
+
251
+ &:hover {
252
+ .v-field.v-field--variant-outlined {
253
+ @include vfieldoutline($hover);
254
+ }
255
+
256
+ .v-input__append {
257
+ &:after {
258
+ border-color: $hover;
259
+ border-width: 1px;
260
+ }
261
+ }
262
+ }
263
+
264
+ &.v-input--focused {
265
+ .v-field.v-field--variant-outlined {
266
+ @include vfieldoutline(var(--focus));
267
+ }
268
+
269
+ .v-input__append {
270
+ &:after {
271
+ border-color: var(--focus);
272
+ border-width: 2px;
273
+ }
274
+ }
275
+ }
276
+ }
277
+ }
278
+ }
28
279
  }
280
+ }
29
281
 
30
- &.password {
31
- .v-field__input {
32
- font-size: calc(var(--font-size) + 6px) !important;
282
+ @mixin vfielddisabled() {
283
+ .v-input--disabled {
284
+ .v-field.v-field--variant-outlined.v-field--disabled {
285
+ background-color: var(--input-disabled-background-color);
286
+
287
+ .v-field__input {
288
+ color: var(--input-disabled-color);
289
+ }
290
+
291
+ .v-field__prepend-inner {
292
+ color: var(--input-disabled-color);
293
+ }
294
+
295
+ @include vfieldoutline(var(--input-disabled-background-color));
296
+
297
+ .v-text-field__prefix__text,
298
+ .v-text-field__suffix__text {
299
+ color: var(--input-disabled-color);
300
+ }
33
301
  }
34
302
  }
303
+ }
35
304
 
36
- &:not(.v-combobox):not(.v-select) {
37
- .v-field__input {
38
- height: var(--input-height);
305
+ @mixin inputdetails() {
306
+ .v-input__details {
307
+ position: relative;
308
+ padding: 0 !important;
309
+ margin: 6px 0 0 0 !important;
310
+ z-index: 1;
311
+ height: 20px;
312
+ min-height: 20px;
313
+ align-items: center;
314
+
315
+ .v-messages {
316
+ color: var(--grey-d-1);
39
317
  }
40
318
  }
319
+ }
320
+
321
+ @mixin inputloader() {
322
+ $parent: utils.getParent(&);
323
+ $selector: utils.getSelector($parent, '-loader');
41
324
 
42
- .v-field-label:not(.v-field-label--floating) {
43
- transform: unset !important;
325
+ #{$selector} {
326
+ position: relative;
327
+ height: 3px;
328
+ width: 100%;
329
+ background-color: var(--primary);
330
+
331
+ &:after {
332
+ content: '';
333
+ display: block;
334
+ position: absolute;
335
+ top: 0;
336
+ left: 0;
337
+ width: 30%;
338
+ height: 3px;
339
+ background-color: var(--primary-l-3);
340
+ border-radius: 3px;
341
+ animation: slideOut 0.8s linear infinite;
342
+ }
44
343
  }
45
344
  }
46
345
 
47
- body {
48
- .v-field {
49
- font-size: var(--font-size) !important;
50
- background-color: var(--white);
346
+ @mixin inputnoborder($direction) {
347
+ $outlinesuffix: '';
348
+ @if $direction == 'right' {
349
+ $outlinesuffix: 'end';
350
+ } @else {
351
+ $outlinesuffix: 'start';
51
352
  }
52
- .v-label.v-field-label {
53
- color: var(--grey);
54
- top: unset !important;
55
- &:not(.v-field-label--floating) {
56
- height: 100%;
57
- font-size: inherit !important;
353
+
354
+ .v-input {
355
+ .v-field.v-field--variant-outlined {
356
+ .v-field__outline__#{$outlinesuffix} {
357
+ #{selector.append('border-', $direction, '-width')}: 0;
358
+ }
58
359
  }
59
360
  }
60
- .v-field.v-field--disabled {
61
- opacity: 1;
361
+ }
62
362
 
63
- .v-text-field__prefix,
64
- .v-text-field__suffix {
65
- color: var(--grey);
363
+ @mixin inputborder($direction, $size) {
364
+ $outlinesuffix: '';
365
+ @if $direction == 'right' {
366
+ $outlinesuffix: 'end';
367
+ } @else {
368
+ $outlinesuffix: 'start';
369
+ }
370
+
371
+ .v-field.v-field--variant-outlined {
372
+ .v-field__outline__#{$outlinesuffix} {
373
+ #{selector.append('border-', $direction, '-width')}: $size;
66
374
  }
67
375
  }
68
- .v-field-label--floating {
69
- color: var(--grey);
70
- font-size: var(--body-0-font-size) !important;
376
+ }
377
+
378
+ @mixin inputnoborderradius($direction) {
379
+ $outlinesuffix: '';
380
+ @if $direction == 'right' {
381
+ $outlinesuffix: 'end';
382
+ } @else {
383
+ $outlinesuffix: 'start';
384
+ }
385
+
386
+ %noborderradius {
387
+ #{selector.append('border-top-', $direction, '-radius')}: 0 !important;
388
+ #{selector.append('border-bottom-', $direction, '-radius')}: 0 !important;
71
389
  }
72
- .v-field--variant-outlined {
73
- .v-field__outline__start,
74
- .v-field__outline__end {
75
- border-color: var(--grey-l-5);
76
- opacity: 1;
390
+
391
+ .v-input {
392
+ .v-field {
393
+ @extend %noborderradius;
394
+ }
395
+ .v-field.v-field--variant-outlined {
396
+ .v-field__outline {
397
+ @extend %noborderradius;
398
+ }
399
+
400
+ .v-field__outline__#{$outlinesuffix} {
401
+ @extend %noborderradius;
402
+ }
77
403
  }
78
404
  }
79
- .v-label.v-label--clickable {
80
- font-size: var(--font-size);
81
- color: var(--text);
82
- opacity: 1;
83
- letter-spacing: 0;
405
+ }
406
+
407
+ @mixin spinbutton($el) {
408
+ $selector: selector.append($el, '--active-menu');
409
+
410
+ .#{$selector} {
411
+ .v-field {
412
+ .v-field__append-inner {
413
+ svg {
414
+ transform: rotate(180deg);
415
+ }
416
+ }
417
+ }
84
418
  }
419
+ }
420
+
421
+ %custom-edit {
422
+ padding: 0 !important;
423
+ }
424
+
425
+ // ---------------------
426
+ // ------ body
427
+ // ---------------------
428
+
429
+ body {
430
+ .v-field {
431
+ .v-field__input {
432
+ font-family: var(--regular);
433
+ }
434
+
435
+ &.v-field--appended {
436
+ padding-inline-end: 0 !important;
437
+ }
438
+
439
+ .v-field__append-inner {
440
+ .v-btn--icon {
441
+ color: var(--grey-d-1) !important;
442
+
443
+ svg {
444
+ color: var(--grey-d-1) !important;
445
+ }
446
+ }
447
+ }
448
+ }
449
+
85
450
  .v-input {
86
- &.v-textarea {
87
- .v-field {
88
- padding-right: 0px;
451
+ .v-input__details {
452
+ .v-messages {
453
+ font-family: var(--regular);
89
454
  }
455
+ }
456
+ }
457
+
458
+ .ld-edit-text {
459
+ @extend %custom-edit;
460
+
461
+ @include inputsize();
462
+
463
+ @include vfield();
464
+
465
+ @include vfieldborder();
466
+
467
+ @include vfielddisabled();
468
+
469
+ .ld-edit-text--type-password {
90
470
  .v-field__input {
91
- padding: 7px 6px;
471
+ font-size: calc(var(--font-size) + 6px) !important;
92
472
  }
93
473
  }
94
- &:not(.v-textarea) {
95
- .v-field__input {
96
- min-height: var(--input-height) !important;
97
- padding: 4px 6px;
474
+
475
+ @include inputdetails();
476
+ }
477
+
478
+ .ld-edit-masked-text {
479
+ @extend %custom-edit;
480
+
481
+ @include inputsize();
482
+
483
+ @include vfield();
484
+
485
+ @include vfieldborder();
486
+
487
+ @include vfielddisabled();
488
+
489
+ @include inputdetails();
490
+ }
491
+
492
+ .ld-datepicker {
493
+ @extend %custom-edit;
494
+
495
+ @include inputsize();
496
+
497
+ @include vfield();
498
+
499
+ @include vfieldborder();
500
+
501
+ @include vfielddisabled();
502
+
503
+ @include inputdetails();
504
+
505
+ .ld-datepicker-date-field {
506
+ position: relative;
507
+ display: flex;
508
+ align-items: center;
509
+ flex-basis: 100%;
510
+ }
511
+
512
+ .ld-datepicker-time-field {
513
+ position: relative;
514
+ display: flex;
515
+ align-items: center;
516
+ flex-basis: 100%;
517
+ }
518
+
519
+ &:not(.ld-datepicker--dateonly) {
520
+ .ld-datepicker-date-field {
521
+ @include inputnoborderradius('right');
522
+
523
+ @include inputnoborder('right');
524
+
525
+ .v-input {
526
+ &:hover {
527
+ @include inputborder('right', 1px);
528
+ }
529
+
530
+ &.v-input--focused {
531
+ @include inputborder('right', 2px);
532
+ }
533
+ }
98
534
  }
99
- &.v-text-field--plain-underlined {
100
- .v-field__input {
101
- padding: 0;
535
+ .ld-datepicker-time-field {
536
+ @include inputnoborderradius('left');
537
+
538
+ .v-input {
539
+ &:hover {
540
+ @include inputborder('left', 1px);
541
+ }
542
+
543
+ &.v-input--focused {
544
+ @include inputborder('left', 2px);
545
+ }
102
546
  }
103
547
  }
104
548
  }
105
- // &:not(.v-textarea):not(.v-select):not(.v-combobox) {
106
- // max-height: var(--input-max-height);
107
- // }
108
- &:not(.v-select) .v-field__input {
109
- input {
110
- height: 100%;
549
+ }
550
+
551
+ .ld-timepicker {
552
+ @extend %custom-edit;
553
+
554
+ @include inputsize();
555
+
556
+ @include vfield();
557
+
558
+ @include vfieldborder();
559
+
560
+ @include vfielddisabled();
561
+
562
+ @include inputdetails();
563
+ }
564
+
565
+ .ld-select {
566
+ @extend %custom-edit;
567
+
568
+ padding: 0 !important;
569
+
570
+ @include inputsize();
571
+
572
+ @include vfield();
573
+
574
+ @include vfieldborder();
575
+
576
+ @include vfielddisabled();
577
+
578
+ @include inputdetails();
579
+
580
+ @include spinbutton('v-select');
581
+ }
582
+
583
+ .ld-edit-list-box {
584
+ @extend %custom-edit;
585
+
586
+ @include inputsize();
587
+
588
+ @include vfield();
589
+
590
+ @include vfieldborder();
591
+
592
+ @include vfielddisabled();
593
+
594
+ @include inputdetails();
595
+ }
596
+
597
+ .ld-combobox {
598
+ @extend %custom-edit;
599
+
600
+ @include inputsize();
601
+
602
+ @include vfield();
603
+
604
+ @include vfieldborder();
605
+
606
+ @include vfielddisabled();
607
+
608
+ @include inputdetails();
609
+
610
+ @include inputloader();
611
+
612
+ @include spinbutton('v-combobox');
613
+ }
614
+
615
+ .ld-select-list-box {
616
+ @extend %custom-edit;
617
+
618
+ @include inputsize();
619
+
620
+ @include vfield();
621
+
622
+ @include vfieldborder();
623
+
624
+ @include vfielddisabled();
625
+
626
+ @include inputdetails();
627
+
628
+ @include inputloader();
629
+
630
+ @include inputnoborderradius('right');
631
+
632
+ @include inputnoborder('right');
633
+
634
+ .v-input {
635
+ .v-input__append {
636
+ position: relative;
637
+ margin-inline-start: unset;
638
+ padding-left: 8px;
639
+ padding-right: 12px;
640
+
641
+ &:after {
642
+ content: '';
643
+ display: block;
644
+ height: 100%;
645
+ width: 100%;
646
+ position: absolute;
647
+ top: 0;
648
+ left: 0;
649
+ border-style: solid;
650
+ border-left: none;
651
+ border-top-right-radius: var(--border-radius);
652
+ border-bottom-right-radius: var(--border-radius);
653
+ z-index: 0;
654
+ transition: all 0.2s;
655
+ }
656
+
657
+ button {
658
+ position: relative;
659
+ display: flex;
660
+ align-items: center;
661
+ justify-content: center;
662
+ height: 100%;
663
+ width: 20px;
664
+ z-index: 1;
665
+ }
666
+ }
667
+
668
+ &.v-input--disabled {
669
+ .v-input__append {
670
+ &:after {
671
+ border: none;
672
+ background-color: var(--grey-l-6);
673
+ }
674
+ }
111
675
  }
112
676
  }
113
- &.v-text-field input {
114
- margin-top: 0;
115
- margin-bottom: 0;
677
+ }
678
+
679
+ .ld-textarea {
680
+ @extend %custom-edit;
681
+
682
+ $parent: '.ld-textarea';
683
+
684
+ $props: (
685
+ '--x-small': (
686
+ // input padding
687
+ 6px 12px,
688
+ // height
689
+ 72px,
690
+ ),
691
+ '--small': (
692
+ 10px 16px,
693
+ 80px,
694
+ ),
695
+ '--large': (
696
+ 12px 16px,
697
+ 96px,
698
+ )
699
+ );
700
+
701
+ @each $s, $values in $sizearray {
702
+ $size: list.nth($values, 1);
703
+ $font: list.nth($values, 2);
704
+
705
+ $propsValues: map.get($props, $s);
706
+
707
+ $p: list.nth($propsValues, 1);
708
+
709
+ &#{utils.getSelector($parent, $s)} {
710
+ .v-field {
711
+ .v-field__input {
712
+ font-size: $font;
713
+ line-height: calc($font + 6px);
714
+ padding: $p;;
715
+ }
716
+ }
717
+
718
+ .ld-label {
719
+ &-content {
720
+ font-size: $font;
721
+ }
722
+ }
723
+
724
+ .ld-textarea-help {
725
+ height: $size;
726
+ display: flex;
727
+ align-items: center;
728
+ margin-left: 8px;
729
+ }
730
+
731
+ &.ld-textarea--label-on-top {
732
+ .ld-label {
733
+ height: $size;
734
+ }
735
+ }
736
+
737
+ &.ld-textarea--clearable {
738
+ .v-field {
739
+ .v-field__input {
740
+ $px: list.nth($p, 2);
741
+ padding-right: calc($px + var(--icon-height));
742
+ }
743
+ }
744
+ }
745
+
746
+ .v-input__details {
747
+ .v-messages {
748
+ font-size: calc($font - 2px);
749
+ line-height: calc($font - 2px + 6px);
750
+ }
751
+ }
752
+ }
116
753
  }
117
- &.v-input--disabled {
118
- .v-field {
119
- background-color: var(--grey-l-6);
120
- color: var(--grey);
754
+
755
+ @include vfieldborder();
756
+
757
+ @include vfielddisabled();
758
+
759
+ @include inputdetails();
760
+
761
+ .v-field {
762
+ position: relative;
763
+
764
+ .v-field__clearable {
765
+ position: absolute;
766
+ top: 0;
767
+ right: 0;
768
+ padding-top: 0 !important;
121
769
  }
122
- .v-input__details {
123
- opacity: 1;
770
+ }
771
+ }
772
+
773
+ .ld-text-markup {
774
+ @extend %custom-edit;
775
+
776
+ .ld-label {
777
+ &-content {
778
+ font-size: var(--text-body-s);
124
779
  }
125
- .v-input__append {
126
- opacity: 1;
780
+ }
781
+
782
+ &--focused {
783
+ .md-editor-content {
784
+ &:after {
785
+ border: 2px solid var(--focus) !important;
786
+ }
127
787
  }
128
788
  }
129
- &--horizontal {
130
- .v-input__append {
131
- margin-inline-start: 0;
789
+
790
+ &--disabled {
791
+ .ld-text-markup-preview {
792
+ background-color: var(--input-disabled-background-color);
793
+ border-color: var(--input-disabled-background-color);
794
+ color: var(--input-disabled-color);
132
795
  }
133
796
  }
134
- .v-input__append {
135
- padding-top: 0;
797
+
798
+ &-preview {
799
+ font-size: var(--text-body-s);
800
+ border: 1px solid var(--input-border-color-default);
801
+ border-radius: var(--border-radius);
802
+ padding: 12px 16px !important;
803
+
804
+ h1 {
805
+ font-size: 28px;
806
+ }
807
+ h2 {
808
+ font-size: 24px;
809
+ }
810
+ h3 {
811
+ font-size: 20px;
812
+ }
813
+ ul {
814
+ padding: 0 12px;
815
+ list-style: disc;
816
+ margin-bottom: 8px;
817
+ }
818
+ ol {
819
+ list-style: decimal;
820
+ padding: 0 12px;
821
+ margin-bottom: 8px;
822
+ }
823
+ p {
824
+ margin-bottom: 8px;
825
+ }
826
+ pre {
827
+ padding: 4px;
828
+ }
829
+ code {
830
+ background: none;
831
+ color: var(--text);
832
+ padding: 0;
833
+ font-size: 100%;
834
+ }
136
835
  }
137
836
 
138
- }
139
- .v-field__input {
140
- display: flex;
141
- align-items: center;
142
- font-size: inherit !important;
143
- opacity: 1;
144
- }
145
- .v-input__details {
146
- padding: 0 !important;
147
- margin: 0 !important;
148
- z-index: 1;
149
- height: 20px;
150
- min-height: 20px;
151
- align-items: center;
152
- font-size: calc(var(--font-size) - 1px) !important;
837
+ @include inputdetails();
153
838
 
154
- .v-messages {
155
- font-size: calc(var(--font-size) - 1px) !important;
839
+ .v-input__details {
840
+ .v-messages {
841
+ font-size: var(--font-size);
842
+ line-height: calc(var(--font-size) + 6px);
843
+ }
156
844
  }
157
845
  }
158
- .v-field--variant-outlined.v-field--focused .v-field__outline {
159
- .v-field__outline__start {
160
- border-top-width: 1px !important;
161
- border-bottom-width: 1px !important;
162
- border-inline-start-width: 1px !important;
163
- border-color: var(--grey-l-4) !important;
164
- }
165
- .v-field__outline__end {
166
- border-top-width: 1px !important;
167
- border-bottom-width: 1px !important;
168
- border-inline-end-width: 1px !important;
169
- border-color: var(--grey-l-4) !important;
846
+
847
+ .v-select__content,
848
+ .v-combobox__content,
849
+ .v-autocomplete__content {
850
+ background-color: var(--white);
851
+ border-radius: var(--border-radius);
852
+ box-shadow: var(--shadow-l);
853
+
854
+ .v-list {
855
+ box-shadow: unset !important;
856
+
857
+ @include dropdownlistsize();
170
858
  }
171
859
  }
172
- .v-select {
173
- .v-select__selection {
174
- margin: 0;
175
- .v-select__selection-text {
176
- display: inline-flex;
177
- align-items: center;
178
- }
860
+
861
+ .v-menu.ld-datepicker-menu {
862
+ .ld-datepicker-dropdown {
863
+ padding: 0 !important;
179
864
  }
180
865
  }
181
- .v-autocomplete {
182
- .v-field {
183
- .v-text-field__prefix,
184
- .v-text-field__suffix {
185
- padding: 0 3px;
186
- min-height: var(--input-height);
187
- opacity: 1 !important;
866
+
867
+ .v-menu.ld-timepicker-menu {
868
+ .ld-timepicker-dropdown {
869
+ padding: 16px !important;
870
+ overflow: hidden;
871
+
872
+ .ld-timepicker-ampm {
873
+ display: flex;
874
+
875
+ .v-btn {
876
+ font-family: var(--regular);
877
+ font-size: var(--font-size);
878
+ flex: 1 1 auto;
879
+ height: var(--icon-height);
880
+ border: 2px solid var(--primary);
881
+ border-radius: 4px;
882
+ color: var(--text);
883
+ padding: 0 !important;
884
+
885
+ &.v-btn--active {
886
+ color: var(--white);
887
+ background-color: var(--primary);
888
+ }
889
+
890
+ &:first-child {
891
+ border-top-right-radius: 0;
892
+ border-bottom-right-radius: 0;
893
+ }
894
+
895
+ &:last-child {
896
+ border-top-left-radius: 0;
897
+ border-bottom-left-radius: 0;
898
+ }
899
+ }
900
+ }
901
+
902
+ .ld-timepicker-placeholder {
903
+ display: grid;
904
+ grid-template-columns: 1fr 3px 1fr;
905
+ color: var(--grey-d-1);
906
+ height: var(--icon-height);
907
+
908
+ & > div {
909
+ height: 100%;
910
+ display: flex;
911
+ align-items: center;
912
+ justify-content: center;
913
+ }
914
+ }
915
+
916
+ .ld-timepicker-inputs {
917
+ display: grid;
918
+ grid-template-columns: 1fr 3px 1fr;
919
+ border: 1px solid var(--grey-l-5);
920
+ border-radius: var(--border-radius);
921
+
922
+ .ld-edit-text {
923
+ flex: 1 1 auto;
924
+ }
925
+
926
+ .v-field__input {
927
+ text-align: center;
928
+ padding: 0 !important;
929
+ }
930
+
931
+ .v-input {
932
+ .v-field.v-field--variant-outlined {
933
+ .v-field__outline__start {
934
+ border: none !important;
935
+ }
936
+ .v-field__outline__end {
937
+ border: none !important;
938
+ }
939
+ }
940
+ }
941
+ }
942
+
943
+ .ld-timepicker-options {
944
+ display: grid;
945
+ grid-template-columns: 1fr 1fr;
946
+
947
+ & > div {
948
+ max-height: 280px;
949
+ overflow-x: hidden;
950
+ overflow-y: auto;
951
+ }
952
+
953
+ .v-btn {
954
+ font-family: var(--regular);
955
+ color: var(--text) !important;
956
+
957
+ &:not(:last-child) {
958
+ margin-bottom: 4px;
959
+ }
960
+ }
188
961
  }
189
- }
190
- .v-autocomplete__selection {
191
- height: unset;
192
962
  }
193
963
  }
194
964
  }
195
965
 
196
- input.disabled {
966
+ input::placeholder {
967
+ color: var(--grey-d-1) !important;
968
+ }
969
+
970
+ input::-ms-input-placeholder { /* Для Microsoft Edge */
971
+ color: var(--grey-d-1) !important;
972
+ }
973
+
974
+ input::-webkit-input-placeholder { /* Для WebKit-браузеров (Chrome, Safari) */
975
+ color: var(--grey-d-1) !important;
976
+ }
977
+
978
+ input:-moz-placeholder { /* Для Firefox 19+ */
979
+ color: var(--grey-d-1) !important;
980
+ }
981
+
982
+ input.disabled,
983
+ input[disabled] {
197
984
  background-color: var(--grey-l-6);
198
- color: var(--grey);
985
+ color: var(--grey-l-2);
986
+ }
987
+
988
+ input {
989
+ outline: none;
990
+ }
991
+
992
+ input:focus {
993
+ outline: none;
199
994
  }
200
995
 
201
996
  input:-webkit-autofill,
@@ -208,8 +1003,3 @@ select:-webkit-autofill:focus {
208
1003
  -webkit-background-clip: text;
209
1004
  background-clip: text;
210
1005
  }
211
-
212
- ::-webkit-input-placeholder {color: var(--grey-l-2)}
213
- ::-moz-placeholder {color: var(--grey-l-2)}
214
- input:-moz-placeholder {color: var(--grey-l-2)}
215
- input:-ms-input-placeholder {color: var(--grey-l-2)}