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