basic-report 0.2.1__tar.gz → 0.3.0__tar.gz

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 (56) hide show
  1. {basic_report-0.2.1 → basic_report-0.3.0}/PKG-INFO +1 -1
  2. {basic_report-0.2.1 → basic_report-0.3.0}/pyproject.toml +1 -1
  3. basic_report-0.3.0/src/basic_report/configs/default.yaml +500 -0
  4. basic_report-0.3.0/src/basic_report/css_and_scripts/basic_report/section_title.css +41 -0
  5. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/heatmap.py +5 -0
  6. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/page.py +133 -0
  7. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/report.py +81 -3
  8. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/base.html +1 -0
  9. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/colors.css +12 -0
  10. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/heatmap.css +4 -0
  11. basic_report-0.3.0/src/basic_report/templates/elements/cards.html +22 -0
  12. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/report_ball_section.html +9 -9
  13. basic_report-0.3.0/src/basic_report/templates/elements/section_title.html +5 -0
  14. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/utils.py +9 -19
  15. basic_report-0.2.1/src/basic_report/configs/default.yaml +0 -242
  16. {basic_report-0.2.1 → basic_report-0.3.0}/LICENSE.md +0 -0
  17. {basic_report-0.2.1 → basic_report-0.3.0}/README.md +0 -0
  18. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/__init__.py +0 -0
  19. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/bootstrap/bootstrap.min.css +0 -0
  20. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/bootstrap/bootstrap.min.js +0 -0
  21. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/bootstrap/jquery-3.3.1.slim.min.js +0 -0
  22. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/bootstrap/popper.min.js +0 -0
  23. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/datatables/dataTables.bootstrap4.min.js +0 -0
  24. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/datatables/jquery.dataTables.min.js +0 -0
  25. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/CalendarLabel.min.js +0 -0
  26. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/Legend.min.js +0 -0
  27. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/Tooltip.min.js +0 -0
  28. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/cal-heatmap.css +0 -0
  29. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/cal-heatmap.min.js +0 -0
  30. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/d3.v7.min.js +0 -0
  31. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/css_and_scripts/heatmap/popper.min.js +0 -0
  32. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/accordion.css +0 -0
  33. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/navbar.css +0 -0
  34. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/site.css +0 -0
  35. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/table.css +0 -0
  36. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/css/tabs.css +0 -0
  37. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/accordion.html +0 -0
  38. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/columns.html +0 -0
  39. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/global_links.html +0 -0
  40. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/header.html +0 -0
  41. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/image.html +0 -0
  42. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/list.html +0 -0
  43. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/navbar_left.html +0 -0
  44. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/navbar_right.html +0 -0
  45. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/navbar_top.html +0 -0
  46. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/report_header.html +0 -0
  47. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/sublevel.html +0 -0
  48. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/table.html +0 -0
  49. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/tabs.html +0 -0
  50. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/elements/text.html +0 -0
  51. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/base.html +0 -0
  52. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/button_next.html +0 -0
  53. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/button_prev.html +0 -0
  54. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/heatmap.html +0 -0
  55. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/legend.html +0 -0
  56. {basic_report-0.2.1 → basic_report-0.3.0}/src/basic_report/templates/heatmap/script.html +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: basic-report
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: A lightweight Python package for generating clean, professional static HTML reports.
5
5
  Keywords: html,report,static,responsive,website
6
6
  Author: Björn Scholz
@@ -4,7 +4,7 @@ build-backend = "uv_build"
4
4
 
5
5
  [project]
6
6
  name = "basic-report"
7
- version = "0.2.1"
7
+ version = "0.3.0"
8
8
  description = "A lightweight Python package for generating clean, professional static HTML reports."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.11"
