algomancy-quickstart 0.7.0__py3-none-any.whl
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.
- algomancy_quickstart/__init__.py +2 -0
- algomancy_quickstart/asset_manager.py +202 -0
- algomancy_quickstart/data_inference.py +517 -0
- algomancy_quickstart/main.py +62 -0
- algomancy_quickstart/quickstart.py +683 -0
- algomancy_quickstart/styling_wizard.py +347 -0
- algomancy_quickstart/templates/__init__.py +0 -0
- algomancy_quickstart/templates/algorithm.py.jinja +104 -0
- algomancy_quickstart/templates/assets/CQM-logo-white.png +0 -0
- algomancy_quickstart/templates/assets/cqm-button-white.png +0 -0
- algomancy_quickstart/templates/assets/cqm-button.png +0 -0
- algomancy_quickstart/templates/assets/cqm-logo.png +0 -0
- algomancy_quickstart/templates/assets/css/button_colors.css +285 -0
- algomancy_quickstart/templates/assets/css/cqm_loader.css +47 -0
- algomancy_quickstart/templates/assets/css/sidebar_layout.css +189 -0
- algomancy_quickstart/templates/assets/css/theme_colors.css +90 -0
- algomancy_quickstart/templates/assets/letter-c.svg +4 -0
- algomancy_quickstart/templates/assets/letter-m.svg +4 -0
- algomancy_quickstart/templates/assets/letter-q.svg +4 -0
- algomancy_quickstart/templates/assets/letters/letter-c.png +0 -0
- algomancy_quickstart/templates/assets/letters/letter-m.png +0 -0
- algomancy_quickstart/templates/assets/letters/letter-q.png +0 -0
- algomancy_quickstart/templates/assets/pepsi_girl.jpeg +0 -0
- algomancy_quickstart/templates/assets/style.css +421 -0
- algomancy_quickstart/templates/compare_page.py.jinja +133 -0
- algomancy_quickstart/templates/data_page.py.jinja +94 -0
- algomancy_quickstart/templates/etl_factory.py.jinja +108 -0
- algomancy_quickstart/templates/etl_factory_generated.py.jinja +82 -0
- algomancy_quickstart/templates/generated_schemas.py.jinja +55 -0
- algomancy_quickstart/templates/home_page.py.jinja +65 -0
- algomancy_quickstart/templates/kpi.py.jinja +76 -0
- algomancy_quickstart/templates/main.py.jinja +42 -0
- algomancy_quickstart/templates/main_custom.py.jinja +55 -0
- algomancy_quickstart/templates/main_generated_etl.py.jinja +72 -0
- algomancy_quickstart/templates/main_with_styling.py.jinja +83 -0
- algomancy_quickstart/templates/overview_page.py.jinja +98 -0
- algomancy_quickstart/templates/scenario_page.py.jinja +77 -0
- algomancy_quickstart/templates/schema.py.jinja +58 -0
- algomancy_quickstart/templates/styling_config.py.jinja +53 -0
- algomancy_quickstart-0.7.0.dist-info/METADATA +29 -0
- algomancy_quickstart-0.7.0.dist-info/RECORD +42 -0
- algomancy_quickstart-0.7.0.dist-info/WHEEL +4 -0
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
|
|
2
|
+
/* =========================
|
|
3
|
+
Data management page buttons
|
|
4
|
+
========================= */
|
|
5
|
+
|
|
6
|
+
.dm-derive-btn {
|
|
7
|
+
background-color: var(--derive-color);
|
|
8
|
+
color: var(--text-selected);
|
|
9
|
+
border-color: var(--derive-color);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.dm-derive-btn:hover, .dm-derive-btn:focus, .dm-derive-btn:active, .dm-derive-btn:active:focus {
|
|
13
|
+
background-color: var(--derive-color-hover);
|
|
14
|
+
color: var(--text-selected);
|
|
15
|
+
border-color: var(--derive-color-hover);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.dm-delete-btn {
|
|
19
|
+
background-color: var(--delete-color);
|
|
20
|
+
color: var(--text-selected);
|
|
21
|
+
border-color: var(--delete-color);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.dm-delete-btn:hover, .dm-delete-btn:focus, .dm-delete-btn:active, .dm-delete-btn:active:focus {
|
|
25
|
+
background-color: var(--delete-color-hover);
|
|
26
|
+
color: var(--text-selected);
|
|
27
|
+
border-color: var(--delete-color-hover);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.dm-save-btn {
|
|
31
|
+
background-color: var(--save-color);
|
|
32
|
+
color: var(--text-selected);
|
|
33
|
+
border-color: var(--save-color);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.dm-save-btn:hover, .dm-save-btn:focus, .dm-save-btn:active, .dm-save-btn:active:focus {
|
|
37
|
+
background-color: var(--save-color-hover);
|
|
38
|
+
color: var(--text-selected);
|
|
39
|
+
border-color: var(--save-color-hover);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.dm-import-btn {
|
|
43
|
+
background-color: var(--import-color);
|
|
44
|
+
color: var(--text-selected);
|
|
45
|
+
border-color: var(--import-color);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.dm-import-btn:hover, .dm-import-btn:focus, .dm-import-btn:active, .dm-import-btn:active:focus {
|
|
49
|
+
background-color: var(--import-color-hover);
|
|
50
|
+
color: var(--text-selected);
|
|
51
|
+
border-color: var(--import-color-hover);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.dm-upload-btn {
|
|
55
|
+
background-color: var(--upload-color);
|
|
56
|
+
color: var(--text-selected);
|
|
57
|
+
border-color: var(--upload-color);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.dm-upload-btn:hover, .dm-upload-btn:focus, .dm-upload-btn:active, .dm-upload-btn:active:focus {
|
|
61
|
+
background-color: var(--upload-color-hover);
|
|
62
|
+
color: var(--text-selected);
|
|
63
|
+
border-color: var(--upload-color-hover);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.dm-download-btn {
|
|
67
|
+
background-color: var(--download-color);
|
|
68
|
+
color: var(--text-selected);
|
|
69
|
+
border-color: var(--download-color);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.dm-download-btn:hover, .dm-download-btn:focus, .dm-download-btn:active, .dm-download-btn:active:focus {
|
|
73
|
+
background-color: var(--download-color-hover);
|
|
74
|
+
color: var(--text-selected);
|
|
75
|
+
border-color: var(--download-color-hover);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.dm-derive-btn:disabled, .dm-delete-btn.disabled, .dm-save-btn.disabled, .dm-import-btn.disabled, .dm-upload-btn.disabled, .dm-download-btn:disabled {
|
|
79
|
+
background-color: var(--disabled_color);
|
|
80
|
+
color: var(--text-selected);
|
|
81
|
+
border-color: var(--disabled_color);
|
|
82
|
+
opacity: 0.5;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/* =========================
|
|
86
|
+
Data modal buttons
|
|
87
|
+
========================= */
|
|
88
|
+
.dm-derive-modal-confirm-btn {
|
|
89
|
+
background-color: var(--derive-modal-confirm-color);
|
|
90
|
+
color: var(--text-selected);
|
|
91
|
+
border-color: var(--derive-modal-confirm-color);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.dm-derive-modal-confirm-btn:hover, .dm-derive-modal-confirm-btn:focus,
|
|
95
|
+
.dm-derive-modal-confirm-btn:active, .dm-derive-modal-confirm-btn:active:focus {
|
|
96
|
+
background-color: var(--derive-modal-confirm-color-hover);
|
|
97
|
+
color: var(--text-selected);
|
|
98
|
+
border-color: var(--derive-modal-confirm-color-hover);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.dm-derive-modal-cancel-btn {
|
|
102
|
+
background-color: var(--derive-modal-cancel-color);
|
|
103
|
+
color: var(--text-selected);
|
|
104
|
+
border-color: var(--derive-modal-cancel-color);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.dm-derive-modal-cancel-btn:hover, .dm-derive-modal-cancel-btn:focus,
|
|
108
|
+
.dm-derive-modal-cancel-btn:active, .dm-derive-modal-cancel-btn:active:focus {
|
|
109
|
+
background-color: var(--derive-modal-cancel-color-hover);
|
|
110
|
+
color: var(--text-selected);
|
|
111
|
+
border-color: var(--derive-modal-cancel-color-hover);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Delete modal buttons */
|
|
115
|
+
.dm-delete-modal-confirm-btn {
|
|
116
|
+
background-color: var(--delete-modal-confirm-color);
|
|
117
|
+
color: var(--text-selected);
|
|
118
|
+
border-color: var(--delete-modal-confirm-color);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.dm-delete-modal-confirm-btn:hover, .dm-delete-modal-confirm-btn:focus,
|
|
122
|
+
.dm-delete-modal-confirm-btn:active, .dm-delete-modal-confirm-btn:active:focus {
|
|
123
|
+
background-color: var(--delete-modal-confirm-color-hover);
|
|
124
|
+
color: var(--text-selected);
|
|
125
|
+
border-color: var(--delete-modal-confirm-color-hover);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
.dm-delete-modal-cancel-btn {
|
|
129
|
+
background-color: var(--delete-modal-cancel-color);
|
|
130
|
+
color: var(--text-selected);
|
|
131
|
+
border-color: var(--delete-modal-cancel-color);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.dm-delete-modal-cancel-btn:hover, .dm-delete-modal-cancel-btn:focus,
|
|
135
|
+
.dm-delete-modal-cancel-btn:active, .dm-delete-modal-cancel-btn:active:focus {
|
|
136
|
+
background-color: var(--delete-modal-cancel-color-hover);
|
|
137
|
+
color: var(--text-selected);
|
|
138
|
+
border-color: var(--delete-modal-cancel-color-hover);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* Save modal buttons */
|
|
142
|
+
.dm-save-modal-confirm-btn {
|
|
143
|
+
background-color: var(--save-modal-confirm-color);
|
|
144
|
+
color: var(--text-selected);
|
|
145
|
+
border-color: var(--save-modal-confirm-color);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.dm-save-modal-confirm-btn:hover, .dm-save-modal-confirm-btn:focus,
|
|
149
|
+
.dm-save-modal-confirm-btn:active, .dm-save-modal-confirm-btn:active:focus {
|
|
150
|
+
background-color: var(--save-modal-confirm-color-hover);
|
|
151
|
+
color: var(--text-selected);
|
|
152
|
+
border-color: var(--save-modal-confirm-color-hover);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.dm-save-modal-cancel-btn {
|
|
156
|
+
background-color: var(--save-modal-cancel-color);
|
|
157
|
+
color: var(--text-selected);
|
|
158
|
+
border-color: var(--save-modal-cancel-color);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.dm-save-modal-cancel-btn:hover, .dm-save-modal-cancel-btn:focus,
|
|
162
|
+
.dm-save-modal-cancel-btn:active, .dm-save-modal-cancel-btn:active:focus {
|
|
163
|
+
background-color: var(--save-modal-cancel-color-hover);
|
|
164
|
+
color: var(--text-selected);
|
|
165
|
+
border-color: var(--save-modal-cancel-color-hover);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Import modal buttons */
|
|
169
|
+
.dm-import-modal-confirm-btn {
|
|
170
|
+
background-color: var(--import-modal-confirm-color);
|
|
171
|
+
color: var(--text-selected);
|
|
172
|
+
border-color: var(--import-modal-confirm-color);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.dm-import-modal-confirm-btn:hover, .dm-import-modal-confirm-btn:focus,
|
|
176
|
+
.dm-import-modal-confirm-btn:active, .dm-import-modal-confirm-btn:active:focus {
|
|
177
|
+
background-color: var(--import-modal-confirm-color-hover);
|
|
178
|
+
color: var(--text-selected);
|
|
179
|
+
border-color: var(--import-modal-confirm-color-hover);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.dm-import-modal-cancel-btn {
|
|
183
|
+
background-color: var(--import-modal-cancel-color);
|
|
184
|
+
color: var(--text-selected);
|
|
185
|
+
border-color: var(--import-modal-cancel-color);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
.dm-import-modal-cancel-btn:hover, .dm-import-modal-cancel-btn:focus,
|
|
189
|
+
.dm-import-modal-cancel-btn:active, .dm-import-modal-cancel-btn:active:focus {
|
|
190
|
+
background-color: var(--import-modal-cancel-color-hover);
|
|
191
|
+
color: var(--text-selected);
|
|
192
|
+
border-color: var(--import-modal-cancel-color-hover);
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/* Upload modal buttons */
|
|
196
|
+
.dm-upload-modal-confirm-btn {
|
|
197
|
+
background-color: var(--upload-modal-confirm-color);
|
|
198
|
+
color: var(--text-selected);
|
|
199
|
+
border-color: var(--upload-modal-confirm-color);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.dm-upload-modal-confirm-btn:hover, .dm-upload-modal-confirm-btn:focus,
|
|
203
|
+
.dm-upload-modal-confirm-btn:active, .dm-upload-modal-confirm-btn:active:focus {
|
|
204
|
+
background-color: var(--upload-modal-confirm-color-hover);
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.dm-upload-modal-cancel-btn {
|
|
208
|
+
background-color: var(--upload-modal-cancel-color);
|
|
209
|
+
color: var(--text-selected);
|
|
210
|
+
border-color: var(--upload-modal-cancel-color);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.dm-upload-modal-cancel-btn:hover, .dm-upload-modal-cancel-btn:focus,
|
|
214
|
+
.dm-upload-modal-cancel-btn:active, .dm-upload-modal-cancel-btn:active:focus {
|
|
215
|
+
background-color: var(--upload-modal-cancel-color-hover);
|
|
216
|
+
color: var(--text-selected);
|
|
217
|
+
border-color: var(--upload-modal-cancel-color-hover);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/* Download modal buttons */
|
|
221
|
+
.dm-download-modal-confirm-btn {
|
|
222
|
+
background-color: var(--download-modal-confirm-color);
|
|
223
|
+
color: var(--text-selected);
|
|
224
|
+
border-color: var(--download-modal-confirm-color);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
.dm-download-modal-confirm-btn:hover, .dm-download-modal-confirm-btn:focus,
|
|
228
|
+
.dm-download-modal-confirm-btn:active, .dm-download-modal-confirm-btn:active:focus {
|
|
229
|
+
background-color: var(--download-modal-confirm-color-hover);
|
|
230
|
+
color: var(--text-selected);
|
|
231
|
+
border-color: var(--download-modal-confirm-color-hover);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.dm-download-modal-cancel-btn {
|
|
235
|
+
background-color: var(--download-modal-cancel-color);
|
|
236
|
+
color: var(--text-selected);
|
|
237
|
+
border-color: var(--download-modal-cancel-color);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.dm-download-modal-cancel-btn:hover, .dm-download-modal-cancel-btn:focus,
|
|
241
|
+
.dm-download-modal-cancel-btn:active, .dm-download-modal-cancel-btn:active:focus {
|
|
242
|
+
background-color: var(--download-modal-cancel-color-hover);
|
|
243
|
+
color: var(--text-selected);
|
|
244
|
+
border-color: var(--download-modal-cancel-color-hover);
|
|
245
|
+
}
|
|
246
|
+
/* =========================
|
|
247
|
+
Scenario management page buttons
|
|
248
|
+
========================= */
|
|
249
|
+
|
|
250
|
+
.new-scenario-button {
|
|
251
|
+
width: 100%;
|
|
252
|
+
background-color: var(--new-scenario-color);
|
|
253
|
+
border-color: var(--new-scenario-color);
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.new-scenario-button:hover, .new-scenario-button:focus, .new-scenario-button:active, .new-scenario-button:active:focus {
|
|
257
|
+
background-color: var(--new-scenario-color-hover);
|
|
258
|
+
border-color: var(--new-scenario-color-hover);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.new-scenario-confirm-button {
|
|
262
|
+
background-color: var(--new-scenario-modal-confirm-color);
|
|
263
|
+
color: var(--text-selected);
|
|
264
|
+
border-color: var(--new-scenario-modal-confirm-color);
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.new-scenario-confirm-button:hover, .new-scenario-confirm-button:focus,
|
|
268
|
+
.new-scenario-confirm-button:active, .new-scenario-confirm-button:active:focus {
|
|
269
|
+
background-color: var(--new-scenario-modal-confirm-color-hover);
|
|
270
|
+
color: var(--text-selected);
|
|
271
|
+
border-color: var(--new-scenario-modal-confirm-color-hover);
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
.new-scenario-cancel-button {
|
|
275
|
+
background-color: var(--new-scenario-modal-cancel-color);
|
|
276
|
+
color: var(--text-selected);
|
|
277
|
+
border-color: var(--new-scenario-modal-cancel-color);
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.new-scenario-cancel-button:hover, .new-scenario-cancel-button:focus,
|
|
281
|
+
.new-scenario-cancel-button:active, .new-scenario-cancel-button:active:focus {
|
|
282
|
+
background-color: var(--new-scenario-modal-cancel-color-hover);
|
|
283
|
+
color: var(--text-selected);
|
|
284
|
+
border-color: var(--new-scenario-modal-cancel-color-hover);
|
|
285
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
|
|
2
|
+
/* =========================
|
|
3
|
+
CQM loader animation
|
|
4
|
+
========================= */
|
|
5
|
+
@keyframes cqm-fade {
|
|
6
|
+
0%, 16.67% { opacity: 0; }
|
|
7
|
+
33.33%, 50% { opacity: 1; }
|
|
8
|
+
66.67%, 100% { opacity: 0; }
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.cqm-loader {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
gap: 5px;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.cqm-letter {
|
|
19
|
+
width: 100px; /* Increased from 30px */
|
|
20
|
+
height: 100px; /* Increased from 30px */
|
|
21
|
+
opacity: 0;
|
|
22
|
+
/* Use theme-secondary color, will automatically update when theme changes */
|
|
23
|
+
filter: brightness(0) saturate(100%) invert(14%) sepia(46%) saturate(3086%) hue-rotate(268deg) brightness(93%) contrast(113%);
|
|
24
|
+
transition: filter 0.3s ease; /* Smooth color transitions when theme changes */
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.cqm-letter.c {
|
|
28
|
+
animation: cqm-fade 3s infinite;
|
|
29
|
+
animation-delay: 0s;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.cqm-letter.q {
|
|
33
|
+
animation: cqm-fade 3s infinite;
|
|
34
|
+
animation-delay: 0.5s;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.cqm-letter.m {
|
|
38
|
+
animation: cqm-fade 3s infinite;
|
|
39
|
+
animation-delay: 1s;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.cqm-loader-text {
|
|
43
|
+
margin-left: 15px;
|
|
44
|
+
font-weight: 500;
|
|
45
|
+
font-size: 1.5rem;
|
|
46
|
+
color: var(--theme-primary); /* Use theme text color */
|
|
47
|
+
}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
|
|
2
|
+
/* Update the sidebar-layout class with proper positioning */
|
|
3
|
+
/* Sidebar layout */
|
|
4
|
+
.sidebar-layout {
|
|
5
|
+
position: fixed;
|
|
6
|
+
top: 0;
|
|
7
|
+
left: 0;
|
|
8
|
+
bottom: 0;
|
|
9
|
+
width: 250px;
|
|
10
|
+
padding: 1rem 1rem;
|
|
11
|
+
background-color: var(--theme-primary);
|
|
12
|
+
transition: width 0.3s ease-in-out;
|
|
13
|
+
overflow-x: hidden;
|
|
14
|
+
z-index: 1030; /* Make sure sidebar appears above content */
|
|
15
|
+
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/* Handle expanded and collapsed states */
|
|
19
|
+
.sidebar-layout.expanded {
|
|
20
|
+
width: 250px;
|
|
21
|
+
padding: 1rem 1rem;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.sidebar-layout.collapsed {
|
|
25
|
+
width: 60px;
|
|
26
|
+
padding: 1rem 0.5rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
/* Pills and text color */
|
|
31
|
+
.sidebar-layout .nav-pills .nav-link {
|
|
32
|
+
color: var(--theme-secondary);
|
|
33
|
+
transition: background-color, color 0.2s ease-in-out;
|
|
34
|
+
}
|
|
35
|
+
.sidebar-layout .nav-pills .nav-link.active, .nav-link.active:hover{
|
|
36
|
+
background-color: var(--theme-secondary) !important;
|
|
37
|
+
color: var(--text-selected, #ffffff) !important;
|
|
38
|
+
}
|
|
39
|
+
.sidebar-layout .nav-pills .nav-link:hover {
|
|
40
|
+
background-color: var(--theme-tertiary);
|
|
41
|
+
color: var(--text-highlight, #ffffff);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* Icon color */
|
|
45
|
+
.sidebar-layout .nav-pills .nav-link i {
|
|
46
|
+
color: var(--theme-secondary);
|
|
47
|
+
transition: background-color, color 0.2s ease-in-out;
|
|
48
|
+
}
|
|
49
|
+
.sidebar-layout .nav-pills .nav-link.active i {
|
|
50
|
+
color: var(--text-selected, #ffffff);
|
|
51
|
+
}
|
|
52
|
+
.sidebar-layout .nav-pills .nav-link.active:hover i {
|
|
53
|
+
color: var(--text-selected, #ffffff);
|
|
54
|
+
}
|
|
55
|
+
.sidebar-layout .nav-pills .nav-link:hover i {
|
|
56
|
+
color: var(--text-highlight, #ffffff);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* Sidebar NavLink container stays wide enough for text, shrinks when collapsed */
|
|
60
|
+
.sidebar-layout .nav-link {
|
|
61
|
+
min-width: 200px;
|
|
62
|
+
transition: min-width 0.3s cubic-bezier(.4,2,.5,1);
|
|
63
|
+
justify-content: flex-start;
|
|
64
|
+
}
|
|
65
|
+
.sidebar-layout.collapsed .nav-link {
|
|
66
|
+
min-width: 56px; /* Just icon, no text */
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/* Text fades and shrinks but remains rendered for the animation */
|
|
70
|
+
.sidebar-content-fade {
|
|
71
|
+
opacity: 1;
|
|
72
|
+
max-width: 200px;
|
|
73
|
+
transition: opacity 0.2s, max-width 0.3s;
|
|
74
|
+
white-space: nowrap;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
display: inline-block;
|
|
77
|
+
}
|
|
78
|
+
.sidebar-layout.collapsed .sidebar-content-fade {
|
|
79
|
+
opacity: 0;
|
|
80
|
+
max-width: 0;
|
|
81
|
+
pointer-events: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
/* Sidebar toggle button */
|
|
86
|
+
.sidebar-layout .toggle-sidebar-button {
|
|
87
|
+
position: absolute;
|
|
88
|
+
bottom: 16px;
|
|
89
|
+
right: -20px;
|
|
90
|
+
z-index: 9999;
|
|
91
|
+
border-radius: 50%;
|
|
92
|
+
width: 60px;
|
|
93
|
+
height: 60px;
|
|
94
|
+
padding: 0;
|
|
95
|
+
display: flex;
|
|
96
|
+
align-items: center;
|
|
97
|
+
justify-content: center;
|
|
98
|
+
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
|
|
99
|
+
transition: transform 0.3s cubic-bezier(.4,2,.5,1);
|
|
100
|
+
background-color: var(--background-color) !important;
|
|
101
|
+
color: var(--theme-primary) !important;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* When collapsed: rotate 180deg */
|
|
105
|
+
.sidebar-layout.collapsed .toggle-sidebar-button {
|
|
106
|
+
transform: rotate(180deg);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/* When expanded: normal */
|
|
110
|
+
.sidebar-layout.expanded .toggle-sidebar-button {
|
|
111
|
+
transform: rotate(0deg);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Logo wrapper - expanded state */
|
|
115
|
+
.sidebar-logo-wrapper {
|
|
116
|
+
height: 72px; /* or your preferred height */
|
|
117
|
+
max-height: 72px;
|
|
118
|
+
transition:
|
|
119
|
+
opacity 0.18s cubic-bezier(.4,2,.5,1);
|
|
120
|
+
opacity: 1;
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
justify-content: center;
|
|
124
|
+
overflow: hidden;
|
|
125
|
+
width: 100%;
|
|
126
|
+
box-sizing: border-box;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.sidebar-logo-img {
|
|
130
|
+
max-height: 90%; /* ensures scaling inside wrapper */
|
|
131
|
+
max-width: 100%;
|
|
132
|
+
display: block;
|
|
133
|
+
margin: 0 auto;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* Both expanded and collapsed logo classes should always be rendered—don't toggle display! */
|
|
137
|
+
.sidebar-layout .expanded-logo {
|
|
138
|
+
opacity: 1;
|
|
139
|
+
transition:
|
|
140
|
+
height 0.25s cubic-bezier(.4,2,.5,1),
|
|
141
|
+
opacity 0.2s ease-in-out;
|
|
142
|
+
overflow: hidden;
|
|
143
|
+
will-change: opacity;
|
|
144
|
+
display: block;
|
|
145
|
+
margin-bottom: 12px; /* or as needed, include for smooth collapse */
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
.sidebar-layout.collapsed .expanded-logo {
|
|
149
|
+
opacity: 0;
|
|
150
|
+
margin-bottom: 0;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* If you have a "collapsed" version of logo (smaller logo or icon) */
|
|
154
|
+
.sidebar-layout .collapsed-logo {
|
|
155
|
+
opacity: 0;
|
|
156
|
+
transition:
|
|
157
|
+
height 0.2s cubic-bezier(.4,2,.5,1),
|
|
158
|
+
opacity 0.12s linear;
|
|
159
|
+
overflow: hidden;
|
|
160
|
+
display: block;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.sidebar-layout.collapsed .collapsed-logo {
|
|
164
|
+
opacity: 1;
|
|
165
|
+
margin-bottom: 12px;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Sidebar nav/link styling */
|
|
169
|
+
.sidebar-nav {
|
|
170
|
+
display: flex;
|
|
171
|
+
flex-direction: column;
|
|
172
|
+
gap: 8px;
|
|
173
|
+
padding: 0;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.sidebar-link {
|
|
177
|
+
display: flex;
|
|
178
|
+
align-items: center;
|
|
179
|
+
padding: 10px 16px;
|
|
180
|
+
color: #f8f9fa;
|
|
181
|
+
text-decoration: none;
|
|
182
|
+
border-radius: 4px;
|
|
183
|
+
transition: background 0.2s;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.sidebar-link:hover, .sidebar-link.active {
|
|
187
|
+
background: #343a40;
|
|
188
|
+
color: #fff;
|
|
189
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
/* =========================
|
|
2
|
+
Theme variables
|
|
3
|
+
Note: using ::root here intentionally unchanged to preserve current behavior
|
|
4
|
+
========================= */
|
|
5
|
+
:root {
|
|
6
|
+
--background-color: #ffffff;
|
|
7
|
+
--theme-primary: #26cd0a;
|
|
8
|
+
--theme-secondary: #0050ff;
|
|
9
|
+
--theme-tertiary: #FFFFFF;
|
|
10
|
+
--text-color: #000000;
|
|
11
|
+
--text-selected: #000000;
|
|
12
|
+
--text-highlight: #000000;
|
|
13
|
+
--card-surface: #FFFFFF;
|
|
14
|
+
--button-text: #FFFFFF;
|
|
15
|
+
|
|
16
|
+
/* data management page button colors*/
|
|
17
|
+
--derive-color: #0078D4;
|
|
18
|
+
--derive-color-hover: #005a9e;
|
|
19
|
+
--delete-color: #D13438;
|
|
20
|
+
--delete-color-hover: #b92629;
|
|
21
|
+
--save-color: #a6a6a6;
|
|
22
|
+
--save-color-hover: #8c8c8c;
|
|
23
|
+
--import-color: #0078D4;
|
|
24
|
+
--import-color-hover: #005a9e;
|
|
25
|
+
--upload-color: #26cd0a;
|
|
26
|
+
--upload-color-hover: #1b9e08;
|
|
27
|
+
--download-color: #0078D4;
|
|
28
|
+
--download-color-hover: #005a9e;
|
|
29
|
+
--disabled_color: #5a5a5a;
|
|
30
|
+
|
|
31
|
+
/* derive modal button colors*/
|
|
32
|
+
--derive-modal-confirm-color: #0078D4;
|
|
33
|
+
--derive-modal-confirm-color-hover: #005a9e;
|
|
34
|
+
--derive-modal-cancel-color: #D13438;
|
|
35
|
+
--derive-modal-cancel-color-hover: #b92629;
|
|
36
|
+
|
|
37
|
+
/* delete modal button colors*/
|
|
38
|
+
--delete-modal-confirm-color: #D13438;
|
|
39
|
+
--delete-modal-confirm-color-hover: #b92629;
|
|
40
|
+
--delete-modal-cancel-color: #0078D4;
|
|
41
|
+
--delete-modal-cancel-color-hover: #005a9e;
|
|
42
|
+
|
|
43
|
+
/* save modal button colors*/
|
|
44
|
+
--save-modal-confirm-color: #a6a6a6;
|
|
45
|
+
--save-modal-confirm-color-hover: #8c8c8c;
|
|
46
|
+
--save-modal-cancel-color: #0078D4;
|
|
47
|
+
--save-modal-cancel-color-hover: #005a9e;
|
|
48
|
+
|
|
49
|
+
/* import modal button colors*/
|
|
50
|
+
--import-modal-confirm-color: #0078D4;
|
|
51
|
+
--import-modal-confirm-color-hover: #005a9e;
|
|
52
|
+
--import-modal-cancel-color: #D13438;
|
|
53
|
+
--import-modal-cancel-color-hover: #b92629;
|
|
54
|
+
|
|
55
|
+
/* upload modal button colors*/
|
|
56
|
+
--upload-modal-confirm-color: rgba(38, 205, 10, 0.52);
|
|
57
|
+
--upload-modal-confirm-color-hover: #1b9e08;
|
|
58
|
+
--upload-modal-cancel-color: #0078D4;
|
|
59
|
+
--upload-modal-cancel-color-hover: #005a9e;
|
|
60
|
+
|
|
61
|
+
/* download modal button colors*/
|
|
62
|
+
--download-modal-confirm-color: #0078D4;
|
|
63
|
+
--download-modal-confirm-color-hover: #005a9e;
|
|
64
|
+
--download-modal-cancel-color: #D13438;
|
|
65
|
+
--download-modal-cancel-color-hover: #b92629;
|
|
66
|
+
|
|
67
|
+
/* new scenario button colors*/
|
|
68
|
+
--new-scenario-color: #0078D4;
|
|
69
|
+
--new-scenario-color-hover: #005a9e;
|
|
70
|
+
|
|
71
|
+
/* new scenario modal colors */
|
|
72
|
+
--new-scenario-modal-confirm-color: #0078D4;
|
|
73
|
+
--new-scenario-modal-confirm-color-hover: #005a9e;
|
|
74
|
+
--new-scenario-modal-cancel-color: #D13438;
|
|
75
|
+
--new-scenario-modal-cancel-color-hover: #b92629;
|
|
76
|
+
|
|
77
|
+
/* compare toggle switch colors*/
|
|
78
|
+
--compare-toggle-color: #0078D4;
|
|
79
|
+
--compare-active-handle-url: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");
|
|
80
|
+
--compare-inactive-handle-url: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");
|
|
81
|
+
--compare-focussed-handle-url: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");
|
|
82
|
+
|
|
83
|
+
/* switch styling */
|
|
84
|
+
--toggle-background-color: #676767;
|
|
85
|
+
--toggle-shadow-color: #ff6262;
|
|
86
|
+
--toggle-active-color: #FFFFFF;
|
|
87
|
+
--toggle-handle-selected: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");;
|
|
88
|
+
--toggle-handle-focussed: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");;
|
|
89
|
+
--toggle-handle-inactive: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2326CD0A84'/%3e%3c/svg%3e");;
|
|
90
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg version="1.1" viewBox="0 0 3280 1664" width="205" height="104" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path transform="translate(792,127)" d="m0 0h2203l17 1 8 2 6 4v2l4 2 10 3 15 2 12 5 11 9 16 16 2 1v2h2v2h2l7 8 9 12 4 13 2 9 1 12 9 11 3 12 1 12v48l-3 14-8 13-5 13-6 9-9 11-12 13-14 14-9 7-5 4-16 5-11 8-7 3-8 1-33 1-2162 1-37 1-5 3-6 8-10 2-9 1-7-1-21 3-10 5-9 6-10 2-22 12-18 8-11 7-9 5-10 4-9 7-14 12-21 21-5 6-7 6-1 2h-2l-2 4-7 6-7 8-16 15-6 7-8 7-7 9-5 5-5 13-6 12-6 9-6 15-9 15-6 14-4 9-7 11-3 16-2 43-2 9-2 3h-2v2l-5 5-1 2-2 42-1 34 2 24h2l5 5 3 4 2 7 1 8 1 19 3 17 4 7 5 8 9 21 9 16 7 16 9 16 5 12 8 10 9 10 82 82 11 9 10 6 17 8 12 7 20 9 9 6 23 10 11 8 10 3h16l10-1 14 3 6 4 5 7 10 1 32 1 2136 1 135 1 3 2v297l-1 2-3 1-88 1h-2232l-37-1-19-1-5-3-5-6-5-2-9-1-6-1-1 1h-7l-11-3h-9l-8-3v-2l-5-2-4-3-5-1-6-1-16-4-9-3-13-8-9-2-13-6-11-8-14-3-13-1-4-1-11-9-8-8-10-8-5-3-8-1-13-7-11-8-13-4-11-8-12-11-8-7-4-2-8-1-9-6-15-13-24-24v-2l-4-2-28-28v-2l-4-2v-2h-2l-7-8-12-13-6-12-4-9-9-10-7-8-9-10-7-7-9-11-4-10-2-7-9-10-9-11-8-10-8-20-7-12-5-16-3-17-3-5v-2h-2l-6-12-6-16-7-12-4-13-1-4-1-18-1-14-4-6-5-5-3-8-2-12-1-21v-9l-3-7-9-8-2-19-1-29v-69l1-78 2-16 5-8 7-8 1-7 1-23 3-17 5-10 4-5 2-5 1-17 2-18 2-9 7-12 5-9 4-11 12-22 5-12 10-18 5-13 11-19 6-15 10-16 5-13 4-6 4-5h2l2-4 9-11 25-25 7-9 6-7 4-14 7-9 4-4h2l2-4 11-12 30-30 10-8 9-6 12-5 12-10 11-9 9-9 16-12 17-8 14-8 19-9 16-9 14-6 14-8 20-9 14-8 18-8 12-7 12-3 6-1 26-2 9-3 10-8 18-2 18-1 16-2 6-5 5-6z" fill="#FDFDFD"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg version="1.1" viewBox="0 0 3520 1664" width="220" height="104" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path transform="translate(549,127)" d="m0 0h2364l21 1 7 2 5 5 2 5 19 2h17l18 5 11 7 13 5 11 5 6 4 10 5 7 1h8l13 5 9 7 16 13 5 3 16 8 9 6 13 11 10 7 16 8 9 6 16 15 16 16 11 14 5 9 4 10 8 10 14 15 8 9 10 14 11 21 9 17 12 26 7 26 4 11 5 11 6 26 2 8 7 8 3 7 1 14 1 33v963l-1 2-4 1-78 1h-218l-4-3-1-12-1-32v-881l1-46v-25l-8-10-9-10-7-8-5-8-5-13-6-8-8-8-12-7-10-4-18-10-16-6-10-7-4-3-4-1-30-1h-1012l-1 39-1 799-1 179-2 15-8 13-7 17-9 12-9 10-7 8-12 12-13 10-12 6-23 11-14 3-13 1h-62l-10-2-9-5-19-10-14-10-7-7-8-7v-2l-3-1-7-8-11-12-8-12-9-20-6-11-2-10-1-17-1-45v-880l1-76h-1043l-7 1-7 11-2 1-15 2h-13l-8 3-13 12-10 8-3 4h-2v2l-8 7-9 11-5 6-4 8-5 15-7 7-2 4-2 47-1 625v325l-1 2-4 1-74 1-202 1-22-1-2-2-1-11-1-25v-729l1-205 1-45 1-11 5-10 7-9 4-24 4-11 8-15 6-14 9-15 10-22 8-14 7-16 10-11 9-11 9-9 8-10 5-6 4-12 5-8 8-8 7-9 19-19 11-9 8-6 11-4 8-6 16-13 12-12 13-10 34-17 6-2 20-3 10-5 9-6 16-5 14-9 8-3 6-1 22-1 16-2 5-3 7-8z" fill="#FDFDFD"/>
|
|
4
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<svg version="1.1" viewBox="0 0 3920 1664" width="245" height="104" xmlns="http://www.w3.org/2000/svg">
|
|
3
|
+
<path transform="translate(789,127)" d="m0 0h1988l29 1 8 2 2 1 4 9 13 2h7l4-1h7l9 1 15 1 16 4 14 8 7 2 15 2 15 5 7 5 28 7 12 5 19 9 28 14 17 8 10 6 21 11 12 10 16 11 18 10 17 14 31 31 6 5 6 7 6 5 6 7 6 5 7 8 45 45 9 11 10 14 7 13 12 16 11 17 12 23 8 16 15 29 8 16 12 25 8 18 9 31 7 16 4 21 3 17 315 1 12 2 6 3 5 6 6 2 20 3 13 5 11 6 17 8 13 10 7 6v2h2v2l4 2v2l4 2 14 15 9 13 4 15 1 4v13l10 10 3 10 1 11v26l-2 9-9 8-4 9v7l1 6-3 13-6 9-14 15-9 10-25 25-8 7-9 8-4 2-20-2-9 1-6 8-3 5-10 1-44 1-294 1-1 6-1 19-3 17-8 10-3 9v9l-3 17-4 6-4 4h-2l-3 11-3 12-4 6-4 2-2 4-2 5-1 14-4 18-10 14-6 16-6 9h-2l-2 4-10 12-5 4-6 18-7 9-12 13-5 5-9 10-85 85-7 6-7 8-12 11-11 11-10 8-5 3-8 1-9 6-11 10-10 7-8 5-10 4-21 12-12 5-19 10-19 8-12 7-21 6-8 1-11 6-8 5-17 5-9 5-5 4-13 3-23 2-31 1-3 1-6 11-2 1-80 2h-1969l-36-1-19-1-5-2-6-7-2-1-10-1-4-2-5 1h-7l-11-3h-9l-7-3-12-8-9-1-16-4-9-3-14-9-9-1-14-7-9-7v-2l-6 1-20-3-4-1-7-4-10-7-13-4-8-5-10-9-8-7-8-6-3-2-12-3-8-6-14-12-8-7-4-3-10-2-9-6-15-13-24-24v-2l-4-2-32-32v-2h-2l-7-8-12-13-6-11-3-8-7-9-9-10-5-5-9-10-4-4v-2h-2l-7-11-6-15-9-15-7-16-8-11-9-11-6-7-3-7-5-26-5-9-4-5-7-19-10-19-4-13-2-12-1-5-3-6-5-5-3-8-2-11-1-19v-21l-1-10-4-6-2-1v-2l-4-2-2-4-1-11-1-25v-92l1-63 1-13 4-10 7-7 2-4 1-7 1-37 3-19 5-10 4-4 2-7 3-18 5-13 8-15 5-13 10-17 8-18 8-14 6-15 11-19 5-13 11-18 5-13 4-6 9-10 8-10 9-9 7-9 6-7 4-13 4-6 3-4h2v-2h2v-2h2l2-4 9-10 3-3h2l1-3h2l2-4 12-12h2l2-4 11-10 10-8 16-7 13-11 11-9 24-24 12-9 8-5 11-5 17-10 18-8 14-8 16-7 14-8 20-9 15-8 15-4 13-2 10-5 8-5 19-4 12-2 9-5 7-5 18-2 18-1 15-2 6-5 3-5 2-1zm40 304-37 1-5 2-7 9-2 1-32 2-15 3-8 4-9 6-10 2-22 12-18 8-11 7-22 11-13 11-10 9-19 19v2l-3 1-9 9v2h-2l-6 7-4 3v2l-3 1-7 8-12 11-2 4-4 2v2l-4 2-11 12v2l-4 2-4 6-6 18-8 10-8 22-9 13-3 15-2 7-1 12-7 8-3 5-3 17-1 21-3 15-5 5-3 2-2 6-2 23v39l2 5 9 7 2 6 1 9 1 34 2 22 1 2h2l1 3 5 5 2 5 5 28 5 10 5 8 7 18 9 15 7 16 8 10 9 10 83 83h2v2l14 11 22 11 10 9 11 9 5 4 10 3 13 1 16 5 7 7 16 3h20l16 3 6 3 7 8 16 1 33 1 1094 1h240l529-1 55-1 22-1 5-4 4-6 1-3h15l13-1h12l12-3 7-4 10-6 13-5 19-11 12-5 17-12 17-13 16-8 11-8 15-13 40-40 7-8 2-4h2l10-14 7-16 7-11 3-6 5-14 7-11 4-7 1-5h-172l-689-1-3-3-2-29v-95l1-155 2-12 6-10 10-10 4-2 23-1 46-1h545l222-1 7-1-1-5-11-17-11-21-13-18-8-11-9-17-12-14-7-8-9-9-1-2h-2l-2-4-4-4h-2l-2-4-8-7-10-9-9-7-13-5-14-10-11-10-11-7-16-6-11-6-6-3-4-1-13-4-14-2-14-8-12-3-7-1-3 1-15-4h-9l-7-2-9-7-13-2h-12l-19-1-38-1z" fill="#FDFDFD"/>
|
|
4
|
+
</svg>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|