datajunction-ui 0.0.1-rc.9 → 0.0.2-0.dev1

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 (244) hide show
  1. package/.env +2 -0
  2. package/.prettierignore +3 -1
  3. package/Makefile +9 -0
  4. package/cleanup-deps.sh +70 -0
  5. package/dj-logo.svg +10 -0
  6. package/package.json +53 -14
  7. package/public/favicon.ico +0 -0
  8. package/public/index.html +1 -1
  9. package/runit.sh +30 -0
  10. package/runit2.sh +30 -0
  11. package/src/__tests__/reportWebVitals.test.jsx +44 -0
  12. package/src/app/__tests__/__snapshots__/index.test.tsx.snap +5 -109
  13. package/src/app/components/AddNodeDropdown.jsx +44 -0
  14. package/src/app/components/ListGroupItem.jsx +9 -1
  15. package/src/app/components/NamespaceHeader.jsx +4 -13
  16. package/src/app/components/NodeListActions.jsx +69 -0
  17. package/src/app/components/NodeMaterializationDelete.jsx +90 -0
  18. package/src/app/components/NotificationBell.tsx +223 -0
  19. package/src/app/components/QueryInfo.jsx +172 -0
  20. package/src/app/components/Search.jsx +94 -0
  21. package/src/app/components/Tab.jsx +8 -1
  22. package/src/app/components/ToggleSwitch.jsx +20 -0
  23. package/src/app/components/UserMenu.tsx +100 -0
  24. package/src/app/components/__tests__/NodeListActions.test.jsx +94 -0
  25. package/src/app/components/__tests__/NodeMaterializationDelete.test.jsx +263 -0
  26. package/src/app/components/__tests__/NotificationBell.test.tsx +302 -0
  27. package/src/app/components/__tests__/QueryInfo.test.jsx +183 -0
  28. package/src/app/components/__tests__/Search.test.jsx +307 -0
  29. package/src/app/components/__tests__/Tab.test.jsx +27 -0
  30. package/src/app/components/__tests__/ToggleSwitch.test.jsx +43 -0
  31. package/src/app/components/__tests__/UserMenu.test.tsx +241 -0
  32. package/src/app/components/__tests__/__snapshots__/ListGroupItem.test.tsx.snap +8 -3
  33. package/src/app/components/__tests__/__snapshots__/NamespaceHeader.test.jsx.snap +2 -18
  34. package/src/app/components/djgraph/Collapse.jsx +47 -0
  35. package/src/app/components/djgraph/DJNode.jsx +61 -83
  36. package/src/app/components/djgraph/DJNodeColumns.jsx +75 -0
  37. package/src/app/components/djgraph/DJNodeDimensions.jsx +75 -0
  38. package/src/app/components/djgraph/LayoutFlow.jsx +106 -0
  39. package/src/app/components/djgraph/__tests__/Collapse.test.jsx +51 -0
  40. package/src/app/components/djgraph/__tests__/DJNodeColumns.test.jsx +83 -0
  41. package/src/app/components/djgraph/__tests__/DJNodeDimensions.test.jsx +118 -0
  42. package/src/app/components/djgraph/__tests__/__snapshots__/DJNode.test.tsx.snap +84 -40
  43. package/src/app/components/forms/Action.jsx +8 -0
  44. package/src/app/components/forms/NodeNameField.jsx +64 -0
  45. package/src/app/components/search.css +17 -0
  46. package/src/app/constants.js +2 -0
  47. package/src/app/icons/AddItemIcon.jsx +16 -0
  48. package/src/app/icons/AlertIcon.jsx +33 -0
  49. package/src/app/icons/CollapsedIcon.jsx +15 -0
  50. package/src/app/icons/CommitIcon.jsx +45 -0
  51. package/src/app/icons/DJLogo.jsx +36 -0
  52. package/src/app/icons/DeleteIcon.jsx +21 -0
  53. package/src/app/icons/DiffIcon.jsx +63 -0
  54. package/src/app/icons/EditIcon.jsx +18 -0
  55. package/src/app/icons/ExpandedIcon.jsx +15 -0
  56. package/src/app/icons/EyeIcon.jsx +20 -0
  57. package/src/app/icons/FilterIcon.jsx +7 -0
  58. package/src/app/icons/HorizontalHierarchyIcon.jsx +15 -0
  59. package/src/app/icons/InvalidIcon.jsx +16 -0
  60. package/src/app/icons/JupyterExportIcon.jsx +25 -0
  61. package/src/app/icons/LoadingIcon.jsx +14 -0
  62. package/src/app/icons/NodeIcon.jsx +49 -0
  63. package/src/app/icons/NotificationIcon.jsx +27 -0
  64. package/src/app/icons/PythonIcon.jsx +14 -0
  65. package/src/app/icons/SettingsIcon.jsx +28 -0
  66. package/src/app/icons/TableIcon.jsx +14 -0
  67. package/src/app/icons/ValidIcon.jsx +16 -0
  68. package/src/app/icons/WrenchIcon.jsx +36 -0
  69. package/src/app/index.tsx +130 -37
  70. package/src/app/pages/AddEditNodePage/AlertMessage.jsx +10 -0
  71. package/src/app/pages/AddEditNodePage/ColumnMetadata.jsx +61 -0
  72. package/src/app/pages/AddEditNodePage/ColumnsMetadataInput.jsx +72 -0
  73. package/src/app/pages/AddEditNodePage/ColumnsSelect.jsx +84 -0
  74. package/src/app/pages/AddEditNodePage/CustomMetadataField.jsx +144 -0
  75. package/src/app/pages/AddEditNodePage/DescriptionField.jsx +17 -0
  76. package/src/app/pages/AddEditNodePage/DisplayNameField.jsx +16 -0
  77. package/src/app/pages/AddEditNodePage/ExperimentationExtension.jsx +338 -0
  78. package/src/app/pages/AddEditNodePage/FormikSelect.jsx +64 -0
  79. package/src/app/pages/AddEditNodePage/FullNameField.jsx +38 -0
  80. package/src/app/pages/AddEditNodePage/Loadable.jsx +20 -0
  81. package/src/app/pages/AddEditNodePage/MetricMetadataFields.jsx +75 -0
  82. package/src/app/pages/AddEditNodePage/MetricQueryField.jsx +71 -0
  83. package/src/app/pages/AddEditNodePage/NamespaceField.jsx +40 -0
  84. package/src/app/pages/AddEditNodePage/NodeModeField.jsx +14 -0
  85. package/src/app/pages/AddEditNodePage/NodeQueryField.jsx +94 -0
  86. package/src/app/pages/AddEditNodePage/OwnersField.jsx +54 -0
  87. package/src/app/pages/AddEditNodePage/RequiredDimensionsSelect.jsx +54 -0
  88. package/src/app/pages/AddEditNodePage/TagsField.jsx +47 -0
  89. package/src/app/pages/AddEditNodePage/UpstreamNodeField.jsx +49 -0
  90. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormFailed.test.jsx +110 -0
  91. package/src/app/pages/AddEditNodePage/__tests__/AddEditNodePageFormSuccess.test.jsx +291 -0
  92. package/src/app/pages/AddEditNodePage/__tests__/FormikSelect.test.jsx +75 -0
  93. package/src/app/pages/AddEditNodePage/__tests__/FullNameField.test.jsx +31 -0
  94. package/src/app/pages/AddEditNodePage/__tests__/NodeQueryField.test.jsx +30 -0
  95. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/AddEditNodePageFormFailed.test.jsx.snap +54 -0
  96. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/AddEditNodePageFormSuccess.test.jsx.snap +3 -0
  97. package/src/app/pages/AddEditNodePage/__tests__/__snapshots__/index.test.jsx.snap +3 -0
  98. package/src/app/pages/AddEditNodePage/__tests__/index.test.jsx +224 -0
  99. package/src/app/pages/AddEditNodePage/index.jsx +545 -0
  100. package/src/app/pages/AddEditTagPage/Loadable.jsx +16 -0
  101. package/src/app/pages/AddEditTagPage/__tests__/AddEditTagPage.test.jsx +107 -0
  102. package/src/app/pages/AddEditTagPage/index.jsx +132 -0
  103. package/src/app/pages/CubeBuilderPage/DimensionsSelect.jsx +152 -0
  104. package/src/app/pages/CubeBuilderPage/Loadable.jsx +16 -0
  105. package/src/app/pages/CubeBuilderPage/MetricsSelect.jsx +75 -0
  106. package/src/app/pages/CubeBuilderPage/__tests__/index.test.jsx +373 -0
  107. package/src/app/pages/CubeBuilderPage/index.jsx +291 -0
  108. package/src/app/pages/LoginPage/LoginForm.jsx +124 -0
  109. package/src/app/pages/LoginPage/SignupForm.jsx +156 -0
  110. package/src/app/pages/LoginPage/__tests__/index.test.jsx +97 -0
  111. package/src/app/pages/LoginPage/assets/sign-in-with-github.png +0 -0
  112. package/src/app/pages/LoginPage/assets/sign-in-with-google.png +0 -0
  113. package/src/app/pages/LoginPage/index.jsx +17 -0
  114. package/src/app/pages/NamespacePage/AddNamespacePopover.jsx +85 -0
  115. package/src/app/pages/NamespacePage/Explorer.jsx +232 -0
  116. package/src/app/pages/NamespacePage/FieldControl.jsx +21 -0
  117. package/src/app/pages/NamespacePage/NodeModeSelect.jsx +27 -0
  118. package/src/app/pages/NamespacePage/NodeTypeSelect.jsx +30 -0
  119. package/src/app/pages/NamespacePage/TagSelect.jsx +44 -0
  120. package/src/app/pages/NamespacePage/UserSelect.jsx +47 -0
  121. package/src/app/pages/NamespacePage/__tests__/AddNamespacePopover.test.jsx +283 -0
  122. package/src/app/pages/NamespacePage/__tests__/index.test.jsx +331 -0
  123. package/src/app/pages/NamespacePage/index.jsx +356 -42
  124. package/src/app/pages/NodePage/AddBackfillPopover.jsx +165 -0
  125. package/src/app/pages/NodePage/AddComplexDimensionLinkPopover.jsx +367 -0
  126. package/src/app/pages/NodePage/AddMaterializationPopover.jsx +222 -0
  127. package/src/app/pages/NodePage/AvailabilityStateBlock.jsx +67 -0
  128. package/src/app/pages/NodePage/ClientCodePopover.jsx +94 -0
  129. package/src/app/pages/NodePage/DimensionFilter.jsx +86 -0
  130. package/src/app/pages/NodePage/EditColumnDescriptionPopover.jsx +116 -0
  131. package/src/app/pages/NodePage/EditColumnPopover.jsx +116 -0
  132. package/src/app/pages/NodePage/LinkDimensionPopover.jsx +164 -0
  133. package/src/app/pages/NodePage/ManageDimensionLinksDialog.jsx +526 -0
  134. package/src/app/pages/NodePage/MaterializationConfigField.jsx +60 -0
  135. package/src/app/pages/NodePage/NodeColumnTab.jsx +421 -30
  136. package/src/app/pages/NodePage/NodeDependenciesTab.jsx +153 -0
  137. package/src/app/pages/NodePage/NodeGraphTab.jsx +119 -148
  138. package/src/app/pages/NodePage/NodeHistory.jsx +236 -0
  139. package/src/app/pages/NodePage/NodeInfoTab.jsx +346 -49
  140. package/src/app/pages/NodePage/NodeLineageTab.jsx +84 -0
  141. package/src/app/pages/NodePage/NodeMaterializationTab.jsx +585 -0
  142. package/src/app/pages/NodePage/NodeRevisionMaterializationTab.jsx +58 -0
  143. package/src/app/pages/NodePage/NodeStatus.jsx +100 -31
  144. package/src/app/pages/NodePage/NodeValidateTab.jsx +367 -0
  145. package/src/app/pages/NodePage/NodesWithDimension.jsx +42 -0
  146. package/src/app/pages/NodePage/NotebookDownload.jsx +36 -0
  147. package/src/app/pages/NodePage/PartitionColumnPopover.jsx +151 -0
  148. package/src/app/pages/NodePage/PartitionValueForm.jsx +60 -0
  149. package/src/app/pages/NodePage/RevisionDiff.jsx +209 -0
  150. package/src/app/pages/NodePage/WatchNodeButton.jsx +226 -0
  151. package/src/app/pages/NodePage/__tests__/AddBackfillPopover.test.jsx +56 -0
  152. package/src/app/pages/NodePage/__tests__/AddComplexDimensionLinkPopover.test.jsx +459 -0
  153. package/src/app/pages/NodePage/__tests__/AddMaterializationPopover.test.jsx +87 -0
  154. package/src/app/pages/NodePage/__tests__/DimensionFilter.test.jsx +74 -0
  155. package/src/app/pages/NodePage/__tests__/EditColumnDescriptionPopover.test.jsx +149 -0
  156. package/src/app/pages/NodePage/__tests__/EditColumnPopover.test.jsx +144 -0
  157. package/src/app/pages/NodePage/__tests__/LinkDimensionPopover.test.jsx +132 -0
  158. package/src/app/pages/NodePage/__tests__/ManageDimensionLinksDialog.test.jsx +390 -0
  159. package/src/app/pages/NodePage/__tests__/NodeColumnTab.test.jsx +166 -0
  160. package/src/app/pages/NodePage/__tests__/NodeDependenciesTab.test.jsx +151 -0
  161. package/src/app/pages/NodePage/__tests__/NodeGraphTab.test.jsx +595 -0
  162. package/src/app/pages/NodePage/__tests__/NodeLineageTab.test.jsx +58 -0
  163. package/src/app/pages/NodePage/__tests__/NodeMaterializationTab.test.jsx +190 -0
  164. package/src/app/pages/NodePage/__tests__/NodePage.test.jsx +882 -0
  165. package/src/app/pages/NodePage/__tests__/NodeWithDimension.test.jsx +175 -0
  166. package/src/app/pages/NodePage/__tests__/RevisionDiff.test.jsx +164 -0
  167. package/src/app/pages/NodePage/__tests__/__snapshots__/NodePage.test.jsx.snap +19 -0
  168. package/src/app/pages/NodePage/index.jsx +190 -44
  169. package/src/app/pages/NotFoundPage/__tests__/index.test.jsx +16 -0
  170. package/src/app/pages/NotificationsPage/Loadable.jsx +6 -0
  171. package/src/app/pages/NotificationsPage/__tests__/index.test.jsx +287 -0
  172. package/src/app/pages/NotificationsPage/index.jsx +136 -0
  173. package/src/app/pages/OverviewPage/ByStatusPanel.jsx +69 -0
  174. package/src/app/pages/OverviewPage/DimensionNodeUsagePanel.jsx +48 -0
  175. package/src/app/pages/OverviewPage/GovernanceWarningsPanel.jsx +107 -0
  176. package/src/app/pages/OverviewPage/Loadable.jsx +16 -0
  177. package/src/app/pages/OverviewPage/NodesByTypePanel.jsx +63 -0
  178. package/src/app/pages/OverviewPage/OverviewPanel.jsx +94 -0
  179. package/src/app/pages/OverviewPage/TrendsPanel.jsx +66 -0
  180. package/src/app/pages/OverviewPage/__tests__/ByStatusPanel.test.jsx +36 -0
  181. package/src/app/pages/OverviewPage/__tests__/DimensionNodeUsagePanel.test.jsx +76 -0
  182. package/src/app/pages/OverviewPage/__tests__/GovernanceWarningsPanel.test.jsx +77 -0
  183. package/src/app/pages/OverviewPage/__tests__/NodesByTypePanel.test.jsx +86 -0
  184. package/src/app/pages/OverviewPage/__tests__/OverviewPanel.test.jsx +78 -0
  185. package/src/app/pages/OverviewPage/__tests__/TrendsPanel.test.jsx +120 -0
  186. package/src/app/pages/OverviewPage/__tests__/index.test.jsx +54 -0
  187. package/src/app/pages/OverviewPage/index.jsx +22 -0
  188. package/src/app/pages/RegisterTablePage/Loadable.jsx +16 -0
  189. package/src/app/pages/RegisterTablePage/__tests__/RegisterTablePage.test.jsx +112 -0
  190. package/src/app/pages/RegisterTablePage/__tests__/__snapshots__/RegisterTablePage.test.jsx.snap +38 -0
  191. package/src/app/pages/RegisterTablePage/index.jsx +142 -0
  192. package/src/app/pages/Root/__tests__/index.test.jsx +44 -0
  193. package/src/app/pages/Root/index.tsx +92 -10
  194. package/src/app/pages/SQLBuilderPage/Loadable.jsx +16 -0
  195. package/src/app/pages/SQLBuilderPage/__tests__/index.test.jsx +173 -0
  196. package/src/app/pages/SQLBuilderPage/index.jsx +390 -0
  197. package/src/app/pages/SettingsPage/CreateServiceAccountModal.jsx +152 -0
  198. package/src/app/pages/SettingsPage/Loadable.jsx +16 -0
  199. package/src/app/pages/SettingsPage/NotificationSubscriptionsSection.jsx +189 -0
  200. package/src/app/pages/SettingsPage/ProfileSection.jsx +41 -0
  201. package/src/app/pages/SettingsPage/ServiceAccountsSection.jsx +95 -0
  202. package/src/app/pages/SettingsPage/__tests__/CreateServiceAccountModal.test.jsx +318 -0
  203. package/src/app/pages/SettingsPage/__tests__/NotificationSubscriptionsSection.test.jsx +233 -0
  204. package/src/app/pages/SettingsPage/__tests__/ProfileSection.test.jsx +65 -0
  205. package/src/app/pages/SettingsPage/__tests__/ServiceAccountsSection.test.jsx +150 -0
  206. package/src/app/pages/SettingsPage/__tests__/index.test.jsx +184 -0
  207. package/src/app/pages/SettingsPage/index.jsx +148 -0
  208. package/src/app/pages/TagPage/Loadable.jsx +16 -0
  209. package/src/app/pages/TagPage/__tests__/TagPage.test.jsx +70 -0
  210. package/src/app/pages/TagPage/index.jsx +79 -0
  211. package/src/app/services/DJService.js +1444 -21
  212. package/src/app/services/__tests__/DJService.test.jsx +2118 -0
  213. package/src/app/utils/__tests__/date.test.js +198 -0
  214. package/src/app/utils/date.js +65 -0
  215. package/src/index.tsx +1 -0
  216. package/src/mocks/mockNodes.jsx +1477 -0
  217. package/src/setupTests.ts +31 -1
  218. package/src/styles/dag.css +117 -5
  219. package/src/styles/index.css +1028 -31
  220. package/src/styles/loading.css +34 -0
  221. package/src/styles/login.css +81 -0
  222. package/src/styles/nav-bar.css +274 -0
  223. package/src/styles/node-creation.scss +276 -0
  224. package/src/styles/node-list.css +4 -0
  225. package/src/styles/overview.css +72 -0
  226. package/src/styles/settings.css +787 -0
  227. package/src/styles/sorted-table.css +15 -0
  228. package/src/styles/styles.scss +44 -0
  229. package/src/styles/styles.scss.d.ts +9 -0
  230. package/src/utils/form.jsx +23 -0
  231. package/webpack.config.js +17 -6
  232. package/.babelrc +0 -4
  233. package/.env.local +0 -4
  234. package/.env.production +0 -1
  235. package/.github/pull_request_template.md +0 -11
  236. package/.github/workflows/ci.yml +0 -33
  237. package/.vscode/extensions.json +0 -7
  238. package/.vscode/launch.json +0 -15
  239. package/.vscode/settings.json +0 -25
  240. package/Dockerfile +0 -7
  241. package/src/app/pages/ListNamespacesPage/Loadable.jsx +0 -14
  242. package/src/app/pages/ListNamespacesPage/index.jsx +0 -62
  243. package/src/app/pages/NamespacePage/__tests__/__snapshots__/index.test.tsx.snap +0 -45
  244. package/src/app/pages/NamespacePage/__tests__/index.test.tsx +0 -14
