datajunction-ui 0.0.1-a1 → 0.0.1-a100

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 (110) hide show
  1. package/Makefile +7 -1
  2. package/package.json +18 -7
  3. package/public/index.html +1 -1
  4. package/src/app/components/AddNodeDropdown.jsx +44 -0
  5. package/src/app/components/ListGroupItem.jsx +2 -1
  6. package/src/app/components/NodeListActions.jsx +69 -0
  7. package/src/app/components/NodeMaterializationDelete.jsx +80 -0
  8. package/src/app/components/QueryInfo.jsx +96 -1
  9. package/src/app/components/Search.jsx +94 -0
  10. package/src/app/components/__tests__/NodeListActions.test.jsx +94 -0
  11. package/src/app/components/__tests__/Search.test.jsx +63 -0
  12. package/src/app/components/__tests__/__snapshots__/ListGroupItem.test.tsx.snap +5 -3
  13. package/src/app/components/djgraph/Collapse.jsx +3 -2
  14. package/src/app/components/djgraph/DJNode.jsx +1 -1
  15. package/src/app/components/djgraph/DJNodeColumns.jsx +5 -1
  16. package/src/app/components/djgraph/LayoutFlow.jsx +5 -3
  17. package/src/app/components/forms/Action.jsx +8 -0
  18. package/src/app/components/forms/NodeNameField.jsx +64 -0
  19. package/src/app/components/search.css +17 -0
  20. package/src/app/icons/AddItemIcon.jsx +16 -0
  21. package/src/app/icons/CommitIcon.jsx +45 -0
  22. package/src/app/icons/DiffIcon.jsx +63 -0
  23. package/src/app/icons/EyeIcon.jsx +20 -0
  24. package/src/app/icons/FilterIcon.jsx +7 -0
  25. package/src/app/icons/JupyterExportIcon.jsx +25 -0
  26. package/src/app/icons/LoadingIcon.jsx +10 -10
  27. package/src/app/icons/PythonIcon.jsx +6 -44
  28. package/src/app/index.tsx +24 -0
  29. package/src/app/pages/AddEditNodePage/AlertMessage.jsx +10 -0
  30. package/src/app/pages/AddEditNodePage/ColumnsSelect.jsx +84 -0
  31. package/src/app/pages/AddEditNodePage/DescriptionField.jsx +17 -0
  32. package/src/app/pages/AddEditNodePage/DisplayNameField.jsx +16 -0
  33. package/src/app/pages/AddEditNodePage/FormikSelect.jsx +5 -0
  34. package/src/app/pages/AddEditNodePage/FullNameField.jsx +3 -2
  35. package/src/app/pages/AddEditNodePage/Loadable.jsx +6 -2
  36. package/src/app/pages/AddEditNodePage/MetricMetadataFields.jsx +75 -0
  37. package/src/app/pages/AddEditNodePage/MetricQueryField.jsx +71 -0
  38. package/src/app/pages/AddEditNodePage/NamespaceField.jsx +40 -0
  39. package/src/app/pages/AddEditNodePage/NodeModeField.jsx +14 -0
  40. package/src/app/pages/AddEditNodePage/NodeQueryField.jsx +8 -3
  41. package/src/app/pages/AddEditNodePage/RequiredDimensionsSelect.jsx +54 -0
  42. package/src/app/pages/AddEditNodePage/TagsField.jsx +47 -0
  43. package/src/app/pages/AddEditNodePage/UpstreamNodeField.jsx +49 -0
  44. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormFailed.test.jsx +15 -9
  45. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormSuccess.test.jsx +167 -24
  46. package/src/app/pages/AddEditNodePage/__tests__/index.test.jsx +55 -25
  47. package/src/app/pages/AddEditNodePage/index.jsx +275 -194
  48. package/src/app/pages/CubeBuilderPage/DimensionsSelect.jsx +154 -0
  49. package/src/app/pages/CubeBuilderPage/Loadable.jsx +16 -0
  50. package/src/app/pages/CubeBuilderPage/MetricsSelect.jsx +77 -0
  51. package/src/app/pages/CubeBuilderPage/__tests__/index.test.jsx +405 -0
  52. package/src/app/pages/CubeBuilderPage/index.jsx +267 -0
  53. package/src/app/pages/NamespacePage/AddNamespacePopover.jsx +5 -5
  54. package/src/app/pages/NamespacePage/Explorer.jsx +6 -2
  55. package/src/app/pages/NamespacePage/FieldControl.jsx +21 -0
  56. package/src/app/pages/NamespacePage/NodeTypeSelect.jsx +30 -0
  57. package/src/app/pages/NamespacePage/TagSelect.jsx +44 -0
  58. package/src/app/pages/NamespacePage/UserSelect.jsx +47 -0
  59. package/src/app/pages/NamespacePage/__tests__/index.test.jsx +98 -19
  60. package/src/app/pages/NamespacePage/index.jsx +272 -89
  61. package/src/app/pages/NodePage/AddBackfillPopover.jsx +61 -61
  62. package/src/app/pages/NodePage/AddMaterializationPopover.jsx +104 -51
  63. package/src/app/pages/NodePage/ClientCodePopover.jsx +73 -25
  64. package/src/app/pages/NodePage/DimensionFilter.jsx +86 -0
  65. package/src/app/pages/NodePage/EditColumnDescriptionPopover.jsx +116 -0
  66. package/src/app/pages/NodePage/LinkDimensionPopover.jsx +38 -23
  67. package/src/app/pages/NodePage/MaterializationConfigField.jsx +60 -0
  68. package/src/app/pages/NodePage/NodeColumnTab.jsx +183 -113
  69. package/src/app/pages/NodePage/NodeDependenciesTab.jsx +153 -0
  70. package/src/app/pages/NodePage/NodeGraphTab.jsx +56 -29
  71. package/src/app/pages/NodePage/NodeHistory.jsx +165 -161
  72. package/src/app/pages/NodePage/NodeInfoTab.jsx +148 -14
  73. package/src/app/pages/NodePage/NodeMaterializationTab.jsx +201 -104
  74. package/src/app/pages/NodePage/NodeStatus.jsx +96 -21
  75. package/src/app/pages/NodePage/NodeValidateTab.jsx +367 -0
  76. package/src/app/pages/NodePage/NotebookDownload.jsx +36 -0
  77. package/src/app/pages/NodePage/PartitionColumnPopover.jsx +3 -5
  78. package/src/app/pages/NodePage/PartitionValueForm.jsx +60 -0
  79. package/src/app/pages/NodePage/RevisionDiff.jsx +209 -0
  80. package/src/app/pages/NodePage/WatchNodeButton.jsx +226 -0
  81. package/src/app/pages/NodePage/__tests__/AddBackfillPopover.test.jsx +13 -4
  82. package/src/app/pages/NodePage/__tests__/AddMaterializationPopover.test.jsx +87 -0
  83. package/src/app/pages/NodePage/__tests__/DimensionFilter.test.jsx +74 -0
  84. package/src/app/pages/NodePage/__tests__/EditColumnDescriptionPopover.test.jsx +149 -0
  85. package/src/app/pages/NodePage/__tests__/LinkDimensionPopover.test.jsx +10 -14
  86. package/src/app/pages/NodePage/__tests__/NodeColumnTab.test.jsx +166 -0
  87. package/src/app/pages/NodePage/__tests__/NodeDependenciesTab.test.jsx +151 -0
  88. package/src/app/pages/NodePage/__tests__/NodeGraphTab.test.jsx +6 -2
  89. package/src/app/pages/NodePage/__tests__/NodeLineageTab.test.jsx +3 -2
  90. package/src/app/pages/NodePage/__tests__/NodeMaterializationTab.test.jsx +148 -0
  91. package/src/app/pages/NodePage/__tests__/NodePage.test.jsx +159 -57
  92. package/src/app/pages/NodePage/__tests__/RevisionDiff.test.jsx +164 -0
  93. package/src/app/pages/NodePage/__tests__/__snapshots__/NodePage.test.jsx.snap +2 -386
  94. package/src/app/pages/NodePage/index.jsx +94 -57
  95. package/src/app/pages/Root/__tests__/index.test.jsx +3 -1
  96. package/src/app/pages/Root/index.tsx +62 -12
  97. package/src/app/services/DJService.js +587 -55
  98. package/src/app/services/__tests__/DJService.test.jsx +382 -45
  99. package/src/index.tsx +1 -0
  100. package/src/mocks/mockNodes.jsx +265 -227
  101. package/src/styles/dag.css +4 -2
  102. package/src/styles/index.css +474 -10
  103. package/src/styles/loading.css +1 -1
  104. package/src/styles/node-creation.scss +84 -5
  105. package/src/styles/node-list.css +4 -0
  106. package/src/styles/sorted-table.css +15 -0
  107. package/src/app/components/DeleteNode.jsx +0 -55
  108. package/src/app/components/__tests__/DeleteNode.test.jsx +0 -53
  109. package/src/app/pages/NodePage/NodeSQLTab.jsx +0 -82
  110. package/src/app/pages/NodePage/__tests__/ClientCodePopover.test.jsx +0 -49
