@kumologica/sdk 3.4.0 → 3.5.0-beta10

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 (52) hide show
  1. package/cli/commands/create-commands/openapi.js +42 -0
  2. package/cli/commands/create.js +17 -8
  3. package/cli/commands/login.js +87 -0
  4. package/cli/commands/open.js +43 -2
  5. package/package.json +17 -6
  6. package/src/app/lib/ai/layout.js +75 -0
  7. package/src/app/lib/ai/openai.js +108 -0
  8. package/src/app/lib/ai/prompt.txt +583 -0
  9. package/src/app/lib/aws/ca-cloudwatch-api.js +2 -10
  10. package/src/app/lib/aws/ca-dynamodb-api.js +6 -10
  11. package/src/app/lib/aws/ca-elb-api.js +4 -24
  12. package/src/app/lib/aws/ca-events-api.js +5 -12
  13. package/src/app/lib/aws/ca-iot-api.js +3 -87
  14. package/src/app/lib/aws/ca-s3-api.js +17 -62
  15. package/src/app/lib/aws/ca-sns-api.js +6 -15
  16. package/src/app/lib/aws/ca-sqs-api.js +9 -6
  17. package/src/app/lib/aws/index.js +71 -86
  18. package/src/app/lib/aws/kl-apigw-api.js +40 -0
  19. package/src/app/lib/aws/kl-iam-api.js +5 -5
  20. package/src/app/lib/github/index.js +2 -17
  21. package/src/app/lib/serverless/index.js +10 -18
  22. package/src/app/lib/stores/settings-cloud-store.js +35 -2
  23. package/src/app/main.js +34 -32
  24. package/src/app/preload.js +36 -28
  25. package/src/app/ui/editor-client/public/red/red.js +926 -458
  26. package/src/app/ui/editor-client/public/red/red.min.js +2 -2
  27. package/src/app/ui/editor-client/public/red/style.min.css +1 -1
  28. package/src/app/ui/editor-client/src/js/nodes.js +19 -18
  29. package/src/app/ui/editor-client/src/js/red.js +6 -3
  30. package/src/app/ui/editor-client/src/js/ui/editor.js +70 -70
  31. package/src/app/ui/editor-client/src/js/ui/footer.js +145 -0
  32. package/src/app/ui/editor-client/src/js/ui/search.js +43 -34
  33. package/src/app/ui/editor-client/src/js/ui/sidebar.js +26 -24
  34. package/src/app/ui/editor-client/src/js/ui/signup.js +56 -0
  35. package/src/app/ui/editor-client/src/js/ui/tab-ai.js +210 -0
  36. package/src/app/ui/editor-client/src/js/ui/tab-awsDeploy.js +30 -5
  37. package/src/app/ui/editor-client/src/js/ui/tab-test.js +120 -99
  38. package/src/app/ui/editor-client/src/js/ui/update-panel.js +0 -1
  39. package/src/app/ui/editor-client/src/js/ui/view.js +201 -202
  40. package/src/app/ui/editor-client/src/sass/editor.scss +714 -645
  41. package/src/app/ui/editor-client/src/sass/sidebar.scss +21 -12
  42. package/src/app/ui/editor-client/src/sass/style.scss +101 -0
  43. package/src/app/ui/editor-client/src/sass/tab-ai.scss +68 -0
  44. package/src/app/ui/editor-client/src/sass/workspace.scss +12 -2
  45. package/src/app/ui/editor-client/templates/index.mst +45 -11
  46. package/src/server/DesignerServer.js +2 -1
  47. package/cli/.DS_Store +0 -0
  48. package/fixtures/.DS_Store +0 -0
  49. package/src/app/lib/aws/ca-apigw-api.js +0 -216
  50. package/src/app/lib/aws/ca-codecommit-api.js +0 -63
  51. package/src/app/lib/aws/kl-rekognition-api.js +0 -66
  52. package/src/app/lib/aws/kl-ssm-api.js +0 -24
@@ -17,42 +17,44 @@
17
17
  .flex {
18
18
  display: flex;
19
19
  }
20
+
20
21
  .flex-row {
21
22
  flex-direction: row;
22
23
  }
24
+
23
25
  .flex-col {
24
26
  flex-direction: column;
25
27
  }
26
-
27
- .sidebar-title-wrapper {
28
- font-size: 14px;
29
- font-weight: 600;
30
- display: flex;
31
- padding: 12px 0px 18px 13px;
32
- }
28
+
29
+ .sidebar-title-wrapper {
30
+ font-size: 14px;
31
+ font-weight: 600;
32
+ display: flex;
33
+ padding: 12px 0px 18px 13px;
34
+ }
33
35
 
34
36
  .mr-5 {
35
37
  margin-right: 5px;
36
38
  }
37
39
 
38
40
  .md-option {
39
- height: 25px !important;
40
- line-height: 0 !important;
41
- padding: 0 8px !important;
41
+ height: 25px !important;
42
+ line-height: 0 !important;
43
+ padding: 0 8px !important;
42
44
  }
43
45
 
44
- .editor-tray-body-wrapper {
45
- height: 100%;
46
- }
46
+ .editor-tray-body-wrapper {
47
+ height: 100%;
48
+ }
47
49
 