@@ -1,8 +1,13 @@
1
+ @import url('https://fonts.googleapis.com/css?family=Jost');
2
+ @import url('https://fonts.googleapis.com/css2?family=Raleway:wght@300;600&display=swap');
3
+ @import url('https://fonts.googleapis.com/css?family=Lato');
4
+ @import url('https://fonts.googleapis.com/css?family=Consolas');
5
+
1
6
  body {
2
7
  margin: 0;
3
- font-family: system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue',
4
- 'Noto Sans', 'Liberation Sans', Arial, sans-serif, 'Apple Color Emoji',
5
- 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji';
8
+ font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell,
9
+ Noto Sans, sans-serif, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial,
10
+ sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
6
11
  -webkit-font-smoothing: antialiased;
7
12
  -moz-osx-font-smoothing: grayscale;
8
13
  }
@@ -14,6 +19,13 @@ body {
14
19
  div {
15
20
  display: block;
16
21
  }
22
+ h2 {
23
+ font-family: 'Raleway', system-ui;
24
+ font-weight: 300;
25
+ }
26
+ h2 b {
27
+ font-weight: 600;
28
+ }
17
29
  p {
18
30
  display: block;
19
31
  margin-block-start: 1em;
@@ -26,7 +38,7 @@ a,
26
38
  a:hover {
27
39
  text-decoration: none;
28
40
  color: #005c72;
29
- font-family: 'Cerebri Sans', sans-serif;
41
+ font-family: 'Montserrat', sans-serif;
30
42
  }
31
43
  a:hover {
32
44
  text-decoration: underline;
@@ -39,6 +51,7 @@ button.nav-link {
39
51
  font: inherit;
40
52
  cursor: pointer;
41
53
  outline: inherit;
54
+ width: max-content;
42
55
  }
43
56
  code {
44
57
  font-family: Consolas, source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
@@ -110,9 +123,7 @@ ul {
110
123
 
111
124
  .list-group {
112
125
  width: 100%;
113
- /*min-width: fit-content;*/
114
126
  max-width: fit-content;
115
- /*margin-inline: 1.5rem;*/
116
127
  border-radius: 0.375rem;
117
128
  }
118
129
  .list-group-item {
@@ -122,7 +133,6 @@ ul {
122
133
  color: #212529;
123
134
  text-decoration: none;
124
135
  background-color: #ffffff;
125
- /*border: 1px solid #dee2e6;*/
126
136
  min-width: fit-content;
127
137
  }
128
138
  .list-group-item + .list-group-item {
@@ -132,6 +142,12 @@ ul {
132
142
  border-top-left-radius: inherit;
133
143
  border-top-right-radius: inherit;
134
144
  }
145
+ .li {
146
+ cursor: pointer;
147
+ }
148
+ .raw-node-list {
149
+ flex: 0 0 50px;
150
+ }
135
151
  .d-flex {
136
152
  display: flex !important;
137
153
  }
@@ -150,13 +166,16 @@ ul {
150
166
  .h6,
151
167
  h6 {
152
168
  margin: 0;
153
- /*background-color: #f9fbfd;*/
169
+ font-family: 'Jost';
154
170
  text-transform: uppercase;
155
171
  font-size: 0.8125rem;
156
172
  font-weight: 600;
157
173
  letter-spacing: 0.08em;
158
174
  color: #95aac9;
159
175
  }
176
+ .larger {
177
+ font-size: 120%;
178
+ }
160
179
  .py-3 {
161
180
  padding-top: 1rem !important;
162
181
  padding-bottom: 1rem !important;
@@ -180,6 +199,10 @@ h6 {
180
199
  .badge.bg-secondary-soft {
181
200
  color: #6e84a3;
182
201
  }
202
+ .badge.bg-secondary-error {
203
+ color: #6e84a3;
204
+ background-color: #fad7dd;
205
+ }
183
206
  .badge.rounded-pill {
184
207
  padding-right: 0.6em;
185
208
  padding-left: 0.6em;
@@ -219,7 +242,7 @@ table {
219
242
  }
220
243
  tr {
221
244
  display: table-row;
222
- vertical-align: inherit;
245
+ vertical-align: top;
223
246
  border-color: inherit;
224
247
  }
225
248
  .card-table {
@@ -240,14 +263,38 @@ tr {
240
263
  word-wrap: break-word;
241
264
  background-color: #fff;
242
265
  background-clip: border-box;
243
- /*border: 1px solid #edf2f9;*/
244
266
  border-radius: 1rem;
245
- margin: 4rem;
267
+ margin: 2rem;
268
+ padding-bottom: 2rem;
246
269
  }
247
270
 
248
- .table-responsive {
271
+ .card-light-shadow {
272
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
273
+ transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
274
+ padding: 1rem;
275
+ }
276
+
277
+ .sidebar {
278
+ position: sticky;
279
+ top: 0;
280
+ left: 0;
281
+ }
282
+
283
+ .table-responsive,
284
+ .table-vertical {
249
285
  overflow-x: auto;
250
286
  -webkit-overflow-scrolling: touch;
287
+ display: grid;
288
+ grid-template-columns: auto auto auto;
289
+ grid-gap: 8px;
290
+ padding: 8px;
291
+ }
292
+ .table-responsive {
293
+ width: auto;
294
+ grid-template-columns: 200px auto;
295
+ }
296
+ .table-vertical {
297
+ display: contents;
251
298
  }
252
299
  .table > thead {
253
300
  vertical-align: bottom;
@@ -280,12 +327,12 @@ tr {
280
327
  padding-left: 1.5rem !important;
281
328
  }
282
329
  .table thead th {
283
- background-color: #f9fbfd;
284
330
  text-transform: uppercase;
285
331
  font-size: 0.8125rem;
286
332
  font-weight: 600;
287
333
  letter-spacing: 0.08em;
288
334
  color: #95aac9;
335
+ font-family: 'Jost';
289
336
  }
290
337
 
291
338
  .card-table thead th {
@@ -297,8 +344,8 @@ tr {
297
344
  .table thead th,
298
345
  td,
299
346
  tbody th {
300
- vertical-align: middle;
301
- text-align: center;
347
+ vertical-align: top;
348
+ text-align: left;
302
349
  }
303
350
  .table [data-sort],
304
351
  .table-nowrap td,
@@ -328,6 +375,8 @@ tbody th {
328
375
  border-top: 1px solid #edf2f9;
329
376
  border-bottom: 0;
330
377
  padding: 1rem;
378
+ max-width: 25rem;
379
+ vertical-align: top;
331
380
  }
332
381
  .card-inner-table td,
333
382
  .card-inner-table th {
@@ -342,6 +391,10 @@ tbody th {
342
391
  border-bottom-width: 1px;
343
392
  box-shadow: inset 0 0 0 9999px transparent;
344
393
  }
394
+ .node_type_creation_heading {
395
+ text-transform: capitalize;
396
+ padding: 5px;
397
+ }
345
398
 
346
399
  /* Nodes */
347
400
  .node_type {
@@ -351,42 +404,214 @@ tbody th {
351
404
  vertical-align: middle;
352
405
  padding: 0.44rem;
353
406
  border-radius: 0.375rem;
354
- cursor: crosshair;
407
+ word-wrap: break-word;
408
+ white-space: break-spaces;
409
+ margin-right: 0.5rem;
355
410
  }
356
411
 
357
412
  /* Nodes */
358
413
  .node_type__source {
359
- /*background-color: #84ea4d50!important;*/
360
- /*color: #4e8033;*/
361
-
414
+ font-family: 'Jost';
362
415
  background-color: #ccf7e5 !important;
363
416
  color: #00b368;
364
417
  }
418
+ .react-flow__node .node_type__source {
419
+ background-color: #7eb46150 !important;
420
+ color: #7eb461;
421
+ }
365
422
 
366
423
  .node_type__transform {
424
+ font-family: 'Jost';
367
425
  background-color: #ccefff !important;
368
426
  color: #0063b4;
369
427
  }
370
428
 
429
+ .node_type__transform:hover {
430
+ background-color: #ccefff !important;
431
+ }
432
+ .react-flow__node .node_type__transform {
433
+ background-color: #6daaa750 !important;
434
+ color: #6daaa7;
435
+ }
436
+
371
437
  .node_type__metric {
438
+ font-family: 'Jost';
372
439
  background-color: #fad7dd !important;
373
440
  color: #a2283e;
374
441
  }
442
+ .react-flow__node .node_type__metric {
443
+ background-color: #a27e8650 !important;
444
+ color: #a27e86;
445
+ }
375
446
 
376
447
  .node_type__dimension {
448
+ font-family: 'Jost';
377
449
  background-color: #ffefd0 !important;
378
450
  color: #a96621;
379
451
  }
452
+ .react-flow__node .node_type__dimension {
453
+ background-color: #cf7d2950 !important;
454
+ color: #cf7d29;
455
+ }
380
456
 
381
457
  .node_type__cube {
458
+ font-family: 'Jost';
382
459
  background-color: #dbafff !important;
383
460
  color: #580076;
384
461
  }
385
462
 
463
+ .node_type__tag {
464
+ font-family: 'Jost';
465
+ color: #5c3b8f;
466
+ background-color: #5c3b8f25 !important;
467
+ }
468
+
469
+ .node_type__blank {
470
+ font-family: 'Jost';
471
+ background-color: #ffffff !important;
472
+ color: #a96621;
473
+ }
474
+ .entity__tag {
475
+ font-family: 'Jost';
476
+ background-color: #afd4ff !important;
477
+ color: #002176;
478
+ }
479
+ .react-flow__node .node_type__cube {
480
+ background-color: #c2180750 !important;
481
+ color: #c2180750;
482
+ }
483
+
484
+ .history_type__create {
485
+ background-color: #ccf7e5 !important;
486
+ color: #00b368;
487
+ }
488
+
489
+ .history_type__delete {
490
+ background-color: #ffc8c8 !important;
491
+ color: #9b5a5a;
492
+ }
493
+
494
+ .history_type__restore {
495
+ background-color: #ccf7e5 !important;
496
+ color: #00b368;
497
+ }
498
+
499
+ .history_type__modify {
500
+ background-color: #ffefd0 !important;
501
+ color: #a96621;
502
+ }
503
+
504
+ .history_type__link {
505
+ background-color: #a8a8a8 !important;
506
+ color: #855e5e;
507
+ }
508
+
509
+ .history_type__tag {
510
+ background-color: #a8a8a8 !important;
511
+ color: #855e5e;
512
+ }
513
+
514
+ .history_type__set_attribute {
515
+ background-color: #e6f5ff !important;
516
+ color: #487c8c;
517
+ }
518
+
519
+ .history_type__status_change {
520
+ background-color: #ffe9db !important;
521
+ color: #573d3d;
522
+ }
523
+
524
+ .partition_value {
525
+ border: solid #00b368 0.025em;
526
+ background-color: #ccf7e525;
527
+ margin: 0.25rem;
528
+ }
529
+
530
+ .partition_value_highlight {
531
+ border: solid #5c3b8f 0.025em;
532
+ color: #5c3b8f;
533
+ background-color: #5c3b8f25;
534
+ margin: 0.25rem;
535
+ }
536
+
537
+ .dimension_option {
538
+ border: solid #5c3b8f 0.025em;
539
+ color: #5c3b8f;
540
+ background-color: #5c3b8f25;
541
+ margin: 0.25rem;
542
+ font-size: 16px;
543
+ }
544
+
545
+ .dimension_option_subheading {
546
+ background-color: #ffffff !important;
547
+ color: #580076;
548
+ padding: 0.4rem;
549
+ margin: 0.4rem;
550
+ font-size: 12px;
551
+ }
552
+
553
+ .dimension_option_subheading:empty {
554
+ display: none;
555
+ }
556
+
557
+ .upstreams {
558
+ width: 260px;
559
+ display: flex;
560
+ }
561
+ .upstream_tables {
562
+ width: 260px;
563
+ font-size: 14px;
564
+ word-wrap: break-word;
565
+ padding: 12px;
566
+ }
567
+
568
+ .bi-table {
569
+ }
570
+
571
+ .name {
572
+ display: block;
573
+ flex-grow: 1;
574
+ line-height: 18px;
575
+ }
576
+
577
+ .entity-info {
578
+ color: #757575;
579
+ font-size: 12px;
580
+ padding: 0.25rem;
581
+ flex-grow: 1;
582
+ line-height: 24px;
583
+ letter-spacing: normal;
584
+ }
585
+
586
+ .node_name {
587
+ word-wrap: break-word;
588
+ max-width: 200px;
589
+ }
590
+
591
+ .cron {
592
+ background-color: rgb(255 215 215) !important;
593
+ color: #b34b00;
594
+ font-size: 1rem;
595
+ }
596
+ .cron-description {
597
+ text-transform: lowercase;
598
+ color: #777777;
599
+ }
600
+
601
+ .strategy {
602
+ background-color: rgb(255, 239, 215) !important;
603
+ color: #6c3b21;
604
+ font-size: 1rem;
605
+ }
606
+
386
607
  .status__valid {
387
608
  color: #00b368;
388
609
  }
389
610
 
611
+ .status__invalid {
612
+ color: #b34b00;
613
+ }
614
+
390
615
  .status {
391
616
  text-transform: capitalize;
392
617
  vertical-align: middle;
@@ -402,7 +627,6 @@ tbody th {
402
627
  }
403
628
 
404
629
  .col.active {
405
- /*background-color: #f5fbff;*/
406
630
  padding-bottom: 1.15rem;
407
631
  color: #a1a5b7;
408
632
  border-bottom: solid 0.2em #2c7be5;
@@ -422,9 +646,6 @@ tbody th {
422
646
  --bs-gutter-y: 0;
423
647
  display: flex;
424
648
  flex-wrap: wrap;
425
- /*margin-top: 3rem;*/
426
- /*margin-bottom: calc(-.75*var(--bs-gutter-x));*/
427
- /*margin-left: 3.4rem;*/
428
649
  }
429
650
 
430
651
  .header {
@@ -433,14 +654,11 @@ tbody th {
433
654
  --bs-header-body-border-width: 1px;
434
655
  --bs-header-body-border-color: #e3ebf6;
435
656
  --bs-header-body-border-color-dark: rgba(227, 235, 246, 0.1);
436
- /*margin-bottom: var(--bs-header-margin-bottom);*/
437
657
  height: 90px;
438
658
  transition: none;
439
659
  display: flex;
440
660
  align-items: center;
441
661
  background-color: transparent;
442
- /*box-shadow: 0px 10px 30px 0px rgba(82, 63, 105, 0.05);*/
443
- /*border-bottom: var(--bs-app-header-base-border-bottom);*/
444
662
  }
445
663
  *,
446
664
  :after,
@@ -464,10 +682,6 @@ tbody th {
464
682
  background-color: transparent;
465
683
  border-color: #2c7be5;
466
684
  }
467
- .header-tabs .nav-link {
468
- /*padding-top: var(--bs-header-spacing-y);*/
469
- /*padding-bottom: var(--bs-header-spacing-y);*/
470
- }
471
685
  .nav-link {
472
686
  display: block;
473
687
  color: #a1a5b7;
@@ -487,7 +701,7 @@ pre {
487
701
  }
488
702
 
489
703
  .container {
490
- max-width: 1320px;
704
+ max-width: --webkit-size-available;
491
705
  width: 100%;
492
706
  padding-left: 30px !important;
493
707
  padding-right: 30px !important;
@@ -520,6 +734,11 @@ pre {
520
734
  margin: 0;
521
735
  list-style: none;
522
736
  }
737
+ .menu-link {
738
+ display: inline-grid;
739
+ margin: 0;
740
+ float: right;
741
+ }
523
742
  .menu-item .menu-link {
524
743
  cursor: pointer;
525
744
  align-items: center;
@@ -531,9 +750,11 @@ pre {
531
750
  }
532
751
  .menu-title a {
533
752
  color: #7e8299;
753
+ cursor: pointer;
534
754
  }
535
755
  .menu-title a:hover {
536
756
  color: #3f4254;
757
+ cursor: pointer;
537
758
  }
538
759
 
539
760
  .node__header,
@@ -542,11 +763,16 @@ pre {
542
763
  padding-bottom: 2rem;
543
764
  }
544
765
 
766
+ .mid {
767
+ padding-top: 0.4rem;
768
+ }
769
+
545
770
  .rounded-box {
546
771
  border-radius: 1rem !important;
547
772
  background-color: #ffffff;
548
773
  max-width: fit-content;
549
774
  }
775
+
550
776
  .card-header {
551
777
  align-items: center;
552
778
  margin: 0.5rem;
@@ -554,6 +780,777 @@ pre {
554
780
  padding: 0 2.25rem 0 2.25rem;
555
781
  }
556
782
 
783
+ .card-header h2 {
784
+ font-family: 'Jost';
785
+ display: inline-block;
786
+ }
787
+
557
788
  .text-gray-400 {
558
789
  color: #b5b5c3 !important;
559
790
  }
791
+
792
+ .filters_attribute {
793
+ width: 30%;
794
+ display: block;
795
+ margin: 0 3rem 3rem 3rem;
796
+ float: left;
797
+ }
798
+
799
+ .switch {
800
+ position: relative;
801
+ display: inline-block;
802
+ width: 40px;
803
+ height: 20px;
804
+ background-color: #eee;
805
+ border-radius: 20px;
806
+ vertical-align: middle;
807
+ }
808
+
809
+ .switch::after {
810
+ content: '';
811
+ position: absolute;
812
+ width: 18px;
813
+ height: 18px;
814
+ border-radius: 50%;
815
+ background-color: white;
816
+ top: 1px;
817
+ left: 1px;
818
+ transition: all 0.3s;
819
+ }
820
+
821
+ .checkbox:checked + .switch::after {
822
+ left: 20px;
823
+ }
824
+ .checkbox:checked + .switch {
825
+ background-color: #7983ff;
826
+ }
827
+
828
+ .checkbox {
829
+ display: none;
830
+ }
831
+
832
+ .button-3 {
833
+ appearance: none;
834
+ border: 1px solid rgba(27, 31, 35, 0.15);
835
+ border-radius: 6px;
836
+ box-shadow: rgba(27, 31, 35, 0.1) 0 1px 0;
837
+ box-sizing: border-box;
838
+ cursor: pointer;
839
+ display: inline-block;
840
+ font-weight: 600;
841
+ line-height: 20px;
842
+ padding: 6px 16px;
843
+ margin: 5px;
844
+ position: relative;
845
+ text-align: center;
846
+ text-decoration: none;
847
+ user-select: none;
848
+ -webkit-user-select: none;
849
+ touch-action: manipulation;
850
+ vertical-align: middle;
851
+ white-space: nowrap;
852
+ }
853
+
854
+ .button-3:focus:not(:focus-visible):not(.focus-visible) {
855
+ box-shadow: none;
856
+ outline: none;
857
+ }
858
+
859
+ .execute-button {
860
+ background-color: #00b368;
861
+ color: #fff;
862
+ }
863
+
864
+ .executing-button {
865
+ background-color: #bbbbbb;
866
+ color: #fff;
867
+ }
868
+
869
+ .neutral-button {
870
+ background-color: #f6f8fa;
871
+ color: #24292f;
872
+ }
873
+ .text-black {
874
+ color: #000000 !important;
875
+ }
876
+
877
+ .cube-element {
878
+ color: #757575;
879
+ font-size: 14px;
880
+ padding: 0.25rem;
881
+ flex-grow: 1;
882
+ display: table;
883
+ line-height: 24px;
884
+ letter-spacing: normal;
885
+ }
886
+ .cube-element .badge {
887
+ margin-left: 0.4rem;
888
+ }
889
+
890
+ .code-button {
891
+ display: inline-flex;
892
+ -webkit-box-align: center;
893
+ align-items: center;
894
+ -webkit-box-pack: center;
895
+ justify-content: center;
896
+ position: relative;
897
+ box-sizing: border-box;
898
+ -webkit-tap-highlight-color: transparent;
899
+ background-color: transparent;
900
+ outline: 0;
901
+ border: 0;
902
+ margin: 0;
903
+ cursor: pointer;
904
+ user-select: none;
905
+ vertical-align: middle;
906
+ appearance: none;
907
+ text-decoration: none;
908
+ text-align: center;
909
+ flex: 0 0 auto;
910
+ font-size: 1.5rem;
911
+ padding: 0;
912
+ border-radius: 50%;
913
+ overflow: visible;
914
+ color: rgba(0, 0, 0, 0.54);
915
+ transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
916
+ }
917
+
918
+ #node-create-code pre {
919
+ padding: 1rem !important;
920
+ max-height: 300px;
921
+ overflow: scroll;
922
+ text-align: left;
923
+ position: absolute;
924
+ max-width: 75%;
925
+ z-index: 1;
926
+ }
927
+
928
+ .popover {
929
+ padding: 1rem 1rem 0.6rem 1rem !important;
930
+ margin-top: 1rem;
931
+ background-color: #ffffff;
932
+ border: 1px solid #c5c5c5;
933
+ border-radius: 10px;
934
+ text-align: left;
935
+ position: absolute;
936
+ min-width: 210px;
937
+ max-width: 100%;
938
+ z-index: 100000;
939
+ }
940
+
941
+ .centerPopover {
942
+ position: fixed !important;
943
+ top: 1%;
944
+ left: 25%;
945
+
946
+ padding: 1rem 1rem 0.6rem 1rem !important;
947
+ margin-top: 1rem;
948
+ border-radius: 10px;
949
+ text-align: left;
950
+ position: absolute;
951
+ min-width: 210px;
952
+ max-width: 100%;
953
+ z-index: 100000;
954
+ background-color: #fff;
955
+ background-clip: padding-box;
956
+ border: 1px solid rgba(0, 0, 0, 0.2);
957
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
958
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
959
+ outline: 0;
960
+ }
961
+
962
+ .centerPopover h2 {
963
+ margin-top: 0;
964
+ margin-bottom: 1rem;
965
+ }
966
+
967
+ .select-name {
968
+ margin-top: 5px;
969
+ padding: 7px 7px;
970
+ width: fit-content;
971
+ border-radius: 4px;
972
+ cursor: default;
973
+ font-size: 0.9125rem;
974
+ color: #95aac9;
975
+ }
976
+
977
+ .select-name:hover {
978
+ background-color: #bdbaba3c;
979
+ }
980
+
981
+ .select-name-highlight {
982
+ font-weight: 600;
983
+ background-color: #bdbaba3c;
984
+ border: 1px solid rgba(94, 94, 94, 0.24);
985
+ }
986
+
987
+ .inactive {
988
+ display: none;
989
+ }
990
+
991
+ .dropdown {
992
+ position: relative;
993
+ display: inline-block;
994
+ float: right;
995
+ }
996
+
997
+ .dropdown-content {
998
+ display: none;
999
+ position: absolute;
1000
+ margin-top: 6px;
1001
+ box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
1002
+ min-width: 115px;
1003
+ }
1004
+
1005
+ .dropdown:hover .dropdown-content {
1006
+ display: block;
1007
+ }
1008
+
1009
+ .dropdown-content a:hover {
1010
+ text-decoration: none;
1011
+ }
1012
+
1013
+ .dropdown-content a div {
1014
+ padding: 12px 16px;
1015
+ background-color: #ffffff !important;
1016
+ }
1017
+
1018
+ .dropdown-content a div:hover {
1019
+ background-color: #f3eeff !important;
1020
+ }
1021
+
1022
+ .add_node {
1023
+ background-color: #5d2f86 !important;
1024
+ color: #fff;
1025
+ text-transform: none;
1026
+ vertical-align: middle;
1027
+ padding-right: 1rem;
1028
+ padding-left: 1rem;
1029
+ padding-top: 0.5rem;
1030
+ padding-bottom: 0.5rem;
1031
+ font-size: 1rem;
1032
+ border-radius: 0.5rem;
1033
+ word-wrap: break-word;
1034
+ white-space: break-spaces;
1035
+ }
1036
+
1037
+ .add_button {
1038
+ background-color: #2f7986 !important;
1039
+ color: #fff;
1040
+ text-transform: none;
1041
+ vertical-align: middle;
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;
1048
+ border-radius: 0.5rem;
1049
+ word-wrap: break-word;
1050
+ white-space: break-spaces;
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;
1077
+ }
1078
+
1079
+ .edit_button {
1080
+ background: none;
1081
+ color: inherit;
1082
+ border: none;
1083
+ padding: 0;
1084
+ font: inherit;
1085
+ cursor: pointer;
1086
+ outline: inherit;
1087
+ margin-left: 1rem;
1088
+ }
1089
+
1090
+ .deleteNode {
1091
+ display: inline-block;
1092
+ }
1093
+
1094
+ .tag_value {
1095
+ color: #5c3b8f;
1096
+ background-color: #5c3b8f25;
1097
+ margin: 0.25rem;
1098
+ font-size: 100%;
1099
+ }
1100
+
1101
+ .tag_value:hover {
1102
+ background-color: #5c3b8f50;
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
+ }
1113
+
1114
+ .modal-backdrop.in {
1115
+ filter: alpha(opacity=50);
1116
+ opacity: 0.5;
1117
+ }
1118
+ .modal-backdrop.fade {
1119
+ filter: alpha(opacity=0);
1120
+ opacity: 0;
1121
+ }
1122
+ .fade.in {
1123
+ opacity: 1;
1124
+ }
1125
+ .modal-backdrop {
1126
+ z-index: 1 !important;
1127
+ }
1128
+ .modal-backdrop {
1129
+ z-index: 1;
1130
+ }
1131
+ .modal-backdrop {
1132
+ position: fixed;
1133
+ top: 0;
1134
+ right: 0;
1135
+ bottom: 0;
1136
+ left: 0;
1137
+ z-index: 1;
1138
+ background-color: #00000075;
1139
+ }
1140
+ .fade {
1141
+ opacity: 0;
1142
+ -webkit-transition: opacity 0.15s linear;
1143
+ -o-transition: opacity 0.15s linear;
1144
+ transition: opacity 0.15s linear;
1145
+ }
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
+ }
1278
+ .partitionLink:hover {
1279
+ background-color: rgba(157, 147, 168, 0.15);
1280
+ }
1281
+ .partitionLink a:hover {
1282
+ text-decoration: none;
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
+ }
1548
+
1549
+ @keyframes spin {
1550
+ 0% {
1551
+ transform: rotate(0deg);
1552
+ }
1553
+ 100% {
1554
+ transform: rotate(360deg);
1555
+ }
1556
+ }