@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
@@ -0,0 +1,125 @@
1
+ @use "sass:list";
2
+
3
+ $sizearray: (
4
+ "small": (
5
+ // font size
6
+ var(--text-body-s),
7
+ // height
8
+ var(--button-xs),
9
+ // radius
10
+ var(--border-radius),
11
+ // icon padding
12
+ 12px
13
+ ),
14
+ "large": (
15
+ var(--text-body-m),
16
+ var(--button-s),
17
+ var(--border-radius),
18
+ 16px,
19
+ ),
20
+ "x-large": (
21
+ var(--text-body-l),
22
+ var(--button-m),
23
+ var(--border-radius),
24
+ 20px,
25
+ ),
26
+ );
27
+
28
+ body {
29
+ .ld-toggle-buttons {
30
+ width: max-content;
31
+ & > div {
32
+ display: grid;
33
+ grid-auto-flow: column;
34
+ gap: 8px;
35
+ background-color: var(--grey-l-6);
36
+ width: max-content;
37
+ padding: 4px;
38
+
39
+ .ld-toggle-button {
40
+ position: relative;
41
+ display: flex;
42
+ justify-content: center;
43
+ align-items: center;
44
+ font-family: var(--medium);
45
+ color: var(--grey-d-3);
46
+ transition: all 0.1s;
47
+
48
+ .ld-toggle-button-content {
49
+ display: grid;
50
+ align-items: center;
51
+ grid-auto-flow: column;
52
+ gap: 8px;
53
+ }
54
+
55
+ &:hover {
56
+ color: var(--text);
57
+ }
58
+
59
+ &.ld-toggle-button--selected {
60
+ background-color: var(--white);
61
+ color: var(--primary);
62
+ }
63
+
64
+ &[disabled] {
65
+ color: var(--grey-l-2);
66
+ }
67
+
68
+ &:after {
69
+ content: '';
70
+ display: block;
71
+ position: absolute;
72
+ top: -2px;
73
+ left: -2px;
74
+ width: calc(100% + 4px);
75
+ height: calc(100% + 4px);
76
+ border: 2px solid var(--focus);
77
+ border-radius: calc(var(--border-radius) + 4px);
78
+ opacity: 0;
79
+ }
80
+
81
+
82
+ &:focus-visible {
83
+ &:after {
84
+ opacity: 1;
85
+ }
86
+ }
87
+ }
88
+ }
89
+
90
+ @each $size, $values in $sizearray {
91
+ $f: list.nth($values, 1);
92
+ $h: list.nth($values, 2);
93
+ $r: list.nth($values, 3);
94
+ $p: list.nth($values, 4);
95
+ &.ld-toggle-buttons--#{$size} {
96
+ & > div {
97
+ border-radius: calc($r + 4px);
98
+
99
+ .ld-toggle-button {
100
+ font-size: $f;
101
+ min-width: $h;
102
+ height: $h;
103
+ border-radius: $r;
104
+
105
+ &:not(.ld-toggle-button--icon) {
106
+ padding: 0 $p;
107
+ }
108
+ }
109
+ }
110
+ &.ld-toggle-buttons--rounded {
111
+ & > div {
112
+ border-radius: $h;
113
+ .ld-toggle-button {
114
+ border-radius: calc($h - 6px);
115
+
116
+ &:after {
117
+ border-radius: calc($h - 6px + 4px);
118
+ }
119
+ }
120
+ }
121
+ }
122
+ }
123
+ }
124
+ }
125
+ }
@@ -13,4 +13,43 @@
13
13
  .v-toolbar__content > .v-btn:last-child {
14
14
  margin-inline-end: 0;
15
15
  }
