@smwb/ui-styles 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +60 -0
  3. package/less/_prelude.less +6 -0
  4. package/less/components/accordion/accordion.entry.less +2 -0
  5. package/less/components/accordion/accordion.less +36 -0
  6. package/less/components/appBar/appBar.entry.less +2 -0
  7. package/less/components/appBar/appBar.less +95 -0
  8. package/less/components/appLayout/appLayout.entry.less +2 -0
  9. package/less/components/appLayout/appLayout.less +112 -0
  10. package/less/components/avatar/avatar.entry.less +2 -0
  11. package/less/components/avatar/avatar.less +74 -0
  12. package/less/components/badge/badge.entry.less +2 -0
  13. package/less/components/badge/badge.less +66 -0
  14. package/less/components/bottomBar/bottomBar.entry.less +2 -0
  15. package/less/components/bottomBar/bottomBar.less +84 -0
  16. package/less/components/breadcrumbs/breadcrumbs.entry.less +2 -0
  17. package/less/components/breadcrumbs/breadcrumbs.less +57 -0
  18. package/less/components/button/button.entry.less +2 -0
  19. package/less/components/button/button.less +164 -0
  20. package/less/components/buttonGroup/buttonGroup.entry.less +2 -0
  21. package/less/components/buttonGroup/buttonGroup.less +95 -0
  22. package/less/components/card/card.entry.less +2 -0
  23. package/less/components/card/card.less +56 -0
  24. package/less/components/carousel/carousel.entry.less +2 -0
  25. package/less/components/carousel/carousel.less +75 -0
  26. package/less/components/chat/chat.entry.less +2 -0
  27. package/less/components/chat/chat.less +623 -0
  28. package/less/components/chat/chat.variables.less +9 -0
  29. package/less/components/checkbox/checkbox.entry.less +2 -0
  30. package/less/components/checkbox/checkbox.less +109 -0
  31. package/less/components/chip/chip.entry.less +2 -0
  32. package/less/components/chip/chip.less +121 -0
  33. package/less/components/datePicker/dataPicker.entry.less +2 -0
  34. package/less/components/datePicker/dataPicker.less +235 -0
  35. package/less/components/divider/divider.entry.less +2 -0
  36. package/less/components/divider/divider.less +69 -0
  37. package/less/components/expansionPanel/expansionPanel.entry.less +2 -0
  38. package/less/components/expansionPanel/expansionPanel.less +136 -0
  39. package/less/components/fileDrop/fileDrop.entry.less +2 -0
  40. package/less/components/fileDrop/fileDrop.less +67 -0
  41. package/less/components/fileInput/fileInput.entry.less +2 -0
  42. package/less/components/fileInput/fileInput.less +4 -0
  43. package/less/components/floatingButton/floatingButton.entry.less +2 -0
  44. package/less/components/floatingButton/floatingButton.less +94 -0
  45. package/less/components/grid/grid.entry.less +2 -0
  46. package/less/components/grid/grid.less +174 -0
  47. package/less/components/icon/icon.entry.less +2 -0
  48. package/less/components/icon/icon.less +27 -0
  49. package/less/components/imagesList/imagesList.entry.less +2 -0
  50. package/less/components/imagesList/imagesList.less +35 -0
  51. package/less/components/imagesList/imagesListItem/imagesListItem.entry.less +2 -0
  52. package/less/components/imagesList/imagesListItem/imagesListItem.less +117 -0
  53. package/less/components/list/list.entry.less +2 -0
  54. package/less/components/list/list.less +87 -0
  55. package/less/components/menu/menu.entry.less +2 -0
  56. package/less/components/menu/menu.less +121 -0
  57. package/less/components/message/message.entry.less +2 -0
  58. package/less/components/message/message.less +103 -0
  59. package/less/components/modal/modal.entry.less +2 -0
  60. package/less/components/modal/modal.less +215 -0
  61. package/less/components/page/page.entry.less +2 -0
  62. package/less/components/page/page.less +39 -0
  63. package/less/components/pageHeader/pageHeader.entry.less +2 -0
  64. package/less/components/pageHeader/pageHeader.less +49 -0
  65. package/less/components/pagination/pagination.entry.less +2 -0
  66. package/less/components/pagination/pagination.less +103 -0
  67. package/less/components/progressIndicator/progressIndicator.entry.less +2 -0
  68. package/less/components/progressIndicator/progressIndicator.less +107 -0
  69. package/less/components/radioButton/radioButton.entry.less +2 -0
  70. package/less/components/radioButton/radioButton.less +138 -0
  71. package/less/components/rating/rating.entry.less +2 -0
  72. package/less/components/rating/rating.less +65 -0
  73. package/less/components/ripple/ripple.entry.less +2 -0
  74. package/less/components/ripple/ripple.less +24 -0
  75. package/less/components/screenDivider/screenDivider.entry.less +2 -0
  76. package/less/components/screenDivider/screenDivider.less +56 -0
  77. package/less/components/selectField/selectField.entry.less +2 -0
  78. package/less/components/selectField/selectField.less +182 -0
  79. package/less/components/sheet/sheet.entry.less +2 -0
  80. package/less/components/sheet/sheet.less +243 -0
  81. package/less/components/sidebar/sidebar.entry.less +2 -0
  82. package/less/components/sidebar/sidebar.less +137 -0
  83. package/less/components/skeleton/skeleton.entry.less +2 -0
  84. package/less/components/skeleton/skeleton.less +67 -0
  85. package/less/components/slider/slider.entry.less +2 -0
  86. package/less/components/slider/slider.less +294 -0
  87. package/less/components/snackbar/snackbar.entry.less +2 -0
  88. package/less/components/snackbar/snackbar.less +157 -0
  89. package/less/components/stack/stack.entry.less +2 -0
  90. package/less/components/stack/stack.less +10 -0
  91. package/less/components/stepper/stepper.entry.less +2 -0
  92. package/less/components/stepper/stepper.less +142 -0
  93. package/less/components/table/table.entry.less +2 -0
  94. package/less/components/table/table.less +192 -0
  95. package/less/components/table/tablePagination/tablePagination.entry.less +2 -0
  96. package/less/components/table/tablePagination/tablePagination.less +62 -0
  97. package/less/components/tabs/tab/tab.entry.less +2 -0
  98. package/less/components/tabs/tab/tab.less +114 -0
  99. package/less/components/tabs/tabs.entry.less +2 -0
  100. package/less/components/tabs/tabs.less +44 -0
  101. package/less/components/textField/textField.entry.less +2 -0
  102. package/less/components/textField/textField.less +373 -0
  103. package/less/components/timePicker/timePicker.entry.less +2 -0
  104. package/less/components/timePicker/timePicker.less +95 -0
  105. package/less/components/toggle/toggle.entry.less +2 -0
  106. package/less/components/toggle/toggle.less +110 -0
  107. package/less/components/tooltip/tooltip.entry.less +2 -0
  108. package/less/components/tooltip/tooltip.less +36 -0
  109. package/less/components/treeView/treeView.entry.less +2 -0
  110. package/less/components/treeView/treeView.less +71 -0
  111. package/less/components/typography/typography.entry.less +2 -0
  112. package/less/components/typography/typography.less +86 -0
  113. package/less/components.less +59 -0
  114. package/less/connects/rt/table.less +26 -0
  115. package/less/connects.less +1 -0
  116. package/less/default/globals/default.variables.less +584 -0
  117. package/less/foundation/breakpoints.less +80 -0
  118. package/less/foundation/elevation.less +61 -0
  119. package/less/foundation/palette.less +310 -0
  120. package/less/foundation/radius.less +21 -0
  121. package/less/foundation/sizing.less +35 -0
  122. package/less/foundation/spacing.less +164 -0
  123. package/less/foundation/typography.less +25 -0
  124. package/less/foundation.less +18 -0
  125. package/less/headless-base.less +2 -0
  126. package/less/responsive.less +41 -0
  127. package/less/site/globals/site.variables.less +25 -0
  128. package/less/templates/adminDashboard/adminDashboard.less +27 -0
  129. package/less/templates/summer-ui/auth.less +30 -0
  130. package/less/templates/summer-ui/authCard.less +33 -0
  131. package/less/templates/summer-ui/authLayout.less +11 -0
  132. package/less/templates.less +4 -0
  133. package/less/theme.less +30 -0
  134. package/less/themes/material/variables.less +370 -0
  135. package/less/themes/summer/variables.less +380 -0
  136. package/less/variables.less +260 -0
  137. package/normalize.css +484 -0
  138. package/package.json +21 -0