@@ -0,0 +1,500 @@
1
+ timezone: 'Europe/Berlin'
2
+
3
+ css:
4
+ site:
5
+ dark:
6
+ site_face_color: '#fefefa'
7
+ site_background_color: '#1f1f1f'
8
+ light:
9
+ site_face_color: '#1f1f1f'
10
+ site_background_color: '#fefefa'
11
+
12
+ tabs:
13
+ dark:
14
+ tab_border_bottom_color: '#414951'
15
+ tab_border_bottom_size: '2px'
16
+ tab_inactive_font_color: '#7a848c'
17
+ tab_inactive_font_weight: 'lighter'
18
+ tab_hover_font_color: '#dae2ef'
19
+ tab_active_font_color: '#dae2ef'
20
+ tab_active_font_weight: 'bolder'
21
+ tab_active_background_color: 'none'
22
+ tab_active_border_bottom_color: '#dae2ef'
23
+ tab_active_border_bottom_size: '2px'
24
+ light:
25
+ tab_border_bottom_color: '#abb1bc'
26
+ tab_border_bottom_size: '2px'
27
+ tab_inactive_font_color: '#abb1bc'
28
+ tab_inactive_font_weight: 'lighter'
29
+ tab_hover_font_color: '#414951'
30
+ tab_active_font_color: '#414951'
31
+ tab_active_font_weight: 'bolder'
32
+ tab_active_background_color: 'none'
33
+ tab_active_border_bottom_color: '#414951'
34
+ tab_active_border_bottom_size: '2px'
35
+
36
+ accordion:
37
+ dark:
38
+ accordion_border_color: '#414951'
39
+ accordion_border_size: '1px'
40
+ accordion_link_color: '#dae2ef'
41
+ accordion_header_background_color: '#2a2d2e'
42
+ accordion_body_top_border_color: '#dae2ef'
43
+ accordion_body_top_border_size: '1px'
44
+ accordion_body_background_color: '#313131'
45
+ accordion_body_font_color: '#dae2ef'
46
+ light:
47
+ accordion_border_color: '#cbcbc7'
48
+ accordion_border_size: '1px'
49
+ accordion_link_color: '#91989d'
50
+ accordion_header_background_color: '#f1f1ed'
51
+ accordion_body_top_border_color: '#bebeba'
52
+ accordion_body_top_border_size: '1px'
53
+ accordion_body_background_color: '#fefffa'
54
+ accordion_body_font_color: '#828995'
55
+
56
+ table:
57
+ dark:
58
+ table_controls_background_color: '#2a2d2e'
59
+ table_controls_border_color: '#555'
60
+ table_controls_font_color: '#dae2ef'
61
+ table_pagination_border_color: '#313131'
62
+ table_pagination_hover_border_color: '#66b2ff'
63
+ table_pagination_hover_font_color: '#66b2ff'
64
+ table_pagination_active_background_color: '#66b2ff'
65
+ table_pagination_active_border_color: '#66b2ff'
66
+ table_pagination_active_font_color: '#000'
67
+ light:
68
+ table_controls_background_color: '#f1f1ed'
69
+ table_controls_border_color: '#dee2e6'
70
+ table_controls_font_color: '#414951'
71
+ table_pagination_border_color: '#313131'
72
+ table_pagination_hover_border_color: '#66b2ff'
73
+ table_pagination_hover_font_color: '#66b2ff'
74
+ table_pagination_active_background_color: '#66b2ff'
75
+ table_pagination_active_border_color: '#66b2ff'
76
+ table_pagination_active_font_color: '#000'
77
+
78
+ default_color_profiles:
79
+ dark:
80
+ report_header: steel
81
+ header: slate
82
+ sub-header: slate
83
+ table: slate
84
+ report_ball: slate
85
+ text: slate
86
+ navbar: slate
87
+ section_title:
88
+ text: slate
89
+ bars: slate
90
+ card:
91
+ text: steel
92
+ background: dark-gray
93
+ border: steel
94
+ header_text: medium-gray
95
+ header_background: ultra-dark-gray
96
+ header_border: steel
97
+ footer_text: medium-gray
98
+ footer_background: ultra-dark-gray
99
+ footer_border: steel
100
+
101
+ light:
102
+ report_header: steel
103
+ header: slate
104
+ sub-header: slate
105
+ table: slate
106
+ report_ball: slate
107
+ text: slate
108
+ navbar: slate
109
+ section_title:
110
+ text: slate
111
+ bars: slate
112
+ card:
113
+ text: slate
114
+ background: white
115
+ border: slate
116
+ header_text: slate
117
+ header_background: ultra-light-gray
118
+ header_border: slate
119
+ footer_text: slate
120
+ footer_background: ultra-light-gray
121
+ footer_border: slate
122
+
123
+ custom_colors:
124
+ black:
125
+ border_dark: '#000'
126
+ border_light: '#000'
127
+ font_and_background: '#000'
128
+ face_color: '#fff0f3'
129
+ link: '#449adc'
130
+ hover: '#b7dbff'
131
+
132
+ white:
133
+ border_dark: '#000'
134
+ border_light: '#1e1e1e'
135
+ font_and_background: '#fff'
136
+ face_color: '#52595d'
137
+ link: '#449adc'
138
+ hover: '#b7dbff'
139
+
140
+ ultra-light-gray:
141
+ border_dark: '#000'
142
+ border_light: '#1e1e1e'
143
+ font_and_background: '#d3d3d3'
144
+ face_color: '#52595d'
145
+ link: '#449adc'
146
+ hover: '#b7dbff'
147
+
148
+ light-gray:
149
+ border_dark: '#000'
150
+ border_light: '#1e1e1e'
151
+ font_and_background: '#a9a9a9'
152
+ face_color: '#52595d'
153
+ link: '#449adc'
154
+ hover: '#b7dbff'
155
+
156
+ medium-gray:
157
+ border_dark: '#000'
158
+ border_light: '#1e1e1e'
159
+ font_and_background: '#686a6c'
160
+ face_color: '#fff0f3'
161
+ link: '#449adc'
162
+ hover: '#b7dbff'
163
+
164
+ dark-gray:
165
+ border_dark: '#000'
166
+ border_light: '#1e1e1e'
167
+ font_and_background: '#3a3b3c'
168
+ face_color: '#fff0f3'
169
+ link: '#449adc'
170
+ hover: '#b7dbff'
171
+
172
+ ultra-dark-gray:
173
+ border_dark: '#000'
174
+ border_light: '#1e1e1e'
175
+ font_and_background: '#1c1c1c'
176
+ face_color: '#fff0f3'
177
+ link: '#449adc'
178
+ hover: '#b7dbff'
179
+
180
+ steel:
181
+ border_dark: '#000'
182
+ border_light: '#1e1e1e'
183
+ font_and_background: '#495057'
184
+ face_color: '#fff0f3'
185
+ link: '#ced4da'
186
+ hover: '#212529'
187
+
188
+ slate:
189
+ border_dark: '#000'
190
+ border_light: '#1e1e1e'
191
+ font_and_background: '#708090'
192
+ face_color: '#fff0f3'
193
+ link: '#abc4dc'
194
+ hover: '#374550'
195
+
196
+ broccoli:
197
+ border_dark: '#000'
198
+ border_light: '#1e1e1e'
199
+ font_and_background: '#026c3d'
200
+ face_color: '#fff0f3'
201
+ link: '#a1c5a1'
202
+ hover: '#001f11'
203
+
204
+ forest:
205
+ border_dark: '#000'
206
+ border_light: '#1e1e1e'
207
+ font_and_background: '#5d805d'
208
+ face_color: '#fff0f3'
209
+ link: '#c2c5aa'
210
+ hover: '#253325'
211
+
212
+ basil:
213
+ border_dark: '#000'
214
+ border_light: '#1e1e1e'
215
+ font_and_background: '#829f82'
216
+ face_color: '#fff0f3'
217
+ link: '#516351'
218
+ hover: '#191f19'
219
+
220
+ alpine:
221
+ border_dark: '#000'
222
+ border_light: '#1e1e1e'
223
+ font_and_background: '#1b5448'
224
+ face_color: '#fff0f3'
225
+ link: '#8cc8c8'
226
+ hover: '#14364a'
227
+
228
+ teal:
229
+ border_dark: '#000'
230
+ border_light: '#1e1e1e'
231
+ font_and_background: '#045d5d'
232
+ face_color: '#fff0f3'
233
+ link: '#a9d6e5'
234
+ hover: '#14364a'
235
+
236
+ lagoon:
237
+ border_dark: '#000'
238
+ border_light: '#1e1e1e'
239
+ font_and_background: '#8cc8c8'
240
+ face_color: '#fff0f3'
241
+ link: '#045d5d'
242
+ hover: '#0a201c'
243
+
244
+ navy:
245
+ border_dark: '#000'
246
+ border_light: '#1e1e1e'
247
+ font_and_background: '#003366'
248
+ face_color: '#fff0f3'
249
+ link: '#a9d6e5'
250
+ hover: '#14364a'
251
+
252
+ ocean:
253
+ border_dark: '#000'
254
+ border_light: '#1e1e1e'
255
+ font_and_background: '#2a6f97'
256
+ face_color: '#fff0f3'
257
+ link: '#a9d6e5'
258
+ hover: '#14364a'
259
+
260
+ sky:
261
+ border_dark: '#000'
262
+ border_light: '#1e1e1e'
263
+ font_and_background: '#87afc7'
264
+ face_color: '#fff0f3'
265
+ link: '#4c6270'
266
+ hover: '#14364a'
267
+
268
+ burgundy:
269
+ border_dark: '#000'
270
+ border_light: '#1e1e1e'
271
+ font_and_background: '#800020'
272
+ face_color: '#fff0f3'
273
+ link: '#ff8fa3'
274
+ hover: '#ac605e'
275
+
276
+ cherry:
277
+ border_dark: '#000'
278
+ border_light: '#1e1e1e'
279
+ font_and_background: '#c9184a'
280
+ face_color: '#fff0f3'
281
+ link: '#ff8fa3'
282
+ hover: '#800f2f'
283
+
284
+ peach:
285
+ border_dark: '#000'
286
+ border_light: '#1e1e1e'
287
+ font_and_background: '#f98b88'
288
+ face_color: '#fff0f3'
289
+ link: '#800020'
290
+ hover: '#c9184a'
291
+
292
+ cocoa:
293
+ border_dark: '#000'
294
+ border_light: '#1e1e1e'
295
+ font_and_background: '#35281e'
296
+ face_color: '#fff0f3'
297
+ link: '#e6b8a2'
298
+ hover: '#50362a'
299
+
300
+ earth:
301
+ border_dark: '#000'
302
+ border_light: '#1e1e1e'
303
+ font_and_background: '#9d6b53'
304
+ face_color: '#fff0f3'
305
+ link: '#e6b8a2'
306
+ hover: '#50362a'
307
+
308
+ cappuccino:
309
+ border_dark: '#000'
310
+ border_light: '#1e1e1e'
311
+ font_and_background: '#c09881'
312
+ face_color: '#fff0f3'
313
+ link: '#ffc394'
314
+ hover: '#1e1611'
315
+
316
+ papaya:
317
+ border_dark: '#000'
318
+ border_light: '#1e1e1e'
319
+ font_and_background: '#ff5f1f'
320
+ face_color: '#fff0f3'
321
+ link: '#ffc16a'
322
+ hover: '#582820'
323
+
324
+ sunset:
325
+ border_dark: '#000'
326
+ border_light: '#1e1e1e'
327
+ font_and_background: '#f25c54'
328
+ face_color: '#fff0f3'
329
+ link: '#ffc16a'
330
+ hover: '#582820'
331
+
332
+ coral:
333
+ border_dark: '#000'
334
+ border_light: '#1e1e1e'
335
+ font_and_background: '#f9966b'
336
+ face_color: '#fff0f3'
337
+ link: '#ffd9c2'
338
+ hover: '#582820'
339
+
340
+ saffron:
341
+ border_dark: '#000'
342
+ border_light: '#1e1e1e'
343
+ font_and_background: '#fbb917'
344
+ face_color: '#fff'
345
+ link: '#ffe2bd'
346
+ hover: '#eb6758'
347
+
348
+ sunrise:
349
+ border_dark: '#000'
350
+ border_light: '#1e1e1e'
351
+ font_and_background: '#f3b360'
352
+ face_color: '#fff'
353
+ link: '#ffe2bd'
354
+ hover: '#eb6758'
355
+
356
+ vanilla:
357
+ border_dark: '#000'
358
+ border_light: '#1e1e1e'
359
+ font_and_background: '#f3e5ab'
360
+ face_color: '#52595d'
361
+ link: '#9d6b53'
362
+ hover: '#eb6758'
363
+
364
+ ice:
365
+ border_dark: '#000'
366
+ border_light: '#1e1e1e'
367
+ font_and_background: '#f0f8ff'
368
+ face_color: '#4a7b9d'
369
+ link: '#449adc'
370
+ hover: '#b7dbff'
371
+
372
+ parchment:
373
+ border_dark: '#000'
374
+ border_light: '#1e1e1e'
375
+ font_and_background: '#fefbe3'
376
+ face_color: '#8b6a4d'
377
+ link: '#cca67a'
378
+ hover: '#e1cdad'
379
+
380
+ mpg-green:
381
+ border_dark: '#000'
382
+ border_light: '#1e1e1e'
383
+ font_and_background: '#006c66'
384
+ face_color: '#fff0f3'
385
+ link: '#00b8ae'
386
+ hover: '#00201e'
387
+
388
+ mpg-secondary-green:
389
+ border_dark: '#000'
390
+ border_light: '#1e1e1e'
391
+ font_and_background: '#005555'
392
+ face_color: '#fff0f3'
393
+ link: '#00a1a1'
394
+ hover: '#00201e'
395
+
396
+ mpg-blue:
397
+ border_dark: '#000'
398
+ border_light: '#1e1e1e'
399
+ font_and_background: '#29485d'
400
+ face_color: '#fff0f3'
401
+ link: '#5aa0cf'
402
+ hover: '#000d13'
403
+
404
+ mpg-secondary-blue:
405
+ border_dark: '#000'
406
+ border_light: '#1e1e1e'
407
+ font_and_background: '#006699'
408
+ face_color: '#fff0f3'
409
+ link: '#57b0ff'
410
+ hover: '#000d13'
411
+
412
+ mpg-lime:
413
+ border_dark: '#000'
414
+ border_light: '#1e1e1e'
415
+ font_and_background: '#cadb2a'
416
+ face_color: '#52595d'
417
+ link: '#6a7416'
418
+ hover: '#000d13'
419
+
420
+ mpg-secondary-lime:
421
+ border_dark: '#000'
422
+ border_light: '#1e1e1e'
423
+ font_and_background: '#d9e371'
424
+ face_color: '#52595d'
425
+ link: '#5e6330'
426
+ hover: '#000d13'
427
+
428
+ mpg-orange:
429
+ border_dark: '#000'
430
+ border_light: '#1e1e1e'
431
+ font_and_background: '#f58220'
432
+ face_color: '#fff0f3'
433
+ link: '#ffd15e'
434
+ hover: '#000d13'
435
+
436
+ mpg-secondary-orange:
437
+ border_dark: '#000'
438
+ border_light: '#1e1e1e'
439
+ font_and_background: '#f8a35c'
440
+ face_color: '#fff0f3'
441
+ link: '#774e2c'
442
+ hover: '#000d13'
443
+
444
+ heatmap:
445
+ misc:
446
+ range: 5
447
+ animation_duration: 200
448
+ vertical_orientation: False
449
+ tooltip_enabled: True
450
+ tooltip_function: 'predefined:date+value'
451
+ tooltip_precision: 2
452
+ legend_width: 300
453
+ legend_label: 'Test Legend'
454
+ legend_font_size: 14
455
+ legend_font_weight: 450
456
+
457
+ domain:
458
+ type: 'month' # hour, day, week, month, year
459
+ gutter: 4
460
+ padding: [0,0,0,0]
461
+ dynamic_dimensions: False
462
+ sort: 'asc'
463
+
464
+ label:
465
+ text: 'MMM' # YY, YYYY, M, MM, MMM, MMMM, D, DD, d, dd, ddd, dddd, H, HH, h, hh, null
466
+ position: 'bottom' # top, right, bottom, left
467
+ align: 'middle' # start, middle, end
468
+ offset: [0, 0]
469
+ rotate: null
470
+ width: 100
471
+ height: 100
472
+ font_size: 16
473
+ font_weight: 450
474
+
475
+ subdomain:
476
+ type: 'day' # minute, hour, day, week, month, xDay, ghDay
477
+ gutter: 2
478
+ width: 30
479
+ height: 30
480
+ radius: 0
481
+ sort: 'asc' # asc, desc
482
+ label: 'D' #M, MM, MMM, MMMM, D, DD, d, dd, ddd, dddd, H, HH, h, hh, m, mm, null
483
+ font_size: 14
484
+ font_weight: 450
485
+ background_color: '#ededed'
486
+
487
+ date:
488
+ start: '2026-03-01'
489
+ min: null
490
+ max: null
491
+ highlight: ['today']
492
+ weekstart: 1
493
+ timezone: 'Europe/Berlin'
494
+
495
+ color:
496
+ domain: [0, 10] # Plot range, for linear interpolation use min max. For thresholds use more
497
+ scheme: 'YlOrRd' # https://d3js.org/d3-scale-chromatic, set to null if range is used
498
+ range: null # Hex codes to use as colormap, set to null if scheme is used
499
+ interpolate: null # rgb, hsl, lab, hcl, null
500
+ type: 'linear' # https://cal-heatmap.com/docs/options/scale#type
@@ -0,0 +1,41 @@
1
+ .section-title {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 10px;
5
+ margin: 0 1em 10px 1em;
6
+ font-weight: 500;
7
+ letter-spacing: 2px;
8
+ }
9
+
10
+ .section-title::before,
11
+ .section-title::after {
12
+ content: "";
13
+ height: 2px;
14
+ background: #616161;
15
+ flex: 0 1 80px;
16
+ min-width: 0;
17
+ }
18
+
19
+ .section-title.center {
20
+ justify-content: center;
21
+ }
22
+
23
+ .section-title.left {
24
+ justify-content: flex-start;
25
+ }
26
+
27
+ .section-title.left::before {
28
+ display: none;
29
+ }
30
+
31
+ .section-title.left::after {
32
+ flex: 0 1 80px;
33
+ }
34
+
35
+ .section-title.right {
36
+ justify-content: flex-end;
37
+ }
38
+
39
+ .section-title.right::after {
40
+ display: none;
41
+ }
@@ -129,6 +129,7 @@ class CalendarSubDomain:
129
129
  label: SubdomainLabelLiteral = None
130
130
  font_size: int = 14
131
131
  font_weight: int = 450
132
+ background_color: str = '#ededed'
132
133
 
133
134
  def __post_init__(self):
134
135
  checks = [
@@ -152,6 +153,9 @@ class CalendarSubDomain:
152
153
  logger.error(msg)
153
154
  raise ValueError(msg)
154
155
 
156
+ if not re.match(r'^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', self.background_color):
157
+ raise ValueError(f'Sub-Domain `background_color` is an invalid hex color: `{self.background_color}`')
158
+
155
159
  #-----------------------------------------------------------------------------------------------------------------------
156
160
  # region DATE
157
161
  #-----------------------------------------------------------------------------------------------------------------------
@@ -459,6 +463,7 @@ class CalendarHeatmap:
459
463
  label_font_weight=self.label.font_weight,
460
464
  subdomain_font_size=self.subdomain.font_size,
461
465
  subdomain_font_weight=self.subdomain.font_weight,
466
+ subdomain_background_color=self.subdomain.background_color,
462
467
  legend_font_size=self.misc.legend_font_size,
463
468
  legend_font_weight=self.misc.legend_font_weight,
464
469
  )