48
50
 
49
- #editor-tray {
50
- width: 100% !important;
51
- }
51
+ #editor-tray {
52
+ width: 100% !important;
53
+ }
52
54
 
53
- #editorContent {
54
- width: 100% !important;
55
- }
55
+ #editorContent {
56
+ width: 100% !important;
57
+ }
56
58
 
57
59
  // General classes
58
60
  .jcfe {
@@ -64,629 +66,696 @@
64
66
  }
65
67
 
66
68
  // Specific to the editor
67
- .buttonSelected {
68
- background: #eee !important;
69
- }
70
-
71
- .kumo-window {
72
- font-size: 0.8rem !important;
73
- padding: 7px 6px;
74
- min-width: 200px;
75
- }
76
-
77
- .kumo-section {
78
- background-color: #f3f3f3;
79
- border-radius: 4px;
80
- padding: 6px 11px;
81
- }
82
-
83
- .kumo-subsection {
84
- margin-top: 15px;
85
- }
86
-
87
- .kumo-section .form-row:not(:first-of-type) {
88
- margin-top: 7px;
89
- }
90
-
91
- .kumo-row-with-margin {
92
- margin-top: 6px;
93
- display:flex;
94
- align-items: center;
95
- justify-content: space-around;
96
- }
97
-
98
- .kumo-section-title {
99
- border-top: 1px solid lightgrey;
100
- padding-top: 7px;
101
- margin-top: 7px;
102
- margin-left: 10px;
103
- margin-bottom: 4px;
104
- color: #605d5d;
105
- font-weight: bold;
106
- letter-spacing: 0.1em;
107
- text-transform: uppercase;
108
- font-size: x-small;
109
- }
110
-
111
- .kumo-section-tips {
112
- margin-top: 20px;
113
- }
114
-
115
- .kumo-tip-icon {
116
- margin-right: 7px;
117
- padding: 10px;
118
- font-size: 20px;
119
- }
120
-
121
- .kumo-row {
122
- clear: both;
123
- color: $form-text-color;
124
- }
125
-
126
- .kumo-section select {
127
- outline: none !important;
128
- }
129
-
130
- .kumo-row-label {
131
- display: inline-block;
132
- width: 20%;
133
- }
134
- .kumo-row-editable {
135
- width: 79%;
136
- }
137
-
138
- .kumo-row-field {
139
- width: 79%;
140
- }
141
-
142
- #editor-stack {
143
- height: 100%;
144
- width: 100%;
145
- // position: absolute;
146
- // margin: 0;
147
- // top: 0;
148
- // bottom: 0px;
149
- // right: 352px;
150
- // width: 0;
151
- // z-index: 5;
152
- }
153
- .editor-tray {
154
- display: flex;
155
- flex-direction: column;
156
- position: absolute;
157
- margin: 0;
158
- top: 0;
159
- width: auto;
160
- right: -1000px;
161
- bottom: 0;
162
- background: #f3f3f3;
163
- border-left: 1px solid $secondary-border-color;
164
- border-bottom: 1px solid $primary-border-color;
165
- box-sizing: content-box;
166
- width: 100% !important;
167
- }
168
- .editor-tray.open {
169
- right: 0;
170
- }
171
- .editor-tray-body-wrapper {
172
- width: 100%;
173
- box-sizing: border-box;
174
- overflow: auto;
175
- }
176
- .editor-tray-body {
177
- display: flex;
178
- position: relative;
179
- box-sizing: border-box;
180
- padding: 0.1px; // prevent margin collapsing
181
- height: 100% !important;
182
- .dialog-form,
183
- #dialog-form,
184
- #node-config-dialog-edit-form {
185
- // margin: 10px;
186
- width:100%;
187
- height: 100%; //calc(100% - 40px);
188
- }
189
- }
190
- .editor-tray-content {
191
- display: flex;
192
- height: 100% !important;
193
- overflow: auto;
194
- position: relative;
195
- .palette_icon_fa {
196
- top: 6px;
197
- left: 4px;
198
- }
199
- }
200
- .editor-tray-header {
201
- @include disable-selection;
202
- display: flex;
203
- position: relative;
204
- box-sizing: border-box;
205
- font-weight: bold;
206
- // border-top: 5px solid #2979ff;
207
- //border-bottom: 1px solid $secondary-border-color;
208
- //background: $palette-header-background;
209
- &:after {
210
- content: '';
211
- display: table;
212
- clear: both;
213
- }
214
- }
215
-
216
- #editor-tray-options {
217
- display: flex;
218
- padding: 0px 0px 0px 12px;
219
- font-size: 12px;
220
- border-bottom: 1px solid lightgrey;
221
- #optionSettings {
222
- //margin-right: 7px;
223
- }
224
- .node-property-option {
225
- padding: 1px 13px;
226
- border-radius: 4px;
227
- cursor: pointer;
228
- position: relative;
229
- top: 1px;
230
- }
231
- .node-property-selected {
232
- font-weight: 500;
233
- border-left: 1px solid lightgrey;
234
- border-right: 1px solid lightgrey;
235
- border-top: 1px solid lightgrey;
236
- border-bottom: 1px solid #f3f3f3;
237
- border-radius: 4px 4px 0px 0px;
238
- }
239
- }
240
- .editor-tray-footer {
241
- // @include component-footer;
242
- // height: 44px;
243
- // position: unset !important;
244
-
245
- // button {
246
- // @include editor-button;
247
- // padding: 3px 7px;
248
- // font-size: 11px;
249
- // }
250
- }
251
-
252
- .editor-tray-toolbar {
253
- display: flex;
254
- justify-content: flex-end;
255
- position: relative;
256
- //top: 9px;
257
- text-align: right;
258
- padding: 6px;
259
-
260
- button {
261
- @include editor-button;
262
- &.toggle {
263
- @include workspace-button-toggle;
264
- }
265
- }
266
- }
267
-
268
- .editor-tray-title-wrapper {
269
- display: flex;
270
- padding: 12px 0px 18px 13px;
271
- }
272
-
273
- .editor-tray-titlebar {
274
- display: flex;
275
- font-size: 14px;
276
- font-weight: 600;
277
- width: 95%;
278
- }
279
-
280
- .editor-tray-wincontrols {
281
- display: flex;
282
- font-size: 14px;
283
- font-weight: 600;
284
- width: 5%;
285
- align-items: center;
286
- justify-content: flex-end;
287
- margin-top: -4px;
288
- margin-right: 13px;
289
- }
290
-
291
- .editor-tray-nodeid {
292
- display: flex;
293
- color: darkgrey;
294
- font-size: 12px;
295
- width: 30%;
296
- justify-content: flex-start;
297
- padding: 13px 13px 18px 13px;
298
- font-family: monospace;
299
- &:hover {
300
- cursor: pointer;
301
- }
302
- }
303
-
304
- .editor-tray-title-options-wrapper{
305
- display:flex;
306
- justify-content: flex-end;
307
- width: 50%;
308
- }
309
-
310
- .editor-tray-breadcrumbs {
311
- font-size: 12px;
312
- list-style-type: none;
313
- margin: 0;
314
- display: flex;
315
- padding: 12px 0px 18px 13px;
316
-
317
- li {
318
- display: inline-block;
319
- padding: 0;
320
- margin: 0;
321
-
322
- &:not(:last-child) {
323
- color: $editor-button-color;
324
- font-weight: normal;
325
-
326
- &:after {
327
- display: inline-block;
328
- content: '>';
329
- margin: 0 5px;
330
- }
331
- }
332
- }
333
- }
334
- .editor-tray-resize-handle {
335
- display: none;
336
- position: absolute;
337
- top: 0px;
338
- bottom: 0px;
339
- width: 7px;
340
- left: -9px;
341
- background: $background-color url(images/grip.png) no-repeat 50% 50%;
342
- cursor: col-resize;
343
- border-left: 1px solid $primary-border-color;
344
- box-shadow: -1px 0 6px rgba(0, 0, 0, 0.1);
345
-
346
- &.editor-tray-resize-maximised {
347
- background: $background-color;
348
- cursor: default;
349
- }
350
- }
351
- .editor-tray-resize-button {
352
- @include workspace-button;
353
- display: block;
354
- height: 37px;
355
- line-height: 35px;
356
- border: none;
357
- border-bottom: 1px solid $secondary-border-color;
358
- margin: 0;
359
- background: $background-color;
360
- color: $workspace-button-color;
361
- }
362
- #palette-shade,
363
- #editor-shade,
364
- #header-shade,
365
- #sidebar-shade {
366
- @include shade;
367
- z-index: 2;
368
- }
369
- #sidebar-shade {
370
- left: -8px;
371
- top: -1px;
372
- bottom: -1px;
373
- }
374
- #full-shade {
375
- @include shade;
376
- z-index: 15;
377
- }
378
-
379
- .dialog-form,
380
- #dialog-form,
381
- #node-config-dialog-edit-form {
382
- height: 100%;
383
- }
384
-
385
- .input-error {
386
- border-color: rgb(214, 97, 95) !important;
387
- }
388
-
389
- .form-row {
390
- clear: both;
391
- color: $form-text-color;
392
- }
393
-
394
- .form-row label {
395
- display: inline-block;
396
- width: 20%;
397
- }
398
- .form-row input,
399
- .form-row div[contenteditable='true'] {
400
- width: 79%;
401
- }
402
-
403
- .form-tips {
404
- display: flex;
405
- align-items: center;
406
- color: #9f6000;
407
- background: #feefb3;
408
- padding: 8px;
409
- border-radius: 2px;
410
- border: 1px solid $secondary-border-color;
411
- //max-width: 450px;
412
- }
413
- .form-tips code {
414
- border: none;
415
- padding: auto;
416
- }
417
- .form-tips a {
418
- text-decoration: underline;
419
- }
420
-
421
- .form-warning {
422
- margin-top: 50px;
423
- color: #721c24;
424
- background: #f8d7da;
425
- padding: 8px;
426
- border-radius: 2px;
427
- border-left: 6px solid !important;
428
- border: 1px solid #f5c6cb;
429
- max-width: 450px;
430
- }
431
-
432
-
433
- .node-text-editor {
434
- position: relative;
435
- .node-text-editor-help {
436
- position: absolute;
437
- bottom: 9px;
438
- right: 1px;
439
- border-bottom-right-radius: 5px;
440
- z-index: 8;
441
- border-bottom: none;
442
- border-right: none;
443
- }
444
- }
445
- .node-text-editor-container {
446
- border: 1px solid #ccc;
447
- border-radius: 5px;
448
- overflow: hidden;
449
- font-size: 14px !important;
450
- font-family: Menlo, Consolas, 'DejaVu Sans Mono', Courier, monospace !important;
451
- height: 100%;
452
-
453
- &.node-text-editor-container-toolbar {
454
- height: calc(100% - 40px);
455
- }
456
- }
457
-
458
- .editor-button {
459
- @include workspace-button;
460
- height: 34px;
461
- line-height: 32px;
462
- font-size: 13px;
463
- border-radius: 2px;
464
- padding: 0 10px;
465
- white-space: nowrap;
466
- text-overflow: ellipsis;
467
- &.toggle {
468
- @include workspace-button-toggle;
469
- }
470
- }
471
-
472
- .editor-button-small {
473
- height: 20px;
474
- min-width: 20px;
475
- line-height: 18px;
476
- font-size: 12px;
477
- border-radius: 2px;
478
- padding: 0 5px;
479
- }
480
-
481
- #node-config-dialog-scope-container {
482
- cursor: auto;
483
- float: right;
484
- font-size: 12px !important;
485
- line-height: 35px;
486
- }
487
- #node-config-dialog-scope-warning {
488
- display: inline-block;
489
- margin-right: 5px;
490
- color: #ad1625;
491
- vertical-align: middle;
492
- }
493
- #node-config-dialog-scope {
494
- margin: 1px 0 0 0;
495
- padding: 0;
496
- height: 22px;
497
- width: 200px;
498
- }
499
- #node-config-dialog-user-count {
500
- vertical-align: middle;
501
- display: inline-block;
502
- margin-right: 20px;
503
- float: left;
504
- font-size: 12px;
505
- line-height: 35px;
506
- }
507
- .node-input-expression-editor #dialog-form {
508
- margin: 0;
509
- height: 100%;
510
- .red-ui-panel {
511
- &:first-child {
512
- padding: 20px 20px 0;
513
- }
514
- &:last-child {
515
- padding-bottom: 20px;
516
- }
517
- }
518
- }
519
- .node-input-expression-tab-content {
520
- position: relative;
521
- padding: 0 20px;
522
- }
523
-
524
- #node-input-expression-help {
525
- position: absolute;
526
- top: 35px;
527
- left: 0;
528
- right: 0;
529
- bottom: 0;
530
- padding: 0 20px;
531
- overflow: auto;
532
- box-sizing: border-box;
533
- }
534
- #node-input-expression-panel-info {
535
- & > .form-row {
536
- margin: 0;
537
- & > div:first-child {
538
- margin-top: 10px;
539
- }
540
- }
541
- }
542
- .node-input-expression-legacy,
543
- .node-input-buffer-type {
544
- font-size: 0.8em;
545
- float: left;
546
- cursor: pointer;
547
- border: 1px solid white;
548
- padding: 2px 5px;
549
- border-radius: 2px;
550
- &:hover {
551
- border-color: $form-input-border-color;
552
- }
553
- }
554
- .node-input-buffer-type {
555
- float: none;
556
- text-align: right;
557
- }
558
- .node-input-markdown-editor #dialog-form {
559
- margin: 0;
560
- height: 100%;
561
- .red-ui-panel {
562
- padding: 20px 20px 10px;
563
- &:last-child {
564
- padding-top: 60px;
565
- background: #f9f9f9;
566
- }
567
- }
568
- }
569
- .node-input-markdown-panel-preview {
570
- padding: 10px;
571
- border: 1px solid #ccc;
572
- border-radius: 5px;
573
- height: calc(100% - 21px);
574
- overflow-y: scroll;
575
- background: #fff;
576
- }
577
-
578
- #clipboard-hidden {
579
- display:none;
580
- position: absolute;
581
- top: -3000px;
582
- }
583
- .node-label-form-row {
584
- margin: 5px 0 0 50px;
585
- label {
586
- margin-right: 20px;
587
- text-align: right;
588
- width: 30px;
589
- }
590
- button {
591
- margin-left: 10px;
592
- }
593
- input {
594
- width: calc(100% - 100px);
595
- }
596
- #node-settings-icon-module {
597
- width: calc(55% - 50px);
598
- }
599
- #node-settings-icon-file {
600
- width: calc(45% - 55px);
601
- margin-left: 5px;
602
- }
603
- }
604
- .node-label-form-none {
605
- span {
606
- padding-left: 50px;
607
- width: 100px;
608
- color: #999;
609
- }
610
- }
611
-
612
- .ace_read-only {
613
- background: #eee !important;
614
- .ace_cursor {
615
- color: transparent !important;
616
- }
617
- }
618
- #node-settings-icon-button {
619
- position: relative;
620
- padding-left: 30px;
621
- width: calc(100% - 150px);
622
- .red-ui-search-result-node {
623
- position: absolute;
624
- top: 2px;
625
- left: 2px;
626
- }
627
- }
628
- #node-settings-icon {
629
- margin-left: 10px;
630
- width: calc(100% - 163px);
631
- }
632
- .red-ui-icon-picker {
633
- position: absolute;
634
- border: 1px solid $primary-border-color;
635
- box-shadow: 0 1px 6px -3px black;
636
- background: white;
637
- z-index: 21;
638
- display: none;
639
- select {
640
- box-sizing: border-box;
641
- margin: 3px;
642
- width: calc(100% - 6px);
643
- }
644
- }
645
- .red-ui-icon-list {
646
- width: 308px;
647
- height: 200px;
648
- overflow-y: scroll;
649
- line-height: 0px;
650
- }
651
- .red-ui-icon-list-icon {
652
- display: inline-block;
653
- margin: 2px;
654
- padding: 4px;
655
- cursor: pointer;
656
- border-radius: 4px;
657
- &:hover {
658
- background: lighten($node-selected-color, 20%);
659
- }
660
- &.selected {
661
- background: lighten($node-selected-color, 20%);
662
- .red-ui-search-result-node {
663
- border-color: white;
664
- }
665
- }
666
- .palette_icon_fa {
667
- top: 6px;
668
- left: 3px;
669
- }
670
- }
671
- .red-ui-icon-list-module {
672
- background: $palette-header-background;
673
- font-size: 0.9em;
674
- padding: 3px;
675
- color: #666;
676
- clear: both;
677
- i {
678
- margin-right: 5px;
679
- }
680
- }
681
- .red-ui-icon-meta {
682
- border-top: 1px solid $secondary-border-color;
683
- span {
684
- padding: 4px;
685
- color: #666;
686
- font-size: 0.9em;
687
- }
688
- button {
689
- float: right;
690
- margin: 2px;
691
- }
692
- }
69
+ .buttonSelected {
70
+ background: #eee !important;
71
+ }
72
+
73
+ .kumo-window {
74
+ font-size: 0.8rem !important;
75
+ padding: 7px 6px;
76
+ min-width: 200px;
77
+ }
78
+
79
+ .kumo-section {
80
+ background-color: #f3f3f3;
81
+ border-radius: 4px;
82
+ padding: 6px 11px;
83
+ }
84
+
85
+ .kumo-subsection {
86
+ margin-top: 15px;
87
+ }
88
+
89
+ .kumo-section .form-row:not(:first-of-type) {
90
+ margin-top: 7px;
91
+ }
92
+
93
+ .kumo-row-with-margin {
94
+ margin-top: 6px;
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: space-around;
98
+ }
99
+
100
+ .kumo-section-title {
101
+ border-top: 1px solid lightgrey;
102
+ padding-top: 7px;
103
+ margin-top: 7px;
104
+ margin-left: 10px;
105
+ margin-bottom: 4px;
106
+ color: #605d5d;
107
+ font-weight: bold;
108
+ letter-spacing: 0.1em;
109
+ text-transform: uppercase;
110
+ font-size: x-small;
111
+ }
112
+
113
+ .kumo-section-tips {
114
+ margin-top: 20px;
115
+ }
116
+
117
+ .kumo-tip-icon {
118
+ margin-right: 7px;
119
+ padding: 10px;
120
+ font-size: 20px;
121
+ }
122
+
123
+ .kumo-row {
124
+ clear: both;
125
+ color: $form-text-color;
126
+ }
127
+
128
+ .kumo-section select {
129
+ outline: none !important;
130
+ }
131
+
132
+ .kumo-row-label {
133
+ display: inline-block;
134
+ width: 20%;
135
+ }
136
+
137
+ .kumo-row-editable {
138
+ width: 79%;
139
+ }
140
+
141
+ .kumo-row-field {
142
+ width: 79%;
143
+ }
144
+
145
+ #editor-stack {
146
+ height: 100%;
147
+ width: 100%;
148
+ // position: absolute;
149
+ // margin: 0;
150
+ // top: 0;
151
+ // bottom: 0px;
152
+ // right: 352px;
153
+ // width: 0;
154
+ // z-index: 5;
155
+ }
156
+
157
+ .editor-tray {
158
+ display: flex;
159
+ flex-direction: column;
160
+ position: absolute;
161
+ margin: 0;
162
+ top: 0;
163
+ width: auto;
164
+ right: -1000px;
165
+ bottom: 0;
166
+ background: #f3f3f3;
167
+ border-left: 1px solid $secondary-border-color;
168
+ border-bottom: 1px solid $primary-border-color;
169
+ box-sizing: content-box;
170
+ width: 100% !important;
171
+ }
172
+
173
+ .editor-tray.open {
174
+ right: 0;
175
+ }
176
+
177
+ .editor-tray-body-wrapper {
178
+ width: 100%;
179
+ box-sizing: border-box;
180
+ overflow-y: auto !important;
181
+ }
182
+
183
+ .editor-tray-body {
184
+ display: flex;
185
+ position: relative;
186
+ box-sizing: border-box;
187
+ padding: 0.1px; // prevent margin collapsing
188
+ height: 100% !important;
189
+
190
+ .dialog-form,
191
+ #dialog-form,
192
+ #node-config-dialog-edit-form {
193
+ // margin: 10px;
194
+ width: 100%;
195
+ height: 100%; //calc(100% - 40px);
196
+ }
197
+ }
198
+
199
+ .editor-tray-content {
200
+ display: flex;
201
+ height: 100% !important;
202
+ overflow: auto;
203
+ position: relative;
204
+
205
+ .palette_icon_fa {
206
+ top: 6px;
207
+ left: 4px;
208
+ }
209
+ }
210
+
211
+ .editor-tray-header {
212
+ @include disable-selection;
213
+ display: flex;
214
+ position: relative;
215
+ box-sizing: border-box;
216
+ font-weight: bold;
217
+
218
+ // border-top: 5px solid #2979ff;
219
+ //border-bottom: 1px solid $secondary-border-color;
220
+ //background: $palette-header-background;
221
+ &:after {
222
+ content: '';
223
+ display: table;
224
+ clear: both;
225
+ }
226
+ }
227
+
228
+ #editor-tray-options {
229
+ display: flex;
230
+ padding: 0px 0px 0px 12px;
231
+ font-size: 12px;
232
+ border-bottom: 1px solid lightgrey;
233
+
234
+ #optionSettings {
235
+ //margin-right: 7px;
236
+ }
237
+
238
+ .node-property-option {
239
+ padding: 1px 13px;
240
+ border-radius: 4px;
241
+ cursor: pointer;
242
+ position: relative;
243
+ top: 1px;
244
+ }
245
+
246
+ .node-property-selected {
247
+ font-weight: 500;
248
+ border-left: 1px solid lightgrey;
249
+ border-right: 1px solid lightgrey;
250
+ border-top: 1px solid lightgrey;
251
+ border-bottom: 1px solid #f3f3f3;
252
+ border-radius: 4px 4px 0px 0px;
253
+ }
254
+ }
255
+
256
+ .editor-tray-footer {
257
+ // @include component-footer;
258
+ // height: 44px;
259
+ // position: unset !important;
260
+
261
+ // button {
262
+ // @include editor-button;
263
+ // padding: 3px 7px;
264
+ // font-size: 11px;
265
+ // }
266
+ }
267
+
268
+ .editor-tray-toolbar {
269
+ display: flex;
270
+ justify-content: flex-end;
271
+ position: relative;
272
+ //top: 9px;
273
+ text-align: right;
274
+ padding: 6px;
275
+
276
+ button {
277
+ @include editor-button;
278
+
279
+ &.toggle {
280
+ @include workspace-button-toggle;
281
+ }
282
+ }
283
+ }
284
+
285
+ .editor-tray-title-wrapper {
286
+ display: flex;
287
+ padding: 12px 0px 18px 13px;
288
+ }
289
+
290
+ .editor-tray-titlebar {
291
+ display: flex;
292
+ font-size: 14px;
293
+ font-weight: 600;
294
+ width: 95%;
295
+ }
296
+
297
+ .editor-tray-wincontrols {
298
+ display: flex;
299
+ font-size: 14px;
300
+ font-weight: 600;
301
+ width: 5%;
302
+ align-items: center;
303
+ justify-content: flex-end;
304
+ margin-top: -4px;
305
+ margin-right: 13px;
306
+ }
307
+
308
+ .editor-tray-nodeid {
309
+ display: flex;
310
+ color: darkgrey;
311
+ font-size: 12px;
312
+ width: 30%;
313
+ justify-content: flex-start;
314
+ padding: 13px 13px 18px 13px;
315
+ font-family: monospace;
316
+
317
+ &:hover {
318
+ cursor: pointer;
319
+ }
320
+ }
321
+
322
+ .editor-tray-title-options-wrapper {
323
+ display: flex;
324
+ justify-content: flex-end;
325
+ width: 50%;
326
+ }
327
+
328
+ .editor-tray-breadcrumbs {
329
+ font-size: 12px;
330
+ list-style-type: none;
331
+ margin: 0;
332
+ display: flex;
333
+ padding: 12px 0px 18px 13px;
334
+
335
+ li {
336
+ display: inline-block;
337
+ padding: 0;
338
+ margin: 0;
339
+
340
+ &:not(:last-child) {
341
+ color: $editor-button-color;
342
+ font-weight: normal;
343
+
344
+ &:after {
345
+ display: inline-block;
346
+ content: '>';
347
+ margin: 0 5px;
348
+ }
349
+ }
350
+ }
351
+ }
352
+
353
+ .editor-tray-resize-handle {
354
+ display: none;
355
+ position: absolute;
356
+ top: 0px;
357
+ bottom: 0px;
358
+ width: 7px;
359
+ left: -9px;
360
+ background: $background-color url(images/grip.png) no-repeat 50% 50%;
361
+ cursor: col-resize;
362
+ border-left: 1px solid $primary-border-color;
363
+ box-shadow: -1px 0 6px rgba(0, 0, 0, 0.1);
364
+
365
+ &.editor-tray-resize-maximised {
366
+ background: $background-color;
367
+ cursor: default;
368
+ }
369
+ }
370
+
371
+ .editor-tray-resize-button {
372
+ @include workspace-button;
373
+ display: block;
374
+ height: 37px;
375
+ line-height: 35px;
376
+ border: none;
377
+ border-bottom: 1px solid $secondary-border-color;
378
+ margin: 0;
379
+ background: $background-color;
380
+ color: $workspace-button-color;
381
+ }
382
+
383
+ #palette-shade,
384
+ #editor-shade,
385
+ #header-shade,
386
+ #sidebar-shade {
387
+ @include shade;
388
+ z-index: 2;
389
+ }
390
+
391
+ #sidebar-shade {
392
+ left: -8px;
393
+ top: -1px;
394
+ bottom: -1px;
395
+ }
396
+
397
+ #full-shade {
398
+ @include shade;
399
+ z-index: 15;
400
+ }
401
+
402
+ .dialog-form,
403
+ #dialog-form,
404
+ #node-config-dialog-edit-form {
405
+ height: 100%;
406
+ }
407
+
408
+ .input-error {
409
+ border-color: rgb(214, 97, 95) !important;
410
+ }
411
+
412
+ .form-row {
413
+ clear: both;
414
+ color: $form-text-color;
415
+ }
416
+
417
+ .form-row label {
418
+ display: inline-block;
419
+ width: 20%;
420
+ }
421
+
422
+ .form-row input,
423
+ .form-row div[contenteditable='true'] {
424
+ width: 79%;
425
+ }
426
+
427
+ .form-tips {
428
+ display: flex;
429
+ align-items: center;
430
+ color: #9f6000;
431
+ background: #feefb3;
432
+ padding: 8px;
433
+ border-radius: 2px;
434
+ border: 1px solid $secondary-border-color;
435
+ //max-width: 450px;
436
+ }
437
+
438
+ .form-tips code {
439
+ border: none;
440
+ padding: auto;
441
+ }
442
+
443
+ .form-tips a {
444
+ text-decoration: underline;
445
+ }
446
+
447
+ .form-warning {
448
+ margin-top: 50px;
449
+ color: #721c24;
450
+ background: #f8d7da;
451
+ padding: 8px;
452
+ border-radius: 2px;
453
+ border-left: 6px solid !important;
454
+ border: 1px solid #f5c6cb;
455
+ max-width: 450px;
456
+ }
457
+
458
+
459
+ .node-text-editor {
460
+ position: relative;
461
+
462
+ .node-text-editor-help {
463
+ position: absolute;
464
+ bottom: 9px;
465
+ right: 1px;
466
+ border-bottom-right-radius: 5px;
467
+ z-index: 8;
468
+ border-bottom: none;
469
+ border-right: none;
470
+ }
471
+ }
472
+
473
+ .node-text-editor-container {
474
+ border: 1px solid #ccc;
475
+ border-radius: 5px;
476
+ overflow: hidden;
477
+ font-size: 14px !important;
478
+ font-family: Menlo, Consolas, 'DejaVu Sans Mono', Courier, monospace !important;
479
+ height: 100%;
480
+
481
+ &.node-text-editor-container-toolbar {
482
+ height: calc(100% - 40px);
483
+ }
484
+ }
485
+
486
+ .editor-button {
487
+ @include workspace-button;
488
+ height: 34px;
489
+ line-height: 32px;
490
+ font-size: 13px;
491
+ border-radius: 2px;
492
+ padding: 0 10px;
493
+ white-space: nowrap;
494
+ text-overflow: ellipsis;
495
+
496
+ &.toggle {
497
+ @include workspace-button-toggle;
498
+ }
499
+ }
500
+
501
+ .editor-button-small {
502
+ height: 20px;
503
+ min-width: 20px;
504
+ line-height: 18px;
505
+ font-size: 12px;
506
+ border-radius: 2px;
507
+ padding: 0 5px;
508
+ }
509
+
510
+ #node-config-dialog-scope-container {
511
+ cursor: auto;
512
+ float: right;
513
+ font-size: 12px !important;
514
+ line-height: 35px;
515
+ }
516
+
517
+ #node-config-dialog-scope-warning {
518
+ display: inline-block;
519
+ margin-right: 5px;
520
+ color: #ad1625;
521
+ vertical-align: middle;
522
+ }
523
+
524
+ #node-config-dialog-scope {
525
+ margin: 1px 0 0 0;
526
+ padding: 0;
527
+ height: 22px;
528
+ width: 200px;
529
+ }
530
+
531
+ #node-config-dialog-user-count {
532
+ vertical-align: middle;
533
+ display: inline-block;
534
+ margin-right: 20px;
535
+ float: left;
536
+ font-size: 12px;
537
+ line-height: 35px;
538
+ }
539
+
540
+ .node-input-expression-editor #dialog-form {
541
+ margin: 0;
542
+ height: 100%;
543
+
544
+ .red-ui-panel {
545
+ &:first-child {
546
+ padding: 20px 20px 0;
547
+ }
548
+
549
+ &:last-child {
550
+ padding-bottom: 20px;
551
+ }
552
+ }
553
+ }
554
+
555
+ .node-input-expression-tab-content {
556
+ position: relative;
557
+ padding: 0 20px;
558
+ }
559
+
560
+ #node-input-expression-help {
561
+ position: absolute;
562
+ top: 35px;
563
+ left: 0;
564
+ right: 0;
565
+ bottom: 0;
566
+ padding: 0 20px;
567
+ overflow: auto;
568
+ box-sizing: border-box;
569
+ }
570
+
571
+ #node-input-expression-panel-info {
572
+ &>.form-row {
573
+ margin: 0;
574
+
575
+ &>div:first-child {
576
+ margin-top: 10px;
577
+ }
578
+ }
579
+ }
580
+
581
+ .node-input-expression-legacy,
582
+ .node-input-buffer-type {
583
+ font-size: 0.8em;
584
+ float: left;
585
+ cursor: pointer;
586
+ border: 1px solid white;
587
+ padding: 2px 5px;
588
+ border-radius: 2px;
589
+
590
+ &:hover {
591
+ border-color: $form-input-border-color;
592
+ }
593
+ }
594
+
595
+ .node-input-buffer-type {
596
+ float: none;
597
+ text-align: right;
598
+ }
599
+
600
+ .node-input-markdown-editor #dialog-form {
601
+ margin: 0;
602
+ height: 100%;
603
+
604
+ .red-ui-panel {
605
+ padding: 20px 20px 10px;
606
+
607
+ &:last-child {
608
+ padding-top: 60px;
609
+ background: #f9f9f9;
610
+ }
611
+ }
612
+ }
613
+
614
+ .node-input-markdown-panel-preview {
615
+ padding: 10px;
616
+ border: 1px solid #ccc;
617
+ border-radius: 5px;
618
+ height: calc(100% - 21px);
619
+ overflow-y: scroll;
620
+ background: #fff;
621
+ }
622
+
623
+ #clipboard-hidden {
624
+ display: none;
625
+ position: absolute;
626
+ top: -3000px;
627
+ }
628
+
629
+ .node-label-form-row {
630
+ margin: 5px 0 0 50px;
631
+
632
+ label {
633
+ margin-right: 20px;
634
+ text-align: right;
635
+ width: 30px;
636
+ }
637
+
638
+ button {
639
+ margin-left: 10px;
640
+ }
641
+
642
+ input {
643
+ width: calc(100% - 100px);
644
+ }
645
+
646
+ #node-settings-icon-module {
647
+ width: calc(55% - 50px);
648
+ }
649
+
650
+ #node-settings-icon-file {
651
+ width: calc(45% - 55px);
652
+ margin-left: 5px;
653
+ }
654
+ }
655
+
656
+ .node-label-form-none {
657
+ span {
658
+ padding-left: 50px;
659
+ width: 100px;
660
+ color: #999;
661
+ }
662
+ }
663
+
664
+ .ace_read-only {
665
+ background: #eee !important;
666
+
667
+ .ace_cursor {
668
+ color: transparent !important;
669
+ }
670
+ }
671
+
672
+ #node-settings-icon-button {
673
+ position: relative;
674
+ padding-left: 30px;
675
+ width: calc(100% - 150px);
676
+
677
+ .red-ui-search-result-node {
678
+ position: absolute;
679
+ top: 2px;
680
+ left: 2px;
681
+ }
682
+ }
683
+
684
+ #node-settings-icon {
685
+ margin-left: 10px;
686
+ width: calc(100% - 163px);
687
+ }
688
+
689
+ .red-ui-icon-picker {
690
+ position: absolute;
691
+ border: 1px solid $primary-border-color;
692
+ box-shadow: 0 1px 6px -3px black;
693
+ background: white;
694
+ z-index: 21;
695
+ display: none;
696
+
697
+ select {
698
+ box-sizing: border-box;
699
+ margin: 3px;
700
+ width: calc(100% - 6px);
701
+ }
702
+ }
703
+
704
+ .red-ui-icon-list {
705
+ width: 308px;
706
+ height: 200px;
707
+ overflow-y: scroll;
708
+ line-height: 0px;
709
+ }
710
+
711
+ .red-ui-icon-list-icon {
712
+ display: inline-block;
713
+ margin: 2px;
714
+ padding: 4px;
715
+ cursor: pointer;
716
+ border-radius: 4px;
717
+
718
+ &:hover {
719
+ background: lighten($node-selected-color, 20%);
720
+ }
721
+
722
+ &.selected {
723
+ background: lighten($node-selected-color, 20%);
724
+
725
+ .red-ui-search-result-node {
726
+ border-color: white;
727
+ }
728
+ }
729
+
730
+ .palette_icon_fa {
731
+ top: 6px;
732
+ left: 3px;
733
+ }
734
+ }
735
+
736
+ .red-ui-icon-list-module {
737
+ background: $palette-header-background;
738
+ font-size: 0.9em;
739
+ padding: 3px;
740
+ color: #666;
741
+ clear: both;
742
+
743
+ i {
744
+ margin-right: 5px;
745
+ }
746
+ }
747
+
748
+ .red-ui-icon-meta {
749
+ border-top: 1px solid $secondary-border-color;
750
+
751
+ span {
752
+ padding: 4px;
753
+ color: #666;
754
+ font-size: 0.9em;
755
+ }
756
+
757
+ button {
758
+ float: right;
759
+ margin: 2px;
760
+ }
761
+ }