@@ -0,0 +1,373 @@
1
+ .smwb-text-field {
2
+ display: inline-flex;
3
+ flex-direction: column;
4
+ position: relative;
5
+ min-width: 20em;
6
+ margin: 0;
7
+ padding: 0;
8
+ border: 0;
9
+ vertical-align: top;
10
+
11
+ &--inline {
12
+ border-bottom: 1px dotted var(--smui-primaryTextColor);
13
+ }
14
+
15
+ &__label {
16
+ display: block;
17
+ padding: 0;
18
+ font-size: 16px;
19
+ font-weight: 400;
20
+ color: var(--smui-textFieldLabelColor);
21
+ letter-spacing: 0.009375em;
22
+ line-height: 23px;
23
+ transform-origin: left top;
24
+ white-space: nowrap;
25
+ overflow: hidden;
26
+ text-overflow: ellipsis;
27
+ max-width: calc(100% - 26px);
28
+ z-index: 1;
29
+ pointer-events: none;
30
+ position: absolute;
31
+ left: 0;
32
+ top: 0;
33
+ transform: translate(16px, 16px);
34
+ transition: color 200ms cubic-bezier(0, 0, 0.2, 1) 0ms, transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms,
35
+ max-width 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
36
+ user-select: none;
37
+
38
+ &--shrink {
39
+ max-width: calc(133% - 24px);
40
+ transform: translate(15px, -9px) scale(0.75);
41
+ user-select: none;
42
+ pointer-events: none;
43
+ z-index: 1;
44
+ }
45
+ }
46
+
47
+ &__input-holder {
48
+ display: inline-flex;
49
+ align-items: center;
50
+ position: relative;
51
+ border-radius: @textFieldBorderRadius;
52
+ color: var(--smui-textFieldInputColor);
53
+ font-family: var(--smui-fontFamily);
54
+ font-size: 16px;
55
+ line-height: 1.4375em;
56
+ font-weight: 400;
57
+ letter-spacing: 0.009375em;
58
+ cursor: text;
59
+ box-sizing: border-box;
60
+ width: 100%;
61
+ }
62
+
63
+ &__input {
64
+ height: 23px;
65
+ color: currentcolor;
66
+ font: inherit;
67
+ border: 0;
68
+ background: none;
69
+ outline: none;
70
+ caret-color: var(--smui-primaryColor);
71
+ letter-spacing: inherit;
72
+ box-sizing: content-box;
73
+ width: 100%;
74
+
75
+ &:not(&--inline) {
76
+ padding: @textFieldFilledInputPadding;
77
+ }
78
+
79
+ &::placeholder {
80
+ opacity: 0;
81
+ color: currentColor;
82
+ transition: opacity 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
83
+ }
84
+
85
+ &--show-placeholder {
86
+ &::placeholder {
87
+ opacity: 0.6;
88
+ }
89
+ }
90
+
91
+ &&--adornment-start {
92
+ padding-left: 0;
93
+ }
94
+
95
+ &&--adornment-end {
96
+ padding-right: 0;
97
+ }
98
+ }
99
+
100
+ &__inline-input {
101
+ &::placeholder {
102
+ opacity: 0.6;
103
+ color: currentColor;
104
+ transition: opacity 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
105
+ }
106
+ }
107
+
108
+ &__notched {
109
+ position: absolute;
110
+ inset: -5px 0 0;
111
+ top: -5px;
112
+ right: 0;
113
+ bottom: 0;
114
+ min-width: 0;
115
+ margin: 0;
116
+ padding: 0 @textFieldNotchPaddingX;
117
+ border: 1px solid var(--smui-textFieldNotchedColor);
118
+ border-radius: inherit;
119
+ pointer-events: none;
120
+ overflow: hidden;
121
+ text-align: left;
122
+ user-select: none;
123
+
124
+ > legend {
125
+ float: unset;
126
+ width: auto;
127
+ padding: 0;
128
+ line-height: 11px;
129
+ transition: width 150ms cubic-bezier(0, 0, 0.2, 1) 0ms;
130
+ overflow: hidden;
131
+ }
132
+
133
+ &--with-label {
134
+ > legend {
135
+ display: block;
136
+ height: 11px;
137
+ max-width: 0.01px;
138
+ padding: 0;
139
+ font-size: 0.75em;
140
+ transition: max-width 50ms cubic-bezier(0, 0, 0.2, 1) 0ms;
141
+ white-space: nowrap;
142
+ visibility: hidden;
143
+
144
+ > span {
145
+ display: inline-block;
146
+ padding: 0 @textFieldNotchCondensedPaddingX;
147
+ font-size: inherit;
148
+ visibility: visible;
149
+ opacity: 0;
150
+ }
151
+ }
152
+ }
153
+
154
+ &--active {
155
+ > legend {
156
+ max-width: 100%;
157
+ transition: max-width 100ms cubic-bezier(0, 0, 0.2, 1) 50ms;
158
+ }
159
+ }
160
+ }
161
+
162
+ &__helper-line {
163
+ display: flex;
164
+ justify-content: space-between;
165
+ padding-right: @textFieldAffixPaddingX;
166
+ padding-left: @textFieldAffixPaddingX;
167
+ margin-top: @textFieldHelperMarginTop;
168
+ }
169
+
170
+ &__helper-text {
171
+ font-size: 0.75rem;
172
+ font-weight: 400;
173
+ letter-spacing: 0.0333333333em;
174
+ color: var(--smui-textFieldHelperTextColor);
175
+ }
176
+
177
+ &__adornment {
178
+ display: flex;
179
+ align-items: center;
180
+ height: 0.01em;
181
+ white-space: nowrap;
182
+ color: var(--smui-textFieldInputColor);
183
+
184
+ &--start {
185
+ margin-right: @textFieldAdornmentGap;
186
+ margin-left: @textFieldAffixMarginX;
187
+ }
188
+
189
+ &--end {
190
+ margin-left: @textFieldAdornmentGap;
191
+ margin-right: @textFieldAffixMarginX;
192
+ }
193
+
194
+ &--disable-pointer {
195
+ pointer-events: none;
196
+ }
197
+
198
+ &--text {
199
+ opacity: 0.7;
200
+ }
201
+
202
+ &--filled&--start {
203
+ margin-top: @textFieldAdornmentFilledMarginTop;
204
+ }
205
+ }
206
+
207
+ &--filled & {
208
+ &__label {
209
+ &--shrink {
210
+ transform: translate(16px, 7px) scale(0.75);
211
+ }
212
+ }
213
+
214
+ &__input-holder {
215
+ border-radius: @textFieldBorderRadius @textFieldBorderRadius 0 0;
216
+ background-color: var(--smui-textFieldFilledBgColor);
217
+
218
+ &:before,
219
+ &:after {
220
+ content: "";
221
+ position: absolute;
222
+ left: 0;
223
+ right: 0;
224
+ bottom: 0;
225
+ pointer-events: none;
226
+ }
227
+
228
+ &:before {
229
+ border-bottom: 1px solid var(--smui-textFieldFilledBorderColor);
230
+ }
231
+
232
+ &:after {
233
+ border-bottom: 2px solid var(--smui-primaryColor);
234
+ transform: scaleX(0);
235
+ transition: transform 200ms cubic-bezier(0, 0, 0.2, 1) 0ms;
236
+ }
237
+ }
238
+
239
+ &__input {
240
+ padding: @textFieldFilledLabelPadding;
241
+
242
+ &--adornment-start {
243
+ padding-left: 0;
244
+ }
245
+
246
+ &--adornment-end {
247
+ padding-right: 0;
248
+ }
249
+ }
250
+ }
251
+
252
+ &:not(&--focused):not(&--disabled):not(&--error) &__input-holder:hover &__notched {
253
+ border-color: var(--smui-textFieldNotchedHoverColor);
254
+ }
255
+
256
+ &--filled:not(&--focused):not(&--disabled) & {
257
+ &__input-holder:hover {
258
+ background-color: var(--smui-textFieldFilledHoverBgColor);
259
+ }
260
+ }
261
+
262
+ &--filled:not(&--focused):not(&--disabled):not(&--error) & {
263
+ &__input-holder {
264
+ &:hover:before {
265
+ border-bottom-color: var(--smui-textFieldFilledHoverBorderColor);
266
+ }
267
+ }
268
+ }
269
+
270
+ &--focused & {
271
+ &__label {
272
+ color: var(--smui-primaryColor);
273
+ }
274
+
275
+ &__input {
276
+ &::placeholder {
277
+ opacity: 0.6;
278
+ }
279
+ }
280
+
281
+ &__notched {
282
+ border: 2px solid var(--smui-primaryColor);
283
+ transition: border-color 0ms;
284
+ }
285
+ }
286
+
287
+ &--filled&--focused & {
288
+ &__input-holder {
289
+ background-color: var(--smui-textFieldFilledFocusedBgColor);
290
+
291
+ &:after {
292
+ transform: scaleX(1) translateX(0);
293
+ }
294
+ }
295
+ }
296
+
297
+ &--error & {
298
+ &__label {
299
+ color: var(--smui-errorColor);
300
+ }
301
+
302
+ &__notched {
303
+ border-color: var(--smui-errorColor);
304
+ }
305
+
306
+ &__input {
307
+ caret-color: var(--smui-errorColor);
308
+ }
309
+
310
+ &__helper-text {
311
+ color: var(--smui-errorColor);
312
+ }
313
+ }
314
+
315
+ &--filled&--error & {
316
+ &__input-holder {
317
+ &:before {
318
+ border-bottom-color: var(--smui-errorColor);
319
+ }
320
+
321
+ &:after {
322
+ border-bottom: 2px solid var(--smui-errorColor);
323
+ }
324
+ }
325
+ }
326
+
327
+ &--disabled & {
328
+ &__label {
329
+ color: var(--smui-textFieldLabelDisabledColor);
330
+ }
331
+
332
+ &__input-holder,
333
+ &__inline-input {
334
+ color: var(--smui-textFieldInputDisabledColor);
335
+ pointer-events: none;
336
+ cursor: default;
337
+ }
338
+
339
+ &__notched {
340
+ border-color: var(--smui-textFieldNotchedDisabledColor);
341
+ }
342
+
343
+ &__helper-text {
344
+ color: var(--smui-textFieldHelperTextDisabledColor);
345
+ }
346
+ }
347
+
348
+ &--filled&--disabled & {
349
+ &__input-holder {
350
+ background-color: var(--smui-textFieldFilledDisabledBgColor);
351
+
352
+ &:before {
353
+ border-bottom-color: var(--smui-textFieldFilledDisabledBorderColor);
354
+ }
355
+ }
356
+ }
357
+
358
+ &--full-width {
359
+ width: 100%;
360
+ min-width: 0;
361
+ }
362
+ }
363
+
364
+ .smwb-text-field_size-small .smwb-text-field__input:not(.smwb-text-field__input--inline) {
365
+ padding-top: @smui-space-sm;
366
+ padding-bottom: @smui-space-sm;
367
+ font-size: @smui-control-font-sm;
368
+ }
369
+ .smwb-text-field_size-large .smwb-text-field__input:not(.smwb-text-field__input--inline) {
370
+ padding-top: @smui-space-lg;
371
+ padding-bottom: @smui-space-lg;
372
+ font-size: @smui-control-font-lg;
373
+ }
@@ -0,0 +1,2 @@
1
+ @import (reference) "../../_prelude.less";
2
+ @import "./timePicker.less";
@@ -0,0 +1,95 @@
1
+ .smwb-time-picker {
2
+ width: auto;
3
+ min-width: 200px;
4
+ max-width: 328px;
5
+
6
+ &__columns {
7
+ display: flex;
8
+ border-top: 1px solid var(--smui-dividerColor);
9
+ }
10
+
11
+ &__column {
12
+ flex: 1 1 0;
13
+ min-width: 56px;
14
+
15
+ &:not(:last-child) {
16
+ border-right: 1px solid var(--smui-dividerColor);
17
+ }
18
+ }
19
+
20
+ &__overflow {
21
+ max-height: 240px;
22
+ overflow-y: auto;
23
+ }
24
+
25
+ &__list {
26
+ padding: @datePickerFooterPaddingY 0;
27
+ margin: 0;
28
+ list-style: none;
29
+ }
30
+
31
+ &__item {
32
+ display: flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ height: 36px;
36
+ padding: 0 @smui-space-sm;
37
+ font-size: 14px;
38
+ line-height: 1;
39
+ font-weight: 500;
40
+ font-variant-numeric: tabular-nums;
41
+ user-select: none;
42
+ cursor: pointer;
43
+ transition+: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
44
+ transition+: color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
45
+
46
+ &:hover:not(&--selected) {
47
+ background-color: var(--smui-onSurfaceHover);
48
+ }
49
+
50
+ &:active:not(&--selected) {
51
+ background-color: var(--smui-onSurfaceActive);
52
+ }
53
+
54
+ &--selected {
55
+ color: var(--smui-primaryColor);
56
+ background-color: var(--smui-onSurfaceHover);
57
+ }
58
+ }
59
+ }
60
+
61
+ .smwb-date-time-picker {
62
+ &.smwb-date-picker {
63
+ width: max-content;
64
+ max-width: none;
65
+ }
66
+
67
+ &__content {
68
+ display: flex;
69
+ flex-direction: row;
70
+ align-items: stretch;
71
+ width: max-content;
72
+ border-top: 1px solid var(--smui-dividerColor);
73
+ }
74
+
75
+ &__body {
76
+ width: 328px;
77
+ flex-shrink: 0;
78
+ }
79
+
80
+ .smwb-time-picker__columns {
81
+ border-top: none;
82
+ border-left: 1px solid var(--smui-dividerColor);
83
+ flex: 0 0 auto;
84
+ align-self: stretch;
85
+ }
86
+
87
+ .smwb-time-picker__column {
88
+ flex: 0 0 56px;
89
+ width: 56px;
90
+ }
91
+
92
+ .smwb-time-picker__overflow {
93
+ max-height: 309px;
94
+ }
95
+ }
@@ -0,0 +1,2 @@
1
+ @import (reference) "../../_prelude.less";
2
+ @import "./toggle.less";
@@ -0,0 +1,110 @@
1
+ .smwb-toggle {
2
+ width: @toggleTrackWidth;
3
+ height: @toggleTrackHeight;
4
+ position: relative;
5
+ cursor: pointer;
6
+ display: inline-flex;
7
+ &__wrapper {
8
+ display: inline-flex;
9
+ flex-direction: column;
10
+ gap: @toggleGap;
11
+ &_label-left {
12
+ flex-direction: row;
13
+ align-items: center;
14
+ }
15
+ &_label-right {
16
+ flex-direction: row-reverse;
17
+ align-items: center;
18
+ }
19
+ }
20
+ &.smwb-disabled {
21
+ opacity: 0.35;
22
+ pointer-events: none;
23
+ }
24
+ &__track {
25
+ width: 100%;
26
+ height: 100%;
27
+ position: absolute;
28
+ top: 0;
29
+ left: 0;
30
+ background-color: var(--smui-toggleTrackColor);
31
+ border-radius: 999px;
32
+ transition: all 0.2s ease-in-out;
33
+ & when (@toggleWithBorder = true) {
34
+ border: 2px solid var(--smui-toggleBorderColor);
35
+ }
36
+ }
37
+
38
+ &__thumb {
39
+ position: absolute;
40
+ z-index: 1;
41
+ width: @toggleThumbUncheckedHeight;
42
+ height: @toggleThumbUncheckedHeight;
43
+ border-radius: @circleBorderRadius;
44
+ background-color: @toggleDefaultThumbColor;
45
+ left: @toggleUnselectedLeft;
46
+ transform: translateY(-50%);
47
+ top: 50%;
48
+ transition: all 0.2s ease-in-out;
49
+ box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%);
50
+ &::before {
51
+ width: 40px;
52
+ height: 40px;
53
+ border-radius: @circleBorderRadius;
54
+ content: "";
55
+ position: absolute;
56
+ top: 50%;
57
+ left: 50%;
58
+ transform: translate(-50%, -50%) scale(0);
59
+ background-color: none;
60
+ opacity: 0;
61
+ transition: all 0.2s ease-in-out;
62
+ }
63
+ &:hover {
64
+ &::before {
65
+ transform: translate(-50%, -50%) scale(1);
66
+ background-color: var(--smui-onSurfaceHover);
67
+ opacity: 1;
68
+ }
69
+ }
70
+ }
71
+
72
+ &__checkbox {
73
+ display: none;
74
+ &:checked {
75
+ & ~ .smwb-toggle__track {
76
+ background-color: var(--smui-toggleTrackActiveColor);
77
+ & when (@toggleWithBorder = true) {
78
+ border: 2px solid transparent;
79
+ }
80
+ }
81
+ & ~ .smwb-toggle__thumb {
82
+ left: @toggleSelectedLeft;
83
+ background-color: var(--smui-toggleThumbActiveColor);
84
+ width: @toggleThumbHeight;
85
+ height: @toggleThumbHeight;
86
+ &:hover {
87
+ &::before {
88
+ transform: translate(-50%, -50%) scale(1);
89
+ background-color: var(--smui-primaryColorHover);
90
+ opacity: 1;
91
+ }
92
+ }
93
+ }
94
+ &:active {
95
+ & ~ .smwb-toggle__thumb::before {
96
+ transform: translate(-50%, -50%) scale(1);
97
+ background-color: var(--smui-primaryColorActive);
98
+ opacity: 1;
99
+ }
100
+ }
101
+ }
102
+ &:active {
103
+ & ~ .smwb-toggle__thumb::before {
104
+ transform: translate(-50%, -50%) scale(1);
105
+ background-color: var(--smui-onSurfaceActive);
106
+ opacity: 1;
107
+ }
108
+ }
109
+ }
110
+ }
@@ -0,0 +1,2 @@
1
+ @import (reference) "../../_prelude.less";
2
+ @import "./tooltip.less";
@@ -0,0 +1,36 @@
1
+ .smwb-tooltip {
2
+ border-radius: 4px;
3
+ background-color: var(--smui-tooltipBg);
4
+ color: var(--smui-tooltipTextColor);
5
+ z-index: 5;
6
+ font-size: 12px;
7
+ padding: 0 @tooltipPaddingX;
8
+ height: 24px;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ justify-content: center;
12
+ transition: all 0.2s ease-in-out;
13
+ overflow: hidden;
14
+ opacity: 0;
15
+ visibility: hidden;
16
+ white-space: nowrap;
17
+ min-width: 50px;
18
+
19
+ &__ref {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ justify-content: center;
23
+ cursor: pointer;
24
+ &:hover + .smwb-tooltip {
25
+ visibility: visible;
26
+ opacity: 1;
27
+ }
28
+ }
29
+
30
+ &__wrapper {
31
+ position: relative;
32
+ display: inline-flex;
33
+ align-items: center;
34
+ justify-content: center;
35
+ }
36
+ }
@@ -0,0 +1,2 @@
1
+ @import (reference) "../../_prelude.less";
2
+ @import "./treeView.less";
@@ -0,0 +1,71 @@
1
+ .smwb-tree {
2
+ &__wrapper {
3
+ .smwb-tree__node {
4
+ &:first-child {
5
+ border-left: 0;
6
+ &::before {
7
+ opacity: 0;
8
+ }
9
+ }
10
+ }
11
+ }
12
+ &__node {
13
+ &:last-child {
14
+ border-left-color: transparent;
15
+ }
16
+ padding-left: @treeViewIndent;
17
+ margin-left: 9px;
18
+ position: relative;
19
+ border-left: 1px solid var(--smui-primaryColor);
20
+
21
+ &::before {
22
+ position: absolute;
23
+ top: 0;
24
+ left: -1px;
25
+ height: 20px;
26
+ width: 25px;
27
+ border-bottom: 1px solid var(--smui-primaryColor);
28
+ border-left: 1px solid var(--smui-primaryColor);
29
+ content: "";
30
+ font-weight: 600;
31
+ font-size: 14px;
32
+ }
33
+ &__label {
34
+ position: relative;
35
+ display: inline-flex;
36
+ align-items: center;
37
+ gap: @treeViewItemGap;
38
+ }
39
+
40
+ &__content {
41
+ display: flex;
42
+ align-items: center;
43
+ gap: @treeViewItemGap;
44
+ height: 40px;
45
+ cursor: pointer;
46
+ user-select: none;
47
+ }
48
+ }
49
+ }
50
+
51
+ .smwb-tree__node_selected > .smwb-tree__node__content {
52
+ background-color: var(--smui-onSurfaceHover);
53
+ border-radius: 4px;
54
+ }
55
+
56
+ .smwb-tree__node__checkbox {
57
+ flex-shrink: 0;
58
+ width: 18px;
59
+ height: 18px;
60
+ min-width: 18px;
61
+ min-height: 18px;
62
+ margin: 0;
63
+ cursor: pointer;
64
+ accent-color: var(--smui-checkboxCheckedBg);
65
+ }
66
+
67
+ .smwb-tree__node__loading {
68
+ padding: 4px 8px 4px 28px;
69
+ font-size: 13px;
70
+ color: var(--smui-onSurfaceVariant);
71
+ }
@@ -0,0 +1,2 @@
1
+ @import (reference) "../../_prelude.less";
2
+ @import "./typography.less";