@kumologica/sdk 3.4.0 → 3.5.0-beta2

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