@@ -1,6 +1,7 @@
1
1
  @import url('https://fonts.googleapis.com/css?family=Jost');
2
2
  @import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;600&display=swap');
3
3
  @import url('https://fonts.googleapis.com/css?family=Lato');
4
+ @import url('https://fonts.googleapis.com/css?family=Consolas');
4
5
 
5
6
  body {
6
7
  margin: 0;
@@ -50,6 +51,7 @@ button.nav-link {
50
51
  font: inherit;
51
52
  cursor: pointer;
52
53
  outline: inherit;
54
+ width: max-content;
53
55
  }
54
56
  code {
55
57
  font-family: Consolas, source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
@@ -240,7 +242,7 @@ table {
240
242
  }
241
243
  tr {
242
244
  display: table-row;
243
- vertical-align: inherit;
245
+ vertical-align: top;
244
246
  border-color: inherit;
245
247
  }
246
248
  .card-table {
@@ -287,6 +289,10 @@ tr {
287
289
  grid-gap: 8px;
288
290
  padding: 8px;
289
291
  }
292
+ .table-responsive {
293
+ width: auto;
294
+ grid-template-columns: 200px auto;
295
+ }
290
296
  .table-vertical {
291
297
  display: contents;
292
298
  }
@@ -338,7 +344,7 @@ tr {
338
344
  .table thead th,
339
345
  td,
340
346
  tbody th {
341
- vertical-align: middle;
347
+ vertical-align: top;
342
348
  text-align: left;
343
349
  }
344
350
  .table [data-sort],
@@ -370,6 +376,7 @@ tbody th {
370
376
  border-bottom: 0;
371
377
  padding: 1rem;
372
378
  max-width: 25rem;
379
+ vertical-align: top;
373
380
  }
374
381
  .card-inner-table td,
375
382
  .card-inner-table th {
@@ -453,6 +460,12 @@ tbody th {
453
460
  color: #580076;
454
461
  }
455
462
 
463
+ .node_type__tag {
464
+ font-family: 'Jost';
465
+ color: #5c3b8f;
466
+ background-color: #5c3b8f25 !important;
467
+ }
468
+
456
469
  .node_type__blank {
457
470
  font-family: 'Jost';
458
471
  background-color: #ffffff !important;
@@ -537,6 +550,10 @@ tbody th {
537
550
  font-size: 12px;
538
551
  }
539
552
 
553
+ .dimension_option_subheading:empty {
554
+ display: none;
555
+ }
556
+
540
557
  .upstreams {
541
558
  width: 260px;
542
559
  display: flex;
@@ -581,6 +598,12 @@ tbody th {
581
598
  color: #777777;
582
599
  }
583
600
 
601
+ .strategy {
602
+ background-color: rgb(255, 239, 215) !important;
603
+ color: #6c3b21;
604
+ font-size: 1rem;
605
+ }
606
+
584
607
  .status__valid {
585
608
  color: #00b368;
586
609
  }
@@ -711,6 +734,11 @@ pre {
711
734
  margin: 0;
712
735
  list-style: none;
713
736
  }
737
+ .menu-link {
738
+ display: inline-grid;
739
+ margin: 0;
740
+ float: right;
741
+ }
714
742
  .menu-item .menu-link {
715
743
  cursor: pointer;
716
744
  align-items: center;
@@ -754,6 +782,7 @@ pre {
754
782
 
755
783
  .card-header h2 {
756
784
  font-family: 'Jost';
785
+ display: inline-block;
757
786
  }
758
787
 
759
788
  .text-gray-400 {
@@ -910,7 +939,7 @@ pre {
910
939
  }
911
940
 
912
941
  .centerPopover {
913
- position: absolute !important;
942
+ position: fixed !important;
914
943
  top: 1%;
915
944
  left: 25%;
916
945
 
@@ -1006,17 +1035,45 @@ pre {
1006
1035
  }
1007
1036
 
1008
1037
  .add_button {
1009
- background-color: #f0f8ff !important;
1010
- color: #24518f;
1011
- text-transform: uppercase;
1038
+ background-color: #2f7986 !important;
1039
+ color: #fff;
1040
+ text-transform: none;
1012
1041
  vertical-align: middle;
1013
- padding: 0.2rem 0.5rem 0.1rem 0.5rem;
1014
- border: 1px solid #819bc0;
1015
- font-size: 1.2rem;
1042
+ padding-right: 1rem;
1043
+ padding-left: 1rem;
1044
+ padding-top: 0.5rem;
1045
+ padding-bottom: 0.5rem;
1046
+ margin-bottom: 0.5rem !important;
1047
+ font-size: 1rem;
1016
1048
  border-radius: 0.5rem;
1017
1049
  word-wrap: break-word;
1018
1050
  white-space: break-spaces;
1019
- margin-left: 1rem;
1051
+ }
1052
+
1053
+ .pagination {
1054
+ background-color: #fff !important;
1055
+ color: #74b7c3;
1056
+ border: 1px solid #74b7c3;
1057
+ text-transform: none;
1058
+ vertical-align: middle;
1059
+ padding-right: 1rem;
1060
+ padding-left: 1rem;
1061
+ padding-top: 0.5rem;
1062
+ padding-bottom: 0.5rem;
1063
+ margin-left: 0.5rem !important;
1064
+ margin-bottom: 0.5rem !important;
1065
+ font-size: 1rem;
1066
+ border-radius: 0.2rem;
1067
+ word-wrap: break-word;
1068
+ white-space: break-spaces;
1069
+ text-decoration: none;
1070
+ }
1071
+ .pagination:hover {
1072
+ background-color: #b6dae0 !important;
1073
+ color: #436e76;
1074
+ text-transform: none;
1075
+ text-decoration: none;
1076
+ cursor: pointer;
1020
1077
  }
1021
1078
 
1022
1079
  .edit_button {
@@ -1044,6 +1101,15 @@ pre {
1044
1101
  .tag_value:hover {
1045
1102
  background-color: #5c3b8f50;
1046
1103
  }
1104
+ .download_notebook {
1105
+ color: #5c3b8f;
1106
+ background-color: #ffefd0;
1107
+ margin: 0.25rem;
1108
+ font-size: 100%;
1109
+ }
1110
+ .download_notebook:hover {
1111
+ background-color: #fedda1 !important;
1112
+ }
1047
1113
 
1048
1114
  .modal-backdrop.in {
1049
1115
  filter: alpha(opacity=50);
@@ -1078,6 +1144,404 @@ pre {
1078
1144
  transition: opacity 0.15s linear;
1079
1145
  }
1080
1146
 
1147
+ .dimensionsList {
1148
+ padding: 12px;
1149
+ opacity: 1;
1150
+ border-radius: 0.5rem;
1151
+ line-height: 1.55rem;
1152
+ font-size: 0.95rem;
1153
+ }
1154
+
1155
+ .DimensionAttribute {
1156
+ background: #effcff;
1157
+ padding: 5px;
1158
+ font-family: Consolas, serif;
1159
+ }
1160
+
1161
+ .PrimaryKey {
1162
+ margin-right: 10px;
1163
+ font-size: 100%;
1164
+ margin-bottom: 5px;
1165
+ }
1166
+
1167
+ .history {
1168
+ padding: 20px;
1169
+ list-style: none;
1170
+ border-top-left-radius: 6px;
1171
+ border-top-right-radius: 6px;
1172
+ border-bottom-width: 1px;
1173
+ border-bottom-style: solid;
1174
+ border-color: #748f7c75;
1175
+ display: grid;
1176
+
1177
+ position: relative;
1178
+ min-height: 2rem;
1179
+ font-size: 14px;
1180
+ grid-template-rows: repeat(3, auto);
1181
+ grid-template-areas:
1182
+ 'description description details'
1183
+ 'description description details'
1184
+ 'metadata metadata details';
1185
+ grid-template-columns: min-content minmax(30%, 1fr);
1186
+ gap: 4px;
1187
+ }
1188
+
1189
+ .history-border {
1190
+ display: block;
1191
+ list-style-type: disc;
1192
+ padding-inline-start: 0;
1193
+ unicode-bidi: isolate;
1194
+ border-radius: 6px !important;
1195
+ border: 1px solid #748f7c75;
1196
+ margin-block-start: 1em;
1197
+ margin-block-end: 1em;
1198
+ margin-inline-start: 0;
1199
+ margin-inline-end: 0;
1200
+ }
1201
+ .history-left {
1202
+ grid-area: description;
1203
+ -webkit-box-flex: 2;
1204
+ flex-grow: 2;
1205
+ display: inline;
1206
+ font-size: 16px;
1207
+ }
1208
+ .history-small {
1209
+ display: flex;
1210
+ flex-direction: row;
1211
+ -webkit-box-align: center;
1212
+ align-items: center;
1213
+ gap: 5px;
1214
+ padding-right: 8px;
1215
+ -webkit-box-flex: 1;
1216
+ flex-grow: 1;
1217
+ overflow: hidden;
1218
+ grid-area: metadata;
1219
+ font-size: 12px;
1220
+ }
1221
+ .history-right {
1222
+ display: flex;
1223
+ flex-flow: wrap;
1224
+ padding-top: 10px;
1225
+ gap: 19px;
1226
+ grid-area: details;
1227
+ -webkit-box-flex: 2;
1228
+ }
1229
+
1230
+ .version {
1231
+ color: #055d20;
1232
+ font-weight: bold;
1233
+ font-size: 13px;
1234
+ border: solid #055d20 1px;
1235
+ background-color: #ccf7e545;
1236
+ margin: 0.25rem;
1237
+ }
1238
+
1239
+ .highlight-svg:hover {
1240
+ filter: invert(56%) sepia(68%) saturate(4415%) hue-rotate(162deg)
1241
+ brightness(96%) contrast(101%);
1242
+ text-decoration: none;
1243
+ }
1244
+ .no-change {
1245
+ padding: 10px;
1246
+ display: inline-block;
1247
+ margin-top: -25px;
1248
+ }
1249
+
1250
+ .no-change-banner {
1251
+ color: #055d20;
1252
+ text-transform: uppercase;
1253
+ padding-left: 10px;
1254
+ }
1255
+
1256
+ .validation_error {
1257
+ border: #b34b0025 1px solid;
1258
+ border-left: #b34b00 5px solid;
1259
+ padding-left: 20px;
1260
+ padding-top: 5px;
1261
+ padding-bottom: 5px;
1262
+ font-size: small;
1263
+ width: 600px;
1264
+ word-wrap: break-word;
1265
+ margin-top: 3px;
1266
+ background-color: #ffffff;
1267
+ margin-bottom: 3px;
1268
+ margin-left: -20px;
1269
+ }
1270
+
1271
+ .partitionLink {
1272
+ /*border: 1px solid #ccc4d5;*/
1273
+ padding: 12px;
1274
+ margin: 5px;
1275
+ border-radius: 0.375rem;
1276
+ background-color: #ccc4d525;
1277
+ }
1081
1278
  .partitionLink:hover {
1279
+ background-color: rgba(157, 147, 168, 0.15);
1280
+ }
1281
+ .partitionLink a:hover {
1082
1282
  text-decoration: none;
1083
1283
  }
1284
+
1285
+ .backfills {
1286
+ margin-left: -4rem;
1287
+ --spacing: 1.5rem;
1288
+ --radius: 10px;
1289
+ }
1290
+
1291
+ .backfills li {
1292
+ display: block;
1293
+ position: relative;
1294
+ padding-left: calc(2 * var(--spacing) - var(--radius) - 2px);
1295
+ }
1296
+
1297
+ .backfills ul {
1298
+ margin-left: calc(var(--radius) - var(--spacing));
1299
+ padding-left: 2rem;
1300
+ }
1301
+
1302
+ .backfills ul li {
1303
+ border-left: 2px solid #ddd;
1304
+ }
1305
+
1306
+ .backfills ul li:last-child {
1307
+ border-color: transparent;
1308
+ }
1309
+
1310
+ .backfills ul li::before {
1311
+ content: '';
1312
+ display: block;
1313
+ position: absolute;
1314
+ top: calc(var(--spacing) / -2);
1315
+ left: -2px;
1316
+ width: calc(var(--spacing) + 2px);
1317
+ height: calc(var(--spacing) + 1px);
1318
+ border: solid #ddd;
1319
+ border-width: 0 0 2px 2px;
1320
+ }
1321
+
1322
+ .backfills summary {
1323
+ display: block;
1324
+ cursor: pointer;
1325
+ margin-bottom: 10px;
1326
+ }
1327
+
1328
+ .backfills summary::marker,
1329
+ .backfills summary::-webkit-details-marker {
1330
+ display: none;
1331
+ }
1332
+
1333
+ .backfills summary:focus {
1334
+ outline: none;
1335
+ }
1336
+
1337
+ .backfills summary:focus-visible {
1338
+ outline: 1px dotted #000;
1339
+ }
1340
+
1341
+ .backfills summary::before {
1342
+ z-index: 1;
1343
+ /*background : #696 url('expand-collapse.svg') 0 0;*/
1344
+ }
1345
+
1346
+ .backfills details[open] > summary::before {
1347
+ background-position: calc(-2 * var(--radius)) 0;
1348
+ }
1349
+
1350
+ .backfills_header {
1351
+ font-size: 16px;
1352
+ margin-left: 18px;
1353
+ border-left: 2px solid #ddd;
1354
+ padding-left: 40px;
1355
+ margin-bottom: 10px;
1356
+ }
1357
+
1358
+ .tr {
1359
+ display: inline-flex;
1360
+ }
1361
+ .tr li {
1362
+ padding-right: 10px;
1363
+ }
1364
+ .td {
1365
+ display: table-cell;
1366
+ padding: 8px;
1367
+ }
1368
+
1369
+ .operator {
1370
+ background-color: #efefef;
1371
+ border-radius: 2px;
1372
+ border-style: none;
1373
+ padding: 0.4rem;
1374
+ font-family: Lato, 'sans-serif';
1375
+ font-size: 110%;
1376
+ border-right: 16px solid transparent;
1377
+ margin-left: 0.4rem;
1378
+ }
1379
+
1380
+ .backfills summary::marker,
1381
+ .backfills summary::-webkit-details-marker {
1382
+ display: none;
1383
+ }
1384
+
1385
+ .backfills summary:focus {
1386
+ outline: none;
1387
+ }
1388
+
1389
+ .backfills summary:focus-visible {
1390
+ outline: 1px dotted #000;
1391
+ }
1392
+
1393
+ .backfills summary::before {
1394
+ z-index: 1;
1395
+ /*background : #696 url('expand-collapse.svg') 0 0;*/
1396
+ }
1397
+
1398
+ .backfills details[open] > summary::before {
1399
+ background-position: calc(-2 * var(--radius)) 0;
1400
+ }
1401
+
1402
+ .backfills_header {
1403
+ font-size: 16px;
1404
+ margin-left: 18px;
1405
+ border-left: 2px solid #ddd;
1406
+ padding-left: 40px;
1407
+ margin-bottom: 10px;
1408
+ }
1409
+
1410
+ .tr {
1411
+ display: inline-flex;
1412
+ }
1413
+ .tr li {
1414
+ padding-right: 10px;
1415
+ }
1416
+ .td {
1417
+ display: table-cell;
1418
+ padding: 8px;
1419
+ }
1420
+
1421
+ table {
1422
+ width: 100%;
1423
+ height: min-content;
1424
+ }
1425
+
1426
+ .queryrunner-filters {
1427
+ background-color: #fff;
1428
+ padding-right: 20px;
1429
+ }
1430
+
1431
+ .tooltip {
1432
+ position: relative;
1433
+ display: inline-block;
1434
+ border-bottom: 1px dotted black;
1435
+ }
1436
+
1437
+ .tooltip .tooltiptext {
1438
+ visibility: hidden;
1439
+ width: 120px;
1440
+ background-color: #555;
1441
+ color: #fff;
1442
+ text-align: center;
1443
+ border-radius: 6px;
1444
+ padding: 15px;
1445
+ position: absolute;
1446
+ z-index: 1;
1447
+
1448
+ top: -5px;
1449
+ left: 125%;
1450
+ /*bottom: 125%;*/
1451
+ /*left: 50%;*/
1452
+ margin-left: -60px;
1453
+ opacity: 0;
1454
+ transition: opacity 0.3s;
1455
+ }
1456
+
1457
+ .tooltip .tooltiptext::after {
1458
+ content: '';
1459
+ position: absolute;
1460
+ top: 100%;
1461
+ left: 50%;
1462
+ margin-left: -5px;
1463
+ border-width: 5px;
1464
+ border-style: solid;
1465
+ border-color: #555 transparent transparent transparent;
1466
+ }
1467
+
1468
+ .tooltip:hover .tooltiptext {
1469
+ visibility: visible;
1470
+ opacity: 1;
1471
+ }
1472
+
1473
+ .queryrunner {
1474
+ display: grid;
1475
+ grid-template-columns: 300px 1fr;
1476
+ grid-template-rows: 250px 1fr;
1477
+ gap: 20px;
1478
+ grid-template-areas:
1479
+ 'left righttop'
1480
+ 'left rightbottom';
1481
+ margin-top: 1rem;
1482
+ }
1483
+ .left {
1484
+ grid-area: left;
1485
+ }
1486
+ .righttop {
1487
+ grid-area: righttop;
1488
+ }
1489
+ .rightbottom {
1490
+ grid-area: rightbottom;
1491
+ }
1492
+
1493
+ .queryrunner-query pre {
1494
+ border-radius: 0;
1495
+ margin-top: 0;
1496
+ margin-bottom: 0;
1497
+ padding: 1rem !important;
1498
+ }
1499
+
1500
+ .tab-item {
1501
+ align-items: center;
1502
+ background: #0000;
1503
+ border: 0;
1504
+ cursor: pointer;
1505
+ margin: 0 32px 0 0;
1506
+ outline: none;
1507
+ padding: 12px 0;
1508
+ text-transform: uppercase;
1509
+ user-select: none;
1510
+ width: fit-content !important;
1511
+ }
1512
+ .query-info {
1513
+ list-style-type: none;
1514
+ padding-bottom: 10px;
1515
+ }
1516
+ .query-info label {
1517
+ margin-left: -10px;
1518
+ }
1519
+ .active {
1520
+ border-bottom: 2px solid #007acc;
1521
+ }
1522
+ .dropdown-menu {
1523
+ display: none;
1524
+ position: absolute;
1525
+ top: 100%;
1526
+ left: 0;
1527
+ z-index: 1000;
1528
+ float: left;
1529
+ min-width: 15rem;
1530
+ padding: 0.5rem;
1531
+ margin: 0;
1532
+ font-size: 1rem;
1533
+ color: #212529;
1534
+ text-align: left;
1535
+ list-style: none;
1536
+ background-color: #fff;
1537
+ background-clip: padding-box;
1538
+ border: 1px solid rgba(0, 0, 0, 0.15);
1539
+ border-radius: 0.25rem;
1540
+ box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.175);
1541
+ }
1542
+ .dropdown {
1543
+ position: relative;
1544
+ }
1545
+ .dropdown:hover .dropdown-menu {
1546
+ display: block;
1547
+ }
@@ -13,7 +13,7 @@
13
13
  border: 8px solid #fff;
14
14
  border-radius: 50%;
15
15
  animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
16
- border-color: #fff transparent transparent transparent;
16
+ border-color: #bfbfbf transparent transparent transparent;
17
17
  }
18
18
  .lds-ring div:nth-child(1) {
19
19
  animation-delay: -0.45s;