16
- }
16
+ }
17
+
18
+ body {
19
+ .ld-page-toolbar {
20
+ position: relative;
21
+ background-color: var(--white);
22
+ box-shadow: var(--shadow-sm);
23
+ z-index: 1;
24
+
25
+ &-wrapper {
26
+ display: grid;
27
+ width: 100%;
28
+ height: 100%;
29
+ padding: 0 12px;
30
+
31
+ &:not(.--preview) {
32
+ grid-template-columns: 100%;
33
+ grid-template-rows: var(--input-height);
34
+ row-gap: 4px;
35
+ }
36
+
37
+ &.--preview {
38
+ grid-template-columns: 1fr;
39
+ }
40
+ }
41
+
42
+ &-title {
43
+ display: grid;
44
+ grid-template-rows: 100%;
45
+ padding: 0 8px;
46
+ }
47
+
48
+ &-inner {
49
+ display: grid;
50
+ grid-template-rows: 100%;
51
+ grid-template-columns: 1fr max-content;
52
+ column-gap: 8px;
53
+ }
54
+ }
55
+ }
@@ -0,0 +1,30 @@
1
+ body {
2
+ .v-tooltip {
3
+ .v-overlay__content {
4
+ font-family: var(--regular);
5
+ font-size: var(--text-body-s);
6
+ line-height: 20px;
7
+
8
+ border-radius: var(--border-radius);
9
+ box-shadow: var(--shadow-m);
10
+
11
+ &.bg-dark {
12
+ background-color: var(--dark);
13
+ color: var(--white);
14
+ }
15
+
16
+ &.bg-light {
17
+ background-color: var(--white);
18
+ color: var(--grey-d-3);
19
+ }
20
+
21
+ &.ld-tooltip {
22
+ padding: 10px 12px;
23
+ }
24
+
25
+ &.ld-popover {
26
+ padding: 20px;
27
+ }
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,35 @@
1
+ body {
2
+ .ld-tree-view {
3
+ .ld-tree-view__category {
4
+ .ld-tree-view__item {
5
+ font-family: var(--medium);
6
+ font-size: var(--text-body-s);
7
+ color: var(--text);
8
+ min-height: var(--input-s);
9
+
10
+ .ld-tree-view__opener {
11
+ color: var(--grey-d-3);
12
+ }
13
+ }
14
+
15
+ &--selected {
16
+ & > .ld-tree-view__item {
17
+ color: var(--primary-d-1);
18
+ background-color: var(--primary-l-5);
19
+ }
20
+ }
21
+ }
22
+
23
+ &--hovered {
24
+ & > ul {
25
+ & > li {
26
+ & > .ld-tree-view__item {
27
+ &:hover {
28
+ background-color: var(--primary-l-6);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
34
+ }
35
+ }
@@ -0,0 +1,167 @@
1
+ body {
2
+ .ld-uploader {
3
+ position: relative;
4
+
5
+ .v-card-text {
6
+ padding: 0 !important;
7
+ }
8
+
9
+ input[type="file"] {
10
+ position: absolute;
11
+ top: 0;
12
+ left: 0;
13
+ width: 0;
14
+ height: 0;
15
+ opacity: 0;
16
+ }
17
+
18
+ .ld-label-content {
19
+ color: var(--grey-d-1) !important;
20
+ }
21
+
22
+ .ld-uploader-droparea {
23
+ position: relative;
24
+ border: 1px dashed var(--grey-l-3);
25
+ border-radius: 8px;
26
+ margin-bottom: 8px;
27
+ transition: all 0.2s;
28
+
29
+ &:hover {
30
+ background-color: var(--primary-l-6);
31
+ border-color: var(--primary-l-2);
32
+
33
+ .ld-uploader-placeholder {
34
+ svg {
35
+ color: var(--primary-d-1);
36
+ }
37
+ }
38
+ }
39
+ }
40
+
41
+ .ld-uploader-max {
42
+ display: flex;
43
+ justify-content: center;
44
+ font-size: var(--font-size);
45
+ color: var(--grey-d-1);
46
+ }
47
+
48
+ .ld-uploader-placeholder {
49
+ display: flex;
50
+ justify-content: center;
51
+ align-items: center;
52
+ font-size: var(--text-body-s);
53
+ font-weight: 500;
54
+
55
+ span {
56
+ line-height: 21px;
57
+ color: var(--grey-d-3);
58
+ }
59
+ }
60
+
61
+ .ld-uploader-validate {
62
+ font-size: var(--font-size);
63
+ height: 20px;
64
+ }
65
+
66
+ .ld-uploader-items {
67
+ display: flex;
68
+ flex-direction: column;
69
+ padding-top: 24px;
70
+ max-width: 90%;
71
+ }
72
+
73
+ .ld-uploader-item {
74
+ display: flex;
75
+ margin-bottom: 24px;
76
+
77
+ &-icon {
78
+ display: flex;
79
+ align-items: center;
80
+ justify-content: center;
81
+ width: 36px;
82
+ height: 36px;
83
+ background-color: var(--primary-l-6);
84
+ border-radius: 36px;
85
+ color: var(--primary-d-1);
86
+ }
87
+ }
88
+
89
+ .ld-uploader-progress {
90
+ margin-top: 6px;
91
+ }
92
+
93
+ // ------------- x-small
94
+
95
+ &.ld-uploader--x-small {
96
+ .ld-uploader-droparea {
97
+ padding: 20px 0;
98
+
99
+ svg {
100
+ margin-right: 8px;
101
+ }
102
+ }
103
+ }
104
+
105
+ // ------------- small
106
+
107
+ &.ld-uploader--small {
108
+ .ld-uploader-droparea {
109
+ padding: 32px 0;
110
+
111
+ svg {
112
+ margin-bottom: 16px;
113
+ }
114
+ }
115
+ }
116
+
117
+ // ------------- large
118
+
119
+ &.ld-uploader--large {
120
+ .ld-uploader-droparea {
121
+ display: flex;
122
+ flex-direction: column;
123
+ justify-content: center;
124
+ padding: 0;
125
+
126
+ svg {
127
+ margin-bottom: 24px;
128
+ }
129
+ }
130
+ }
131
+
132
+ &.ld-uploader--drag {
133
+ .ld-uploader-droparea {
134
+ background-color: var(--primary-l-5);
135
+ border-color: var(--peimary-l-2);
136
+ }
137
+ }
138
+
139
+ &.ld-uploader--disabled {
140
+ .ld-uploader-droparea {
141
+ background-color: var(--grey-l-6);
142
+ border-color: var(--grey-l-3);
143
+
144
+ &:hover {
145
+ .ld-uploader-placeholder {
146
+ color: var(--grey-l-2);
147
+
148
+ svg {
149
+ color: var(--grey-l-2);
150
+ }
151
+ }
152
+ }
153
+ }
154
+ .ld-uploader-placeholder {
155
+ color: var(--grey-l-2);
156
+
157
+ svg {
158
+ color: var(--grey-l-2);
159
+ }
160
+ }
161
+
162
+ .ld-uploader-max {
163
+ color: var(--grey-l-2);
164
+ }
165
+ }
166
+ }
167
+ }
@@ -1,33 +1,11 @@
1
- $font-size: 12px !default; // основной шрифт приложения
2
- $input-height: 28px !default; // высота атомарного элемента ui (button, input)
1
+ $border-radius: 8px !default; // радиус скругления атомарного элемента ui
3
2
  $icon-height: 24px !default; // размеры обычной иконки
4
- $border-radius: 4px !default; // радиус скругления атомарного элемента ui
5
- $chip-height: 20px !default; // высота элемента chip
6
- $toolbar-height: 44px !default; // высота тулбара
7
- $toolbar-border-radius: 8px !default; // радиус скругления тулбара
8
- $pager-height: 32px !default;
9
-
10
- $ld-tab-height: $input-height + 10px; // высота элемента ld-tab
11
-
12
- $shadow-1: 0px 3px 4px 0px rgba(0, 0, 0, 0.14);
13
- $shadow-2: 0px 3px 4px 0px rgba(0, 0, 0, 0.20);
14
- $shadow-3: 0px 5px 6px 0px rgba(0, 0, 0, 0.30);
15
- $shadow-4: 0px 16px 20px 0px rgba(0, 0, 0, 0.20);
16
3
 
17
4
  :root {
18
- --font-size--1: #{calc(var(--font-size) - 1px)};
19
- --font-size: #{$font-size};
20
- --font-size-2: #{calc(var(--font-size) + 2px)};
21
- --input-height: #{$input-height};
5
+ --text: var(--grey-d-5);
6
+ --focus: var(--primary-d-1);
7
+ --highlight: var(--grey-d-1);
8
+ --white: hsla(255, 100%, 100%, 100%);
22
9
  --border-radius: #{$border-radius};
23
- --chip-height: #{$chip-height};
24
- --ld-tab-height: #{$ld-tab-height};
25
- --toolbar-height: #{$toolbar-height};
26
- --toolbar-border-radius: #{$toolbar-border-radius};
27
- --pager-height: #{$pager-height};
28
10
  --icon-height: #{$icon-height};
29
- --shadow-1: #{$shadow-1};
30
- --shadow-2: #{$shadow-2};
31
- --shadow-3: #{$shadow-3};
32
- --shadow-4: #{$shadow-4};
33
11
  }
@@ -1,16 +1,150 @@
1
- @use 'fonts';
2
- @use 'colors';
3
- @use 'variables';
4
- @use 'buttons';
5
- @use 'chip';
6
- @use 'breadcrumbs';
7
- @use 'inputs';
8
- @use 'calendar';
9
- @use 'toolbar';
10
- @use 'multiselect';
11
- @use 'animations';
12
- @use 'toasted';
13
- @use 'dialogs';
14
- @use 'iterator';
15
- @use 'pager';
16
- @use 'time';
1
+ @use "fonts";
2
+ @use "colors";
3
+ @use "shadows";
4
+ @use "scroll";
5
+ @use "tooltip";
6
+ @use "variables";
7
+ @use "buttons";
8
+ @use "checkbox";
9
+ @use "radiogroup";
10
+ @use "radiobutton";
11
+ @use "switch";
12
+ @use "chip";
13
+ @use "badge";
14
+ @use "avatar";
15
+ @use "breadcrumbs";
16
+ @use "loader";
17
+ @use "splitter";
18
+ @use "tabs";
19
+ @use "toggle";
20
+ @use "progress";
21
+ @use "inputs";
22
+ @use "calendar";
23
+ @use "toolbar";
24
+ @use "animations";
25
+ @use "toasted";
26
+ @use "dialogs";
27
+ @use "iterator";
28
+ @use "pager";
29
+ @use "time";
30
+ @use "uploader";
31
+ @use "step";
32
+ @use "slider";
33
+ @use "editor";
34
+ @use "treeview";
35
+ @use "textviewer";
36
+ @use "textmarkup";
37
+ @use "expansions";
38
+
39
+
40
+ @use "@ldmjs/datatable/styles";
41
+
42
+ @use 'vuetify' with (
43
+ $color-pack: false,
44
+ );
45
+
46
+ body {
47
+ .v-card {
48
+ background-color: var(--white);
49
+ }
50
+
51
+ .v-menu {
52
+ .v-overlay__content {
53
+ border-radius: var(--border-radius);
54
+ background-color: var(--white);
55
+ box-shadow: var(--shadow-l);
56
+
57
+ .v-list {
58
+ background-color: var(--white);
59
+
60
+ .v-list-item__overlay {
61
+ background-color: var(--grey-l-6);
62
+ }
63
+
64
+ .v-list-item__prepend {
65
+ display: flex;
66
+ align-items: start;
67
+ height: 100%;
68
+ }
69
+ }
70
+
71
+ .v-card {
72
+ &.v-card--variant-elevated {
73
+ box-shadow: var(--shadow-xl);
74
+ }
75
+ }
76
+ }
77
+ }
78
+
79
+ .v-list {
80
+ border-radius: var(--border-radius);
81
+
82
+ .v-list-item__overlay,
83
+ .v-list-item__underlay {
84
+ display: none;
85
+ }
86
+
87
+ .v-list-item {
88
+ color: var(--grey-d-3);
89
+ transition: all 0.1s;
90
+ &:hover {
91
+ background-color: var(--grey-l-6);
92
+ color: var(--text);
93
+ }
94
+
95
+ &--active {
96
+ color: var(--primary-d-1);
97
+ &:hover {
98
+ color: var(--primary-d-1);
99
+ }
100
+ }
101
+
102
+ .v-list-item__content {
103
+ .v-list-item-title {
104
+ font-family: var(--regular);
105
+ font-weight: 500;
106
+ }
107
+ .v-list-item-subtitle {
108
+ font-family: var(--regular);
109
+ color: var(--grey-d-1);
110
+ }
111
+ }
112
+ }
113
+
114
+ &.v-list--x-small {
115
+ .v-list-item {
116
+ padding: 6px 12px;
117
+ }
118
+ }
119
+
120
+ &.v-list--small {
121
+ .v-list-item {
122
+ padding: 8px 12px;
123
+ }
124
+ }
125
+
126
+ &.v-list--large {
127
+ .v-list-item {
128
+ padding: 12px 20px;
129
+ }
130
+ }
131
+ }
132
+
133
+ .ld-label {
134
+ display: flex;
135
+ flex-direction: column;
136
+ justify-content: center;
137
+ min-height: var(--input-height);
138
+
139
+ .ld-label-content {
140
+ color: var(--text);
141
+ line-height: 20px;
142
+ }
143
+
144
+ .ld-label-reqiured::after {
145
+ content: '*';
146
+ display: inline-block;
147
+ color: var(--error);
148
+ }
149
+ }
150
+ }
@@ -0,0 +1,17 @@
1
+ @use "sass:selector";
2
+ @use "sass:list";
3
+
4
+ @function getParent($class) {
5
+ $parent: '';
6
+
7
+ @each $selector in $class {
8
+ $l: list.length($selector);
9
+ $parent: list.nth($selector, $l);
10
+ }
11
+
12
+ @return $parent;
13
+ }
14
+
15
+ @function getSelector($class, $prefix) {
16
+ @return selector.append($class, $prefix);
17
+ }
@@ -14,9 +14,11 @@ export interface IRoute {
14
14
  }
15
15
 
16
16
  export interface IBreadcrumbsItem {
17
+ uid?: number;
17
18
  text?: string;
18
19
  remark?: string;
19
20
  route: IRoute;
20
21
  disabled?: boolean;
22
+ hidden?: boolean;
21
23
  data?: unknown;
22
24
  }