benchlab-pytools 3.0.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.
Files changed (184) hide show
  1. benchlab/__init__.py +14 -0
  2. benchlab/__main__.py +21 -0
  3. benchlab/config/README.md +325 -0
  4. benchlab/config/__init__.py +9 -0
  5. benchlab/config/config_client.py +631 -0
  6. benchlab/config/config_manager.py +495 -0
  7. benchlab/config/config_tool.py +358 -0
  8. benchlab/config/diff.py +163 -0
  9. benchlab/config/examples/complete_config.json +56 -0
  10. benchlab/config/examples/rgb_lighting.json +24 -0
  11. benchlab/config/examples/simple_fan.json +32 -0
  12. benchlab/config/schema.py +138 -0
  13. benchlab/core/README.md +154 -0
  14. benchlab/core/__init__.py +78 -0
  15. benchlab/core/config.py +145 -0
  16. benchlab/core/datasource.py +1209 -0
  17. benchlab/core/datasource_manager.py +418 -0
  18. benchlab/core/device_registry.py +206 -0
  19. benchlab/core/discovery.py +92 -0
  20. benchlab/core/infrastructure.py +309 -0
  21. benchlab/core/process_manager.py +356 -0
  22. benchlab/core/retry.py +85 -0
  23. benchlab/core/shared_serial.py +235 -0
  24. benchlab/core/statistics.py +224 -0
  25. benchlab/csv_log/README.md +206 -0
  26. benchlab/csv_log/__init__.py +5 -0
  27. benchlab/csv_log/csv_logger_enhanced.py +416 -0
  28. benchlab/csv_log/message_batcher.py +361 -0
  29. benchlab/csv_log/requirements.txt +3 -0
  30. benchlab/csv_log/smart_retry.py +466 -0
  31. benchlab/graph/README.md +117 -0
  32. benchlab/graph/__init__.py +5 -0
  33. benchlab/graph/app.py +353 -0
  34. benchlab/graph/requirements.txt +2 -0
  35. benchlab/graph/runner.py +42 -0
  36. benchlab/graph/ui.py +288 -0
  37. benchlab/hwinfo/README.md +135 -0
  38. benchlab/hwinfo/__init__.py +5 -0
  39. benchlab/hwinfo/hwinfo_export.py +386 -0
  40. benchlab/hwinfo/requirements.txt +1 -0
  41. benchlab/launcher.py +387 -0
  42. benchlab/link/.env.EXAMPLE +10 -0
  43. benchlab/link/README.md +172 -0
  44. benchlab/link/__init__.py +1 -0
  45. benchlab/link/link_main.py +479 -0
  46. benchlab/main.py +462 -0
  47. benchlab/menu.py +729 -0
  48. benchlab/menu_classic.py +410 -0
  49. benchlab/mqtt/README.md +201 -0
  50. benchlab/mqtt/__init__.py +5 -0
  51. benchlab/mqtt/mqtt.config_template +2 -0
  52. benchlab/mqtt/mqtt_publisher.py +540 -0
  53. benchlab/mqtt/requirements.txt +3 -0
  54. benchlab/prefs.py +67 -0
  55. benchlab/restapi/.env.example +17 -0
  56. benchlab/restapi/__init__.py +5 -0
  57. benchlab/restapi/favicon.ico +0 -0
  58. benchlab/restapi/readme.md +202 -0
  59. benchlab/restapi/requirements.txt +5 -0
  60. benchlab/restapi/telemetry_api.py +808 -0
  61. benchlab/sources.py +515 -0
  62. benchlab/tools.py +147 -0
  63. benchlab/tui/README.md +266 -0
  64. benchlab/tui/__init__.py +5 -0
  65. benchlab/tui/config.py +477 -0
  66. benchlab/tui/requirements.txt +2 -0
  67. benchlab/tui/tui_core.py +1298 -0
  68. benchlab/tui/tui_main.py +418 -0
  69. benchlab/vu/README.md +64 -0
  70. benchlab/vu/VU-Server/NOTICE.md +13 -0
  71. benchlab/vu/VU-Server/README.md +80 -0
  72. benchlab/vu/VU-Server/Running_from_source_on_linux.md +97 -0
  73. benchlab/vu/VU-Server/__init__.py +0 -0
  74. benchlab/vu/VU-Server/assets/vu1_hello_world.png +0 -0
  75. benchlab/vu/VU-Server/community_applications.md +13 -0
  76. benchlab/vu/VU-Server/config.yaml +9 -0
  77. benchlab/vu/VU-Server/database.py +256 -0
  78. benchlab/vu/VU-Server/dial_driver.py +534 -0
  79. benchlab/vu/VU-Server/dials/Comms_Hub_Gauge.py +78 -0
  80. benchlab/vu/VU-Server/dials/Comms_Hub_Server.py +100 -0
  81. benchlab/vu/VU-Server/dials/__init__.py +0 -0
  82. benchlab/vu/VU-Server/dials/base_logger.py +100 -0
  83. benchlab/vu/VU-Server/installer/inc/icon.ico +0 -0
  84. benchlab/vu/VU-Server/installer/install.nsi +148 -0
  85. benchlab/vu/VU-Server/make_version.py +40 -0
  86. benchlab/vu/VU-Server/pylintrc +628 -0
  87. benchlab/vu/VU-Server/requirements.txt +9 -0
  88. benchlab/vu/VU-Server/serial_driver.py +244 -0
  89. benchlab/vu/VU-Server/server.py +670 -0
  90. benchlab/vu/VU-Server/server_config.py +255 -0
  91. benchlab/vu/VU-Server/server_dial_handler.py +334 -0
  92. benchlab/vu/VU-Server/vu_notifications.py +24 -0
  93. benchlab/vu/VU-Server/www/android-chrome-192x192.png +0 -0
  94. benchlab/vu/VU-Server/www/android-chrome-512x512.png +0 -0
  95. benchlab/vu/VU-Server/www/apple-touch-icon.png +0 -0
  96. benchlab/vu/VU-Server/www/assets/css/demo.css +291 -0
  97. benchlab/vu/VU-Server/www/assets/css/demo.min.css +9 -0
  98. benchlab/vu/VU-Server/www/assets/css/demo.rtl.css +276 -0
  99. benchlab/vu/VU-Server/www/assets/css/demo.rtl.min.css +9 -0
  100. benchlab/vu/VU-Server/www/assets/css/tabler-flags.css +1084 -0
  101. benchlab/vu/VU-Server/www/assets/css/tabler-flags.min.css +9 -0
  102. benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.css +1084 -0
  103. benchlab/vu/VU-Server/www/assets/css/tabler-flags.rtl.min.css +9 -0
  104. benchlab/vu/VU-Server/www/assets/css/tabler-payments.css +528 -0
  105. benchlab/vu/VU-Server/www/assets/css/tabler-payments.min.css +9 -0
  106. benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.css +528 -0
  107. benchlab/vu/VU-Server/www/assets/css/tabler-payments.rtl.min.css +9 -0
  108. benchlab/vu/VU-Server/www/assets/css/tabler-social.css +10 -0
  109. benchlab/vu/VU-Server/www/assets/css/tabler-social.min.css +8 -0
  110. benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.css +10 -0
  111. benchlab/vu/VU-Server/www/assets/css/tabler-social.rtl.min.css +8 -0
  112. benchlab/vu/VU-Server/www/assets/css/tabler-vendors.css +1504 -0
  113. benchlab/vu/VU-Server/www/assets/css/tabler-vendors.min.css +9 -0
  114. benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.css +1504 -0
  115. benchlab/vu/VU-Server/www/assets/css/tabler-vendors.rtl.min.css +9 -0
  116. benchlab/vu/VU-Server/www/assets/css/tabler.css +25813 -0
  117. benchlab/vu/VU-Server/www/assets/css/tabler.min.css +13 -0
  118. benchlab/vu/VU-Server/www/assets/css/tabler.rtl.css +25777 -0
  119. benchlab/vu/VU-Server/www/assets/css/tabler.rtl.min.css +13 -0
  120. benchlab/vu/VU-Server/www/assets/css/theme.min.css +261 -0
  121. benchlab/vu/VU-Server/www/assets/img/header.png +0 -0
  122. benchlab/vu/VU-Server/www/assets/img/logo.png +0 -0
  123. benchlab/vu/VU-Server/www/assets/js/dark-theme.js +35 -0
  124. benchlab/vu/VU-Server/www/assets/js/dark-theme.min.js +9 -0
  125. benchlab/vu/VU-Server/www/assets/js/demo.js +132 -0
  126. benchlab/vu/VU-Server/www/assets/js/demo.min.js +9 -0
  127. benchlab/vu/VU-Server/www/assets/js/jquery.min.js +2 -0
  128. benchlab/vu/VU-Server/www/assets/js/tabler.esm.js +7482 -0
  129. benchlab/vu/VU-Server/www/assets/js/tabler.esm.min.js +15 -0
  130. benchlab/vu/VU-Server/www/assets/js/tabler.js +7543 -0
  131. benchlab/vu/VU-Server/www/assets/js/tabler.min.js +15 -0
  132. benchlab/vu/VU-Server/www/assets/js/vu1_api.js +68 -0
  133. benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_key_settings.js +167 -0
  134. benchlab/vu/VU-Server/www/assets/js/vu1_gui_api_keys.js +138 -0
  135. benchlab/vu/VU-Server/www/assets/js/vu1_gui_dial.js +179 -0
  136. benchlab/vu/VU-Server/www/assets/js/vu1_gui_home.js +60 -0
  137. benchlab/vu/VU-Server/www/assets/js/vu1_gui_root.js +125 -0
  138. benchlab/vu/VU-Server/www/favicon-16x16.png +0 -0
  139. benchlab/vu/VU-Server/www/favicon-32x32.png +0 -0
  140. benchlab/vu/VU-Server/www/favicon.ico +0 -0
  141. benchlab/vu/VU-Server/www/favicon.png +0 -0
  142. benchlab/vu/VU-Server/www/index.html +47 -0
  143. benchlab/vu/VU-Server/www/views/api_keys.html +151 -0
  144. benchlab/vu/VU-Server/www/views/dial.html +286 -0
  145. benchlab/vu/VU-Server/www/views/footer.html +27 -0
  146. benchlab/vu/VU-Server/www/views/header.html +86 -0
  147. benchlab/vu/VU-Server/www/views/key_settings.html +132 -0
  148. benchlab/vu/VU-Server/www/views/start.html +124 -0
  149. benchlab/vu/__init__.py +5 -0
  150. benchlab/vu/assets/Barlow-Bold.ttf +0 -0
  151. benchlab/vu/assets/bl_dial_144x200.png +0 -0
  152. benchlab/vu/assets/bl_logo_144x200.png +0 -0
  153. benchlab/vu/devices.py +166 -0
  154. benchlab/vu/requirements.txt +24 -0
  155. benchlab/vu/sensors.py +18 -0
  156. benchlab/vu/vu_dial.config_template +90 -0
  157. benchlab/vu/vu_logo_gen.py +97 -0
  158. benchlab/vu/vu_server.config_template +5 -0
  159. benchlab/vu/vu_server_config.py +40 -0
  160. benchlab/vu/vu_server_manager.py +192 -0
  161. benchlab/vu/vu_tui.py +919 -0
  162. benchlab/vu/vu_updater.py +540 -0
  163. benchlab/wigidash/README.md +182 -0
  164. benchlab/wigidash/__init__.py +5 -0
  165. benchlab/wigidash/assets/Inter-Bold.ttf +0 -0
  166. benchlab/wigidash/assets/Inter.ttf +0 -0
  167. benchlab/wigidash/assets/benchlab.png +0 -0
  168. benchlab/wigidash/benchlab_fleet.py +150 -0
  169. benchlab/wigidash/benchlab_graph.py +517 -0
  170. benchlab/wigidash/benchlab_overview.py +426 -0
  171. benchlab/wigidash/benchlab_telemetry.py +105 -0
  172. benchlab/wigidash/benchlab_ui.py +190 -0
  173. benchlab/wigidash/benchlab_utils.py +182 -0
  174. benchlab/wigidash/requirements.txt +9 -0
  175. benchlab/wigidash/wigidash_device.py +541 -0
  176. benchlab/wigidash/wigidash_manager.py +342 -0
  177. benchlab/wigidash/wigidash_session.py +355 -0
  178. benchlab/wigidash/wigidash_usb.py +247 -0
  179. benchlab/wigidash/wigidash_widget.py +88 -0
  180. benchlab_pytools-3.0.0.dist-info/METADATA +239 -0
  181. benchlab_pytools-3.0.0.dist-info/RECORD +184 -0
  182. benchlab_pytools-3.0.0.dist-info/WHEEL +4 -0
  183. benchlab_pytools-3.0.0.dist-info/entry_points.txt +2 -0
  184. benchlab_pytools-3.0.0.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,291 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta20 (https://tabler.io)
3
+ * @version 1.0.0-beta20
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2023 The Tabler Authors
6
+ * Copyright 2018-2023 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ /* prettier-ignore */
10
+ /* prettier-ignore */
11
+ pre.highlight,
12
+ .highlight pre {
13
+ max-height: 30rem;
14
+ margin: 1.5rem 0;
15
+ overflow: auto;
16
+ border-radius: var(--tblr-border-radius);
17
+ }
18
+ pre.highlight,
19
+ .highlight pre {
20
+ scrollbar-color: rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.16) transparent;
21
+ }
22
+ pre.highlight::-webkit-scrollbar,
23
+ .highlight pre::-webkit-scrollbar {
24
+ width: 1rem;
25
+ height: 1rem;
26
+ -webkit-transition: background 0.3s;
27
+ transition: background 0.3s;
28
+ }
29
+ @media (prefers-reduced-motion: reduce) {
30
+ pre.highlight::-webkit-scrollbar,
31
+ .highlight pre::-webkit-scrollbar {
32
+ -webkit-transition: none;
33
+ transition: none;
34
+ }
35
+ }
36
+ pre.highlight::-webkit-scrollbar-thumb,
37
+ .highlight pre::-webkit-scrollbar-thumb {
38
+ border-radius: 1rem;
39
+ border: 5px solid transparent;
40
+ box-shadow: inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.16);
41
+ }
42
+ pre.highlight::-webkit-scrollbar-track,
43
+ .highlight pre::-webkit-scrollbar-track {
44
+ background: transparent;
45
+ }
46
+ pre.highlight:hover::-webkit-scrollbar-thumb,
47
+ .highlight pre:hover::-webkit-scrollbar-thumb {
48
+ box-shadow: inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.32);
49
+ }
50
+ pre.highlight::-webkit-scrollbar-corner,
51
+ .highlight pre::-webkit-scrollbar-corner {
52
+ background: transparent;
53
+ }
54
+
55
+ .highlight {
56
+ margin: 0;
57
+ }
58
+ .highlight code > * {
59
+ margin: 0 !important;
60
+ padding: 0 !important;
61
+ }
62
+ .highlight .c, .highlight .c1 {
63
+ color: #a0aec0;
64
+ }
65
+ .highlight .nt, .highlight .nc, .highlight .nx {
66
+ color: #ff8383;
67
+ }
68
+ .highlight .na, .highlight .p {
69
+ color: #ffe484;
70
+ }
71
+ .highlight .s, .highlight .dl, .highlight .s2 {
72
+ color: #b5f4a5;
73
+ }
74
+ .highlight .k {
75
+ color: #93ddfd;
76
+ }
77
+ .highlight .s1, .highlight .mi {
78
+ color: #d9a9ff;
79
+ }
80
+
81
+ .dial-background-container {
82
+ margin: 0;
83
+ width: 100%;
84
+ height: 100%;
85
+ display: block;
86
+ align-items: center;
87
+ text-align: center;
88
+ }
89
+
90
+ .dial-background-container > img{
91
+ height: 144px;
92
+ width: 200px;
93
+ /* border: 1px solid #000000;*/
94
+ }
95
+
96
+ .example {
97
+ padding: 2rem;
98
+ margin: 1rem 0 2rem;
99
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
100
+ border-radius: 3px 3px 0 0;
101
+ position: relative;
102
+ min-height: 12rem;
103
+ display: flex;
104
+ align-items: center;
105
+ overflow-x: auto;
106
+ }
107
+
108
+ .example-centered {
109
+ justify-content: center;
110
+ }
111
+ .example-centered .example-content {
112
+ flex: 0 auto;
113
+ }
114
+
115
+ .example-content {
116
+ font-size: 0.875rem;
117
+ line-height: 1.4285714286;
118
+ color: var(--tblr-body-color);
119
+ flex: 1;
120
+ max-width: 100%;
121
+ }
122
+ .example-content .page-header {
123
+ margin-bottom: 0;
124
+ }
125
+
126
+ .example-bg {
127
+ background: #f6f8fb;
128
+ }
129
+
130
+ .example-code {
131
+ margin: 2rem 0;
132
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
133
+ border-top: none;
134
+ }
135
+ .example-code pre {
136
+ margin: 0;
137
+ border: 0;
138
+ border-radius: 0 0 3px 3px;
139
+ }
140
+ .example + .example-code {
141
+ margin-top: -2rem;
142
+ }
143
+
144
+ .example-column {
145
+ margin: 0 auto;
146
+ }
147
+ .example-column > .card:last-of-type {
148
+ margin-bottom: 0;
149
+ }
150
+
151
+ .example-column-1 {
152
+ max-width: 26rem;
153
+ }
154
+
155
+ .example-column-2 {
156
+ max-width: 52rem;
157
+ }
158
+
159
+ .example-modal-backdrop {
160
+ background: #182433;
161
+ opacity: 0.24;
162
+ position: absolute;
163
+ width: 100%;
164
+ left: 0;
165
+ top: 0;
166
+ height: 100%;
167
+ border-radius: 2px 2px 0 0;
168
+ }
169
+
170
+ .card-sponsor {
171
+ background: var(--tblr-primary-lt) no-repeat center/100% 100%;
172
+ border-color: var(--tblr-primary);
173
+ min-height: 316px;
174
+ }
175
+
176
+ .dropdown-menu-demo {
177
+ display: inline-block;
178
+ width: 100%;
179
+ position: relative;
180
+ top: 0;
181
+ margin-bottom: 1rem !important;
182
+ }
183
+
184
+ .demo-icon-preview {
185
+ position: -webkit-sticky;
186
+ position: sticky;
187
+ top: 0;
188
+ }
189
+ .demo-icon-preview svg,
190
+ .demo-icon-preview i {
191
+ width: 15rem;
192
+ height: 15rem;
193
+ font-size: 15rem;
194
+ stroke-width: 1.5;
195
+ margin: 0 auto;
196
+ display: block;
197
+ }
198
+ @media (max-width: 575.98px) {
199
+ .demo-icon-preview svg,
200
+ .demo-icon-preview i {
201
+ width: 10rem;
202
+ height: 10rem;
203
+ font-size: 10rem;
204
+ }
205
+ }
206
+
207
+ .demo-icon-preview-icon pre {
208
+ margin: 0;
209
+ -webkit-user-select: all;
210
+ -moz-user-select: all;
211
+ user-select: all;
212
+ }
213
+
214
+ .demo-dividers > p {
215
+ opacity: 0.2;
216
+ -webkit-user-select: none;
217
+ -moz-user-select: none;
218
+ -ms-user-select: none;
219
+ user-select: none;
220
+ }
221
+
222
+ .demo-icons-list {
223
+ display: flex;
224
+ flex-wrap: wrap;
225
+ padding: 0;
226
+ margin: 0 -2px -1px 0;
227
+ list-style: none;
228
+ }
229
+ .demo-icons-list > * {
230
+ flex: 1 0 4rem;
231
+ }
232
+
233
+ .demo-icons-list-wrap {
234
+ overflow: hidden;
235
+ }
236
+
237
+ .demo-icons-list-item {
238
+ display: flex;
239
+ flex-direction: column;
240
+ align-items: center;
241
+ justify-content: center;
242
+ aspect-ratio: 1;
243
+ text-align: center;
244
+ padding: 0.5rem;
245
+ border-right: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
246
+ border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
247
+ color: inherit;
248
+ cursor: pointer;
249
+ }
250
+ .demo-icons-list-item .icon {
251
+ width: 1.5rem;
252
+ height: 1.5rem;
253
+ font-size: 1.5rem;
254
+ }
255
+ .demo-icons-list-item:hover {
256
+ text-decoration: none;
257
+ }
258
+
259
+ .settings-btn {
260
+ position: fixed;
261
+ right: -1px;
262
+ top: 10rem;
263
+ border-top-right-radius: 0;
264
+ border-bottom-right-radius: 0;
265
+ box-shadow: rgba(var(--tblr-body-color-rgb), 0.04) 0 2px 4px 0;
266
+ }
267
+
268
+ .settings-scheme {
269
+ display: inline-block;
270
+ border-radius: 50%;
271
+ height: 3rem;
272
+ width: 3rem;
273
+ position: relative;
274
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
275
+ box-shadow: rgba(var(--tblr-body-color-rgb), 0.04) 0 2px 4px 0;
276
+ }
277
+ .settings-scheme-light {
278
+ background: linear-gradient(135deg, #ffffff 50%, #fcfdfe 50%);
279
+ }
280
+ .settings-scheme-mixed {
281
+ background-image: linear-gradient(135deg, #182433 50%, #fff 50%);
282
+ }
283
+ .settings-scheme-transparent {
284
+ background: #fcfdfe;
285
+ }
286
+ .settings-scheme-dark {
287
+ background: #182433;
288
+ }
289
+ .settings-scheme-colored {
290
+ background-image: linear-gradient(135deg, var(--tblr-primary) 50%, #fcfdfe 50%);
291
+ }
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta20 (https://tabler.io)
3
+ * @version 1.0.0-beta20
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2023 The Tabler Authors
6
+ * Copyright 2018-2023 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ .highlight pre,pre.highlight{max-height:30rem;margin:1.5rem 0;overflow:auto;border-radius:var(--tblr-border-radius)}.highlight pre,pre.highlight{scrollbar-color:rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.16) transparent}.highlight pre::-webkit-scrollbar,pre.highlight::-webkit-scrollbar{width:1rem;height:1rem;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.highlight pre::-webkit-scrollbar,pre.highlight::-webkit-scrollbar{-webkit-transition:none;transition:none}}.highlight pre::-webkit-scrollbar-thumb,pre.highlight::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.16)}.highlight pre::-webkit-scrollbar-track,pre.highlight::-webkit-scrollbar-track{background:0 0}.highlight pre:hover::-webkit-scrollbar-thumb,pre.highlight:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.32)}.highlight pre::-webkit-scrollbar-corner,pre.highlight::-webkit-scrollbar-corner{background:0 0}.highlight{margin:0}.highlight code>*{margin:0!important;padding:0!important}.highlight .c,.highlight .c1{color:#a0aec0}.highlight .nc,.highlight .nt,.highlight .nx{color:#ff8383}.highlight .na,.highlight .p{color:#ffe484}.highlight .dl,.highlight .s,.highlight .s2{color:#b5f4a5}.highlight .k{color:#93ddfd}.highlight .mi,.highlight .s1{color:#d9a9ff}.example{padding:2rem;margin:1rem 0 2rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px 3px 0 0;position:relative;min-height:12rem;display:flex;align-items:center;overflow-x:auto}.example-centered{justify-content:center}.example-centered .example-content{flex:0 auto}.example-content{font-size:.875rem;line-height:1.4285714286;color:var(--tblr-body-color);flex:1;max-width:100%}.example-content .page-header{margin-bottom:0}.example-bg{background:#f6f8fb}.example-code{margin:2rem 0;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-top:none}.example-code pre{margin:0;border:0;border-radius:0 0 3px 3px}.example+.example-code{margin-top:-2rem}.example-column{margin:0 auto}.example-column>.card:last-of-type{margin-bottom:0}.example-column-1{max-width:26rem}.example-column-2{max-width:52rem}.example-modal-backdrop{background:#182433;opacity:.24;position:absolute;width:100%;left:0;top:0;height:100%;border-radius:2px 2px 0 0}.card-sponsor{background:var(--tblr-primary-lt) no-repeat center/100% 100%;border-color:var(--tblr-primary);min-height:316px}.dropdown-menu-demo{display:inline-block;width:100%;position:relative;top:0;margin-bottom:1rem!important}.demo-icon-preview{position:-webkit-sticky;position:sticky;top:0}.demo-icon-preview i,.demo-icon-preview svg{width:15rem;height:15rem;font-size:15rem;stroke-width:1.5;margin:0 auto;display:block}@media (max-width:575.98px){.demo-icon-preview i,.demo-icon-preview svg{width:10rem;height:10rem;font-size:10rem}}.demo-icon-preview-icon pre{margin:0;-webkit-user-select:all;-moz-user-select:all;user-select:all}.demo-dividers>p{opacity:.2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.demo-icons-list{display:flex;flex-wrap:wrap;padding:0;margin:0 -2px -1px 0;list-style:none}.demo-icons-list>*{flex:1 0 4rem}.demo-icons-list-wrap{overflow:hidden}.demo-icons-list-item{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;text-align:center;padding:.5rem;border-right:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);color:inherit;cursor:pointer}.demo-icons-list-item .icon{width:1.5rem;height:1.5rem;font-size:1.5rem}.demo-icons-list-item:hover{text-decoration:none}.settings-btn{position:fixed;right:-1px;top:10rem;border-top-right-radius:0;border-bottom-right-radius:0;box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px 0}.settings-scheme{display:inline-block;border-radius:50%;height:3rem;width:3rem;position:relative;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px 0}.settings-scheme-light{background:linear-gradient(135deg,#fff 50%,#fcfdfe 50%)}.settings-scheme-mixed{background-image:linear-gradient(135deg,#182433 50%,#fff 50%)}.settings-scheme-transparent{background:#fcfdfe}.settings-scheme-dark{background:#182433}.settings-scheme-colored{background-image:linear-gradient(135deg,var(--tblr-primary) 50%,#fcfdfe 50%)}
@@ -0,0 +1,276 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta20 (https://tabler.io)
3
+ * @version 1.0.0-beta20
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2023 The Tabler Authors
6
+ * Copyright 2018-2023 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ /* prettier-ignore */
10
+ /* prettier-ignore */
11
+ pre.highlight,
12
+ .highlight pre {
13
+ max-height: 30rem;
14
+ margin: 1.5rem 0;
15
+ overflow: auto;
16
+ border-radius: var(--tblr-border-radius);
17
+ }
18
+ pre.highlight,
19
+ .highlight pre {
20
+ scrollbar-color: rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.16) transparent;
21
+ }
22
+ pre.highlight::-webkit-scrollbar,
23
+ .highlight pre::-webkit-scrollbar {
24
+ width: 1rem;
25
+ height: 1rem;
26
+ -webkit-transition: background 0.3s;
27
+ transition: background 0.3s;
28
+ }
29
+ @media (prefers-reduced-motion: reduce) {
30
+ pre.highlight::-webkit-scrollbar,
31
+ .highlight pre::-webkit-scrollbar {
32
+ -webkit-transition: none;
33
+ transition: none;
34
+ }
35
+ }
36
+ pre.highlight::-webkit-scrollbar-thumb,
37
+ .highlight pre::-webkit-scrollbar-thumb {
38
+ border-radius: 1rem;
39
+ border: 5px solid transparent;
40
+ box-shadow: inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.16);
41
+ }
42
+ pre.highlight::-webkit-scrollbar-track,
43
+ .highlight pre::-webkit-scrollbar-track {
44
+ background: transparent;
45
+ }
46
+ pre.highlight:hover::-webkit-scrollbar-thumb,
47
+ .highlight pre:hover::-webkit-scrollbar-thumb {
48
+ box-shadow: inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color, var(--tblr-body-color-rgb)), 0.32);
49
+ }
50
+ pre.highlight::-webkit-scrollbar-corner,
51
+ .highlight pre::-webkit-scrollbar-corner {
52
+ background: transparent;
53
+ }
54
+
55
+ .highlight {
56
+ margin: 0;
57
+ }
58
+ .highlight code > * {
59
+ margin: 0 !important;
60
+ padding: 0 !important;
61
+ }
62
+ .highlight .c, .highlight .c1 {
63
+ color: #a0aec0;
64
+ }
65
+ .highlight .nt, .highlight .nc, .highlight .nx {
66
+ color: #ff8383;
67
+ }
68
+ .highlight .na, .highlight .p {
69
+ color: #ffe484;
70
+ }
71
+ .highlight .s, .highlight .dl, .highlight .s2 {
72
+ color: #b5f4a5;
73
+ }
74
+ .highlight .k {
75
+ color: #93ddfd;
76
+ }
77
+ .highlight .s1, .highlight .mi {
78
+ color: #d9a9ff;
79
+ }
80
+
81
+ .example {
82
+ padding: 2rem;
83
+ margin: 1rem 0 2rem;
84
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
85
+ border-radius: 3px 3px 0 0;
86
+ position: relative;
87
+ min-height: 12rem;
88
+ display: flex;
89
+ align-items: center;
90
+ overflow-x: auto;
91
+ }
92
+
93
+ .example-centered {
94
+ justify-content: center;
95
+ }
96
+ .example-centered .example-content {
97
+ flex: 0 auto;
98
+ }
99
+
100
+ .example-content {
101
+ font-size: 0.875rem;
102
+ line-height: 1.4285714286;
103
+ color: var(--tblr-body-color);
104
+ flex: 1;
105
+ max-width: 100%;
106
+ }
107
+ .example-content .page-header {
108
+ margin-bottom: 0;
109
+ }
110
+
111
+ .example-bg {
112
+ background: #f6f8fb;
113
+ }
114
+
115
+ .example-code {
116
+ margin: 2rem 0;
117
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
118
+ border-top: none;
119
+ }
120
+ .example-code pre {
121
+ margin: 0;
122
+ border: 0;
123
+ border-radius: 0 0 3px 3px;
124
+ }
125
+ .example + .example-code {
126
+ margin-top: -2rem;
127
+ }
128
+
129
+ .example-column {
130
+ margin: 0 auto;
131
+ }
132
+ .example-column > .card:last-of-type {
133
+ margin-bottom: 0;
134
+ }
135
+
136
+ .example-column-1 {
137
+ max-width: 26rem;
138
+ }
139
+
140
+ .example-column-2 {
141
+ max-width: 52rem;
142
+ }
143
+
144
+ .example-modal-backdrop {
145
+ background: #182433;
146
+ opacity: 0.24;
147
+ position: absolute;
148
+ width: 100%;
149
+ right: 0;
150
+ top: 0;
151
+ height: 100%;
152
+ border-radius: 2px 2px 0 0;
153
+ }
154
+
155
+ .card-sponsor {
156
+ background: var(--tblr-primary-lt) no-repeat center/100% 100%;
157
+ border-color: var(--tblr-primary);
158
+ min-height: 316px;
159
+ }
160
+
161
+ .dropdown-menu-demo {
162
+ display: inline-block;
163
+ width: 100%;
164
+ position: relative;
165
+ top: 0;
166
+ margin-bottom: 1rem !important;
167
+ }
168
+
169
+ .demo-icon-preview {
170
+ position: -webkit-sticky;
171
+ position: sticky;
172
+ top: 0;
173
+ }
174
+ .demo-icon-preview svg,
175
+ .demo-icon-preview i {
176
+ width: 15rem;
177
+ height: 15rem;
178
+ font-size: 15rem;
179
+ stroke-width: 1.5;
180
+ margin: 0 auto;
181
+ display: block;
182
+ }
183
+ @media (max-width: 575.98px) {
184
+ .demo-icon-preview svg,
185
+ .demo-icon-preview i {
186
+ width: 10rem;
187
+ height: 10rem;
188
+ font-size: 10rem;
189
+ }
190
+ }
191
+
192
+ .demo-icon-preview-icon pre {
193
+ margin: 0;
194
+ -webkit-user-select: all;
195
+ -moz-user-select: all;
196
+ user-select: all;
197
+ }
198
+
199
+ .demo-dividers > p {
200
+ opacity: 0.2;
201
+ -webkit-user-select: none;
202
+ -moz-user-select: none;
203
+ -ms-user-select: none;
204
+ user-select: none;
205
+ }
206
+
207
+ .demo-icons-list {
208
+ display: flex;
209
+ flex-wrap: wrap;
210
+ padding: 0;
211
+ margin: 0 0 -1px -2px;
212
+ list-style: none;
213
+ }
214
+ .demo-icons-list > * {
215
+ flex: 1 0 4rem;
216
+ }
217
+
218
+ .demo-icons-list-wrap {
219
+ overflow: hidden;
220
+ }
221
+
222
+ .demo-icons-list-item {
223
+ display: flex;
224
+ flex-direction: column;
225
+ align-items: center;
226
+ justify-content: center;
227
+ aspect-ratio: 1;
228
+ text-align: center;
229
+ padding: 0.5rem;
230
+ border-left: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
231
+ border-bottom: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
232
+ color: inherit;
233
+ cursor: pointer;
234
+ }
235
+ .demo-icons-list-item .icon {
236
+ width: 1.5rem;
237
+ height: 1.5rem;
238
+ font-size: 1.5rem;
239
+ }
240
+ .demo-icons-list-item:hover {
241
+ text-decoration: none;
242
+ }
243
+
244
+ .settings-btn {
245
+ position: fixed;
246
+ left: -1px;
247
+ top: 10rem;
248
+ border-top-left-radius: 0;
249
+ border-bottom-left-radius: 0;
250
+ box-shadow: rgba(var(--tblr-body-color-rgb), 0.04) 0 2px 4px 0;
251
+ }
252
+
253
+ .settings-scheme {
254
+ display: inline-block;
255
+ border-radius: 50%;
256
+ height: 3rem;
257
+ width: 3rem;
258
+ position: relative;
259
+ border: var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);
260
+ box-shadow: rgba(var(--tblr-body-color-rgb), 0.04) 0 2px 4px 0;
261
+ }
262
+ .settings-scheme-light {
263
+ background: linear-gradient(-135deg, #ffffff 50%, #fcfdfe 50%);
264
+ }
265
+ .settings-scheme-mixed {
266
+ background-image: linear-gradient(-135deg, #182433 50%, #fff 50%);
267
+ }
268
+ .settings-scheme-transparent {
269
+ background: #fcfdfe;
270
+ }
271
+ .settings-scheme-dark {
272
+ background: #182433;
273
+ }
274
+ .settings-scheme-colored {
275
+ background-image: linear-gradient(-135deg, var(--tblr-primary) 50%, #fcfdfe 50%);
276
+ }
@@ -0,0 +1,9 @@
1
+ /*!
2
+ * Tabler v1.0.0-beta20 (https://tabler.io)
3
+ * @version 1.0.0-beta20
4
+ * @link https://tabler.io
5
+ * Copyright 2018-2023 The Tabler Authors
6
+ * Copyright 2018-2023 codecalm.net Paweł Kuna
7
+ * Licensed under MIT (https://github.com/tabler/tabler/blob/master/LICENSE)
8
+ */
9
+ .highlight pre,pre.highlight{max-height:30rem;margin:1.5rem 0;overflow:auto;border-radius:var(--tblr-border-radius)}.highlight pre,pre.highlight{scrollbar-color:rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.16) transparent}.highlight pre::-webkit-scrollbar,pre.highlight::-webkit-scrollbar{width:1rem;height:1rem;-webkit-transition:background .3s;transition:background .3s}@media (prefers-reduced-motion:reduce){.highlight pre::-webkit-scrollbar,pre.highlight::-webkit-scrollbar{-webkit-transition:none;transition:none}}.highlight pre::-webkit-scrollbar-thumb,pre.highlight::-webkit-scrollbar-thumb{border-radius:1rem;border:5px solid transparent;box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.16)}.highlight pre::-webkit-scrollbar-track,pre.highlight::-webkit-scrollbar-track{background:0 0}.highlight pre:hover::-webkit-scrollbar-thumb,pre.highlight:hover::-webkit-scrollbar-thumb{box-shadow:inset 0 0 0 1rem rgba(var(--tblr-scrollbar-color,var(--tblr-body-color-rgb)),.32)}.highlight pre::-webkit-scrollbar-corner,pre.highlight::-webkit-scrollbar-corner{background:0 0}.highlight{margin:0}.highlight code>*{margin:0!important;padding:0!important}.highlight .c,.highlight .c1{color:#a0aec0}.highlight .nc,.highlight .nt,.highlight .nx{color:#ff8383}.highlight .na,.highlight .p{color:#ffe484}.highlight .dl,.highlight .s,.highlight .s2{color:#b5f4a5}.highlight .k{color:#93ddfd}.highlight .mi,.highlight .s1{color:#d9a9ff}.example{padding:2rem;margin:1rem 0 2rem;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-radius:3px 3px 0 0;position:relative;min-height:12rem;display:flex;align-items:center;overflow-x:auto}.example-centered{justify-content:center}.example-centered .example-content{flex:0 auto}.example-content{font-size:.875rem;line-height:1.4285714286;color:var(--tblr-body-color);flex:1;max-width:100%}.example-content .page-header{margin-bottom:0}.example-bg{background:#f6f8fb}.example-code{margin:2rem 0;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-top:none}.example-code pre{margin:0;border:0;border-radius:0 0 3px 3px}.example+.example-code{margin-top:-2rem}.example-column{margin:0 auto}.example-column>.card:last-of-type{margin-bottom:0}.example-column-1{max-width:26rem}.example-column-2{max-width:52rem}.example-modal-backdrop{background:#182433;opacity:.24;position:absolute;width:100%;right:0;top:0;height:100%;border-radius:2px 2px 0 0}.card-sponsor{background:var(--tblr-primary-lt) no-repeat center/100% 100%;border-color:var(--tblr-primary);min-height:316px}.dropdown-menu-demo{display:inline-block;width:100%;position:relative;top:0;margin-bottom:1rem!important}.demo-icon-preview{position:-webkit-sticky;position:sticky;top:0}.demo-icon-preview i,.demo-icon-preview svg{width:15rem;height:15rem;font-size:15rem;stroke-width:1.5;margin:0 auto;display:block}@media (max-width:575.98px){.demo-icon-preview i,.demo-icon-preview svg{width:10rem;height:10rem;font-size:10rem}}.demo-icon-preview-icon pre{margin:0;-webkit-user-select:all;-moz-user-select:all;user-select:all}.demo-dividers>p{opacity:.2;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.demo-icons-list{display:flex;flex-wrap:wrap;padding:0;margin:0 0 -1px -2px;list-style:none}.demo-icons-list>*{flex:1 0 4rem}.demo-icons-list-wrap{overflow:hidden}.demo-icons-list-item{display:flex;flex-direction:column;align-items:center;justify-content:center;aspect-ratio:1;text-align:center;padding:.5rem;border-left:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);border-bottom:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);color:inherit;cursor:pointer}.demo-icons-list-item .icon{width:1.5rem;height:1.5rem;font-size:1.5rem}.demo-icons-list-item:hover{text-decoration:none}.settings-btn{position:fixed;left:-1px;top:10rem;border-top-left-radius:0;border-bottom-left-radius:0;box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px 0}.settings-scheme{display:inline-block;border-radius:50%;height:3rem;width:3rem;position:relative;border:var(--tblr-border-width) var(--tblr-border-style) var(--tblr-border-color);box-shadow:rgba(var(--tblr-body-color-rgb),.04) 0 2px 4px 0}.settings-scheme-light{background:linear-gradient(-135deg,#fff 50%,#fcfdfe 50%)}.settings-scheme-mixed{background-image:linear-gradient(-135deg,#182433 50%,#fff 50%)}.settings-scheme-transparent{background:#fcfdfe}.settings-scheme-dark{background:#182433}.settings-scheme-colored{background-image:linear-gradient(-135deg,var(--tblr-primary) 50%,#fcfdfe 50%)}