@appscode/design-system 1.1.0-beta.42 → 1.1.0-beta.47

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.
@@ -27,8 +27,8 @@
27
27
  // @import "wizard";
28
28
 
29
29
  @import "terminal";
30
- @import "input-card";
31
30
  @import "input";
31
+ @import "multi-select";
32
32
  @import "report";
33
33
  @import "ui-builder/ui-builder";
34
- @import "ui-builder/vue-open-api";
34
+ @import "ui-builder/vue-open-api";
@@ -0,0 +1,589 @@
1
+ .multiselect {
2
+ // margin-top: 3px;
3
+ // display: flex;
4
+ // align-items: center;
5
+ // max-width: 350px;
6
+ // &.cluster-select {
7
+ // .multiselect__tags {
8
+ // border: 1px solid $primary-90;
9
+ // background-color: $table-header;
10
+
11
+ // .multiselect__input {
12
+ // background-color: $table-header;
13
+ // }
14
+ // }
15
+ // }
16
+
17
+ .multiselect__tags {
18
+ background-color: $white-100;
19
+ min-height: 36px;
20
+ // max-height: 36px;
21
+ font-weight: 500;
22
+ width: 100%;
23
+ border-radius: 4px;
24
+ border: 1px solid $primary-80;
25
+ padding: 6px 30px 8px 20px;
26
+ font-size: 13px;
27
+ border-radius: 4px;
28
+
29
+ .multiselect__placeholder {
30
+ margin: 0;
31
+ padding: 0;
32
+ // padding-top: 2px !important;
33
+ font-weight: 500;
34
+ font-size: 13px;
35
+ }
36
+
37
+ .multiselect__tags-wrap {
38
+ display: flex;
39
+ align-items: center;
40
+ }
41
+
42
+ .multiselect__tag {
43
+ background-color: $black-80;
44
+ margin-top: 4px;
45
+ margin-bottom: 0;
46
+
47
+ .multiselect__tag-icon {
48
+ font-size: 12px;
49
+
50
+ &::after {
51
+ color: $white-100;
52
+ }
53
+
54
+ &:hover {
55
+ background-color: hsla(
56
+ var(--hsl-hue),
57
+ var(--hsl-saturation),
58
+ calc(var(--hsl-lightness) - 9%),
59
+ 1
60
+ );
61
+ }
62
+ }
63
+ }
64
+
65
+ .multiselect__input,
66
+ .multiselect__single {
67
+ background-color: $white-100;
68
+ margin-bottom: 0;
69
+ margin: 0 !important;
70
+ padding-left: 0;
71
+ left: 0px;
72
+ // top: 2px;
73
+ font-size: 13px !important;
74
+ font-weight: 500;
75
+ color: $primary-10;
76
+ line-height: 1.5;
77
+ }
78
+
79
+ .multiselect__single {
80
+ margin-top: 3px;
81
+ margin-bottom: 0;
82
+ }
83
+ }
84
+ .multiselect__select {
85
+ height: 36px;
86
+ }
87
+ .multiselect__content {
88
+ .multiselect__element {
89
+ .multiselect__option {
90
+ padding: 4px 16px;
91
+ min-height: 32px;
92
+ font-size: 13px;
93
+ display: flex;
94
+ align-items: center;
95
+ img {
96
+ width: 30px;
97
+ }
98
+ p {
99
+ font-size: 13px;
100
+ color: $primary-10;
101
+ }
102
+ p:not(.location) {
103
+ font-weight: 500;
104
+ }
105
+ a {
106
+ display: block;
107
+ font-weight: 400;
108
+ margin-top: -12px;
109
+ margin-bottom: -12px;
110
+ padding-top: 12px;
111
+ padding-bottom: 12px;
112
+ }
113
+
114
+ &:hover {
115
+ background-color: hsla(
116
+ var(--hsl-hue),
117
+ var(--hsl-saturation),
118
+ var(--hsl-lightness),
119
+ 0.2
120
+ );
121
+ color: $primary;
122
+ }
123
+
124
+ &.multiselect__option--highlight {
125
+ background-color: $white-100;
126
+ color: $primary;
127
+ &:hover {
128
+ background-color: $primary-97;
129
+ }
130
+
131
+ &:after {
132
+ background-color: hsla(
133
+ var(--hsl-hue),
134
+ var(--hsl-saturation),
135
+ var(--hsl-lightness),
136
+ 0.2
137
+ );
138
+ color: $primary;
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+
146
+ .multi-select-wrapper {
147
+ &.is-last-child-bold {
148
+ .multiselect {
149
+ .multiselect__content {
150
+ .multiselect__element {
151
+ &:nth-last-child(-n + 3) {
152
+ .multiselect__option {
153
+ font-weight: 500;
154
+ }
155
+ }
156
+ }
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ .multiselect__element {
163
+ span {
164
+ label {
165
+ padding-left: 15px !important;
166
+ font-size: 13px !important;
167
+ color: $primary-10 !important;
168
+
169
+ &:after {
170
+ position: inherit !important;
171
+ content: "" !important;
172
+ background-color: transparent;
173
+ }
174
+ }
175
+ }
176
+ }
177
+
178
+ .multiselect__input {
179
+ &::placeholder {
180
+ color: $primary-20;
181
+ font-weight: 400;
182
+ line-height: 1.6;
183
+ font-size: 13px;
184
+ }
185
+ }
186
+
187
+ .multiselect__tags > span {
188
+ font-size: 13px;
189
+ line-height: 1.6;
190
+ color: $primary-10;
191
+ }
192
+
193
+ .multi-select-wrapper {
194
+ position: relative;
195
+ z-index: 0;
196
+
197
+ .multiselect--disabled {
198
+ opacity: unset;
199
+ }
200
+
201
+ &.is-disable {
202
+ opacity: 0.5;
203
+ cursor: not-allowed;
204
+
205
+ input,
206
+ .button.is-information,
207
+ .eye i.fa {
208
+ cursor: not-allowed;
209
+ }
210
+ }
211
+
212
+ .multiselect__input {
213
+ border: none !important;
214
+ }
215
+
216
+ &.has-bg-color {
217
+ label.show-label {
218
+ &:after {
219
+ background-color: transparent;
220
+ }
221
+ }
222
+ }
223
+
224
+ &.is-small {
225
+ label {
226
+ font-size: 13px;
227
+ top: 8px;
228
+
229
+ &.show-label {
230
+ font-size: 12px;
231
+ top: -9px;
232
+ font-weight: 500;
233
+ color: $black-5;
234
+ }
235
+ }
236
+
237
+ .button.is-information {
238
+ width: 36px;
239
+ height: 36px;
240
+ }
241
+
242
+ .multiselect__select {
243
+ height: 100%;
244
+ }
245
+
246
+ .multiselect__tags {
247
+ .multiselect__tag {
248
+ padding: 5px 20px 4px 10px;
249
+ font-size: 12px;
250
+ }
251
+ }
252
+
253
+ .multiselect {
254
+ min-height: auto;
255
+ }
256
+
257
+ .multiselect--active {
258
+ height: 36px !important;
259
+ z-index: 50;
260
+ }
261
+
262
+ .multiselect .multiselect__tags {
263
+ min-height: 36px !important;
264
+ padding: 4px 30px 4px 20px;
265
+ font-size: 13px;
266
+
267
+ .multiselect__single {
268
+ font-size: 12px;
269
+ }
270
+
271
+ .multiselect__placeholder {
272
+ padding: 5px 0 0;
273
+ font-size: 13px;
274
+ font-weight: 500;
275
+ }
276
+ }
277
+
278
+ .multiselect__input,
279
+ .multiselect__single {
280
+ font-size: 13px !important;
281
+ font-weight: 500;
282
+ line-height: 1.5;
283
+ // padding-bottom: 4px;
284
+ display: flex;
285
+ align-items: center;
286
+
287
+ &::placeholder {
288
+ font-weight: 500;
289
+ line-height: 1.6;
290
+ font-size: 13px;
291
+ }
292
+ }
293
+ }
294
+
295
+ &.is-extra-small {
296
+ label {
297
+ font-size: 13px;
298
+ top: 8px;
299
+
300
+ &.show-label {
301
+ font-size: 12px;
302
+ top: -9px;
303
+ }
304
+ }
305
+
306
+ .button.is-information {
307
+ width: 32px;
308
+ height: 32px;
309
+ }
310
+
311
+ .multiselect__select {
312
+ height: 100%;
313
+ }
314
+
315
+ .multiselect__tags {
316
+ .multiselect__tag {
317
+ padding: 5px 20px 4px 10px;
318
+ font-size: 12px;
319
+ }
320
+ }
321
+
322
+ .multiselect {
323
+ min-height: auto;
324
+ }
325
+
326
+ .multiselect--active {
327
+ height: 32px !important;
328
+ z-index: 50;
329
+ }
330
+
331
+ .multiselect .multiselect__tags {
332
+ min-height: 32px !important;
333
+ padding: 3px 30px 4px 20px;
334
+ font-size: 13px;
335
+ display: flex;
336
+ align-items: center;
337
+ .multiselect__single {
338
+ font-size: 12px;
339
+ }
340
+
341
+ .multiselect__placeholder {
342
+ padding: 5px 0 0;
343
+ font-size: 13px;
344
+ font-weight: 500;
345
+ }
346
+ }
347
+
348
+ .multiselect__input,
349
+ .multiselect__single {
350
+ font-size: 13px !important;
351
+ font-weight: 500;
352
+ line-height: 1.5;
353
+ // padding-bottom: 4px;
354
+ display: flex;
355
+ align-items: center;
356
+
357
+ &::placeholder {
358
+ font-weight: 500;
359
+ line-height: 1.6;
360
+ font-size: 13px;
361
+ }
362
+ }
363
+ }
364
+
365
+ &.is-danger {
366
+ input,
367
+ .ac-card,
368
+ textarea {
369
+ border: 1px solid $danger;
370
+ }
371
+
372
+ p {
373
+ color: $danger;
374
+ }
375
+ }
376
+
377
+ &.is-loading {
378
+ input,
379
+ .ac-card,
380
+ textarea {
381
+ border: 1px solid $info;
382
+ opacity: 0.5;
383
+ }
384
+
385
+ p {
386
+ color: $info;
387
+ opacity: 0.5;
388
+ }
389
+ }
390
+
391
+ .is-danger {
392
+ font-size: 12px;
393
+ line-height: 22px;
394
+ color: $danger;
395
+ text-align: left;
396
+
397
+ i.fa {
398
+ padding-right: 10px;
399
+ }
400
+ }
401
+
402
+ .multiselect__select {
403
+ height: calc(100% - 2px);
404
+ border-radius: 0 4px 4px 0;
405
+ background-color: transparent !important;
406
+ }
407
+
408
+ label {
409
+ font-size: 16px;
410
+ left: 20px;
411
+ top: 11px;
412
+ cursor: text;
413
+ color: $primary-10;
414
+ position: absolute;
415
+ z-index: 99;
416
+ transition: 0.3s ease-in-out;
417
+
418
+ .is-required {
419
+ img {
420
+ position: absolute;
421
+ top: 7px;
422
+ padding-left: 3px;
423
+ }
424
+ }
425
+
426
+ &.show-label {
427
+ top: -10px;
428
+ left: 15px;
429
+ padding: 0 5px;
430
+ font-size: 13px;
431
+ color: $black-5;
432
+
433
+ &::after {
434
+ background-color: $white-100;
435
+ }
436
+ }
437
+
438
+ &:after {
439
+ position: absolute;
440
+ content: "";
441
+ left: 0;
442
+ top: 50%;
443
+ background-color: $white-100;
444
+ width: 100%;
445
+ height: 2px;
446
+ margin-top: -1px;
447
+ z-index: -1;
448
+ }
449
+
450
+ &.is-required {
451
+ &:after {
452
+ width: calc(100% + 10px);
453
+ }
454
+ }
455
+ }
456
+ }
457
+ li {
458
+ .multiselect__option {
459
+ font-size: 13px;
460
+ color: $primary-10;
461
+ }
462
+ }
463
+ .multiselect__option--selected {
464
+ label {
465
+ right: 30px;
466
+ }
467
+ }
468
+ .multi-select-wrapper.is-small {
469
+ .multiselect .multiselect__tags {
470
+ .multiselect__input,
471
+ .multiselect__single {
472
+ top: 3.5px !important;
473
+ }
474
+ }
475
+ .multiselect .multiselect__tags .multiselect__placeholder {
476
+ padding-top: 3.5px !important;
477
+ }
478
+ }
479
+ // has info button start
480
+ .multi-select-wrapper {
481
+ &.has-info-button {
482
+ .multiselect__select {
483
+ z-index: 99;
484
+ right: 30px;
485
+ }
486
+ &.has-refresh-button {
487
+ .multiselect__select {
488
+ z-index: 99;
489
+ right: 60px;
490
+ }
491
+ .button {
492
+ &.is-refresh {
493
+ right: 30px;
494
+ }
495
+ }
496
+ }
497
+ .button {
498
+ &.is-information {
499
+ right: 0;
500
+ }
501
+ }
502
+ }
503
+ &.has-refresh-button {
504
+ .multiselect__select {
505
+ z-index: 99;
506
+ right: 30px;
507
+ }
508
+ .button {
509
+ &.is-refresh {
510
+ right: 0;
511
+ }
512
+ }
513
+ }
514
+
515
+ .button {
516
+ &.is-information,
517
+ &.is-refresh {
518
+ background-color: transparent;
519
+ border: none;
520
+ position: absolute;
521
+ height: 36px;
522
+ width: 36px;
523
+ z-index: 90;
524
+ margin-top: 0;
525
+
526
+ &:focus {
527
+ outline: none;
528
+ box-shadow: none;
529
+ background-color: #e4e8ef;
530
+ transform: scale(0.8);
531
+ }
532
+ }
533
+ &.is-refresh.spin {
534
+ i {
535
+ animation: spin 1s linear infinite;
536
+ }
537
+ }
538
+ }
539
+ }
540
+
541
+ @-moz-keyframes spin {
542
+ from {
543
+ -moz-transform: rotate(0deg);
544
+ }
545
+ to {
546
+ -moz-transform: rotate(360deg);
547
+ }
548
+ }
549
+ @-webkit-keyframes spin {
550
+ from {
551
+ -webkit-transform: rotate(0deg);
552
+ }
553
+ to {
554
+ -webkit-transform: rotate(360deg);
555
+ }
556
+ }
557
+ @keyframes spin {
558
+ from {
559
+ transform: rotate(0deg);
560
+ }
561
+ to {
562
+ transform: rotate(360deg);
563
+ }
564
+ }
565
+ // has info button end
566
+
567
+ // dark theme end
568
+ /****************************************
569
+ Responsive Classes
570
+ *****************************************/
571
+ // Extra small devices (portrait phones, less than 576px)
572
+ @media (max-width: 575.98px) {
573
+ }
574
+
575
+ // Small devices (landscape phones, 576px and up)
576
+ @media (min-width: 576px) and (max-width: 767.98px) {
577
+ }
578
+
579
+ // Medium devices (tablets, 768px and up)
580
+ @media (min-width: 768px) and (max-width: 991.98px) {
581
+ }
582
+
583
+ // Large devices (desktops, 992px and up)
584
+ @media (min-width: 992px) and (max-width: 1199.98px) {
585
+ }
586
+
587
+ // Extra large devices (large desktops, 1200px and up)
588
+ @media (min-width: 1200px) {
589
+ }
@@ -67,6 +67,9 @@
67
67
  overflow-y: hidden;
68
68
 
69
69
  li {
70
+ &.is-active {
71
+ background-color: $black-20;
72
+ }
70
73
  a {
71
74
  margin-bottom: 0 !important;
72
75
  }
@@ -110,7 +113,7 @@
110
113
 
111
114
  li:not(.is-active) {
112
115
  margin-right: -1px;
113
- border-right: 1px solid $primary-90;
116
+ border-right: 1px solid $primary-30;
114
117
  }
115
118
 
116
119
  li {
@@ -176,7 +179,7 @@
176
179
  padding: 10px 20px;
177
180
  justify-content: flex-start;
178
181
  border-bottom: 1px solid $primary-20;
179
- color: $primary-97;
182
+ color: $primary-97 !important;
180
183
 
181
184
  &:last-child {
182
185
  border-bottom: none;
@@ -1,3 +1,5 @@
1
+ @import "../input-card";
2
+
1
3
  .ac-object-field-wrapper {
2
4
  display: grid;
3
5
  grid-template-columns: auto auto 45px;
@@ -210,9 +212,9 @@
210
212
 
211
213
  // details with checkradio
212
214
  .details-with-checkradio-wrapper {
213
- display: flex;
214
- flex-wrap: wrap;
215
+ display: grid;
215
216
  gap: 15px;
217
+ grid-template-columns: repeat(auto-fill, minmax(min(250px, 100%), 1fr));
216
218
  }
217
219
  .table {
218
220
  tr {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@appscode/design-system",
3
- "version": "1.1.0-beta.42",
3
+ "version": "1.1.0-beta.47",
4
4
  "description": "A design system for Appscode websites and dashboards made using Bulma",
5
5
  "main": "main.scss",
6
6
  "scripts": {
@@ -1,6 +1,6 @@
1
- import type { TaskLog } from "./longRunningTasks";
2
-
3
- export interface Notification extends TaskLog {
1
+ export interface Notification {
4
2
  id: string;
5
3
  time: number;
4
+ msg?: string;
5
+ status: string;
6
6
  }
@@ -23,6 +23,7 @@
23
23
  background: $primary-20;
24
24
  border-top: 1px solid $primary-90;
25
25
  z-index: 99;
26
+ transition: 0.3s ease-in-out;
26
27
  }
27
28
 
28
29
  .footer-left,
@@ -31,4 +32,9 @@
31
32
  align-items: center;
32
33
  gap: 32px;
33
34
  }
35
+ .sidebar-collapsed {
36
+ .footer-area {
37
+ width: calc(100% - 60px);
38
+ }
39
+ }
34
40
  </style>
@@ -9,7 +9,7 @@ import {
9
9
  watch,
10
10
  } from "vue";
11
11
  import type { Ref } from "vue";
12
- import type { TaskLog } from "../../types/longRunningTasks";
12
+ // import type { TaskLog } from "../../types/longRunningTasks";
13
13
  import type { Notification } from "../../types/notification";
14
14
 
15
15
  const NotificationItem = defineAsyncComponent(
@@ -48,7 +48,7 @@ async function subscribeToNotifcations() {
48
48
  for await (const msg of subscription) {
49
49
  console.log("notifications ===>");
50
50
  console.log({ data: StringCodec().decode(msg.data) });
51
- const log: TaskLog = JSON.parse(StringCodec().decode(msg.data));
51
+ const log = JSON.parse(StringCodec().decode(msg.data));
52
52
  console.log({ log });
53
53
  const currentTime = new Date().getTime();
54
54
  addNewNotification({