@homebridge-plugins/homebridge-smarthq 0.5.0-beta.5 → 0.5.0-beta.6

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 (52) hide show
  1. package/.github/ISSUE_TEMPLATE/config.yml +1 -1
  2. package/.github/copilot-instructions.md +90 -0
  3. package/.github/scripts/branch-helper.sh +41 -0
  4. package/.github/workflows/beta-release.yml +1 -1
  5. package/.github/workflows/release.yml +56 -16
  6. package/README.md +15 -0
  7. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts +1 -1
  8. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.d.ts.map +1 -1
  9. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js +9 -5
  10. package/dist/devices/OpalIceMaker/Managers/OpalProgressSvcManager.js.map +1 -1
  11. package/docs/assets/highlight.css +7 -0
  12. package/docs/assets/main.js +5 -5
  13. package/docs/assets/navigation.js +1 -0
  14. package/docs/assets/search.js +1 -0
  15. package/docs/assets/style.css +251 -229
  16. package/docs/classes/SmartHQPlatform.html +45 -56
  17. package/docs/hierarchy.html +1 -0
  18. package/docs/index.html +22 -12
  19. package/docs/interfaces/DeviceOptions.html +2 -3
  20. package/docs/interfaces/SmartHQPlatformConfig.html +6 -17
  21. package/docs/interfaces/SmartHqContext.html +3 -4
  22. package/docs/interfaces/SmartHqERDResponse.html +7 -8
  23. package/docs/interfaces/credentials.html +3 -4
  24. package/docs/interfaces/devicesConfig.html +7 -8
  25. package/docs/interfaces/options.html +7 -8
  26. package/docs/media/copilot-instructions.md +90 -0
  27. package/docs/modules.html +1 -2
  28. package/docs/variables/API_URL.html +1 -2
  29. package/docs/variables/ERD_CODES.html +1 -2
  30. package/docs/variables/ERD_TYPES.html +1 -2
  31. package/docs/variables/KEEPALIVE_TIMEOUT.html +1 -2
  32. package/docs/variables/LOGIN_URL.html +2 -3
  33. package/docs/variables/OAUTH2_CLIENT_ID.html +1 -2
  34. package/docs/variables/OAUTH2_CLIENT_SECRET.html +1 -2
  35. package/docs/variables/OAUTH2_REDIRECT_URI.html +1 -2
  36. package/docs/variables/PLATFORM_NAME.html +2 -3
  37. package/docs/variables/PLUGIN_NAME.html +2 -3
  38. package/docs/variables/SECURE_URL.html +2 -3
  39. package/docs/variables/default.html +1 -0
  40. package/package.json +17 -25
  41. package/typedoc.json +0 -4
  42. package/vitest.config.ts +6 -5
  43. package/.github/workflows/build.yml +0 -18
  44. package/.github/workflows/changerelease.yml +0 -11
  45. package/.github/workflows/labeler.yml +0 -9
  46. package/.github/workflows/release-drafter.yml +0 -14
  47. package/docs/assets/dmt/dmt-component-data.js +0 -1
  48. package/docs/assets/dmt/dmt-components.css +0 -20
  49. package/docs/assets/dmt/dmt-components.js +0 -67
  50. package/docs/assets/dmt/dmt-search.cmp +0 -0
  51. package/docs/assets/dmt/dmt-theme.css +0 -1
  52. package/docs/functions/default.html +0 -2
@@ -1,14 +1,33 @@
1
1
  @layer typedoc {
2
+ :root {
3
+ --dim-toolbar-contents-height: 2.5rem;
4
+ --dim-toolbar-border-bottom-width: 1px;
5
+ --dim-header-height: calc(
6
+ var(--dim-toolbar-border-bottom-width) +
7
+ var(--dim-toolbar-contents-height)
8
+ );
9
+
10
+ /* 0rem For mobile; unit is required for calculation in `calc` */
11
+ --dim-container-main-margin-y: 0rem;
12
+
13
+ --dim-footer-height: 3.5rem;
14
+
15
+ --modal-animation-duration: 0.2s;
16
+ }
17
+
2
18
  :root {
3
19
  /* Light */
4
20
  --light-color-background: #f2f4f8;
5
21
  --light-color-background-secondary: #eff0f1;
6
- --light-color-warning-text: #222;
22
+ /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */
23
+ --light-color-background-active: #d6d8da;
7
24
  --light-color-background-warning: #e6e600;
25
+ --light-color-warning-text: #222;
8
26
  --light-color-accent: #c5c7c9;
9
- --light-color-active-menu-item: var(--light-color-accent);
27
+ --light-color-active-menu-item: var(--light-color-background-active);
10
28
  --light-color-text: #222;
11
- --light-color-text-aside: #6e6e6e;
29
+ --light-color-contrast-text: #000;
30
+ --light-color-text-aside: #5e5e5e;
12
31
 
13
32
  --light-color-icon-background: var(--light-color-background);
14
33
  --light-color-icon-text: var(--light-color-text);
@@ -56,15 +75,20 @@
56
75
 
57
76
  --light-external-icon: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' width='10' height='10'><path fill-opacity='0' stroke='%23000' stroke-width='10' d='m43,35H5v60h60V57M45,5v10l10,10-30,30 20,20 30-30 10,10h10V5z'/></svg>");
58
77
  --light-color-scheme: light;
78
+ }
59
79
 
80
+ :root {
60
81
  /* Dark */
61
82
  --dark-color-background: #2b2e33;
62
83
  --dark-color-background-secondary: #1e2024;
84
+ /* Not to be confused with [:active](https://developer.mozilla.org/en-US/docs/Web/CSS/:active) */
85
+ --dark-color-background-active: #5d5d6a;
63
86
  --dark-color-background-warning: #bebe00;
64
87
  --dark-color-warning-text: #222;
65
88
  --dark-color-accent: #9096a2;
66
- --dark-color-active-menu-item: #5d5d6a;
89
+ --dark-color-active-menu-item: var(--dark-color-background-active);
67
90
  --dark-color-text: #f5f5f5;
91
+ --dark-color-contrast-text: #ffffff;
68
92
  --dark-color-text-aside: #dddddd;
69
93
 
70
94
  --dark-color-icon-background: var(--dark-color-background-secondary);
@@ -119,11 +143,13 @@
119
143
  --color-background-secondary: var(
120
144
  --light-color-background-secondary
121
145
  );
146
+ --color-background-active: var(--light-color-background-active);
122
147
  --color-background-warning: var(--light-color-background-warning);
123
148
  --color-warning-text: var(--light-color-warning-text);
124
149
  --color-accent: var(--light-color-accent);
125
150
  --color-active-menu-item: var(--light-color-active-menu-item);
126
151
  --color-text: var(--light-color-text);
152
+ --color-contrast-text: var(--light-color-contrast-text);
127
153
  --color-text-aside: var(--light-color-text-aside);
128
154
 
129
155
  --color-icon-background: var(--light-color-icon-background);
@@ -179,11 +205,13 @@
179
205
  --color-background-secondary: var(
180
206
  --dark-color-background-secondary
181
207
  );
208
+ --color-background-active: var(--dark-color-background-active);
182
209
  --color-background-warning: var(--dark-color-background-warning);
183
210
  --color-warning-text: var(--dark-color-warning-text);
184
211
  --color-accent: var(--dark-color-accent);
185
212
  --color-active-menu-item: var(--dark-color-active-menu-item);
186
213
  --color-text: var(--dark-color-text);
214
+ --color-contrast-text: var(--dark-color-contrast-text);
187
215
  --color-text-aside: var(--dark-color-text-aside);
188
216
 
189
217
  --color-icon-background: var(--dark-color-icon-background);
@@ -233,23 +261,17 @@
233
261
  }
234
262
  }
235
263
 
236
- html {
237
- color-scheme: var(--color-scheme);
238
- }
239
-
240
- body {
241
- margin: 0;
242
- }
243
-
244
264
  :root[data-theme="light"] {
245
265
  --color-background: var(--light-color-background);
246
266
  --color-background-secondary: var(--light-color-background-secondary);
267
+ --color-background-active: var(--light-color-background-active);
247
268
  --color-background-warning: var(--light-color-background-warning);
248
269
  --color-warning-text: var(--light-color-warning-text);
249
270
  --color-icon-background: var(--light-color-icon-background);
250
271
  --color-accent: var(--light-color-accent);
251
272
  --color-active-menu-item: var(--light-color-active-menu-item);
252
273
  --color-text: var(--light-color-text);
274
+ --color-contrast-text: var(--light-color-contrast-text);
253
275
  --color-text-aside: var(--light-color-text-aside);
254
276
  --color-icon-text: var(--light-color-icon-text);
255
277
 
@@ -299,12 +321,14 @@
299
321
  :root[data-theme="dark"] {
300
322
  --color-background: var(--dark-color-background);
301
323
  --color-background-secondary: var(--dark-color-background-secondary);
324
+ --color-background-active: var(--dark-color-background-active);
302
325
  --color-background-warning: var(--dark-color-background-warning);
303
326
  --color-warning-text: var(--dark-color-warning-text);
304
327
  --color-icon-background: var(--dark-color-icon-background);
305
328
  --color-accent: var(--dark-color-accent);
306
329
  --color-active-menu-item: var(--dark-color-active-menu-item);
307
330
  --color-text: var(--dark-color-text);
331
+ --color-contrast-text: var(--dark-color-contrast-text);
308
332
  --color-text-aside: var(--dark-color-text-aside);
309
333
  --color-icon-text: var(--dark-color-icon-text);
310
334
 
@@ -351,6 +375,13 @@
351
375
  --color-scheme: var(--dark-color-scheme);
352
376
  }
353
377
 
378
+ html {
379
+ color-scheme: var(--color-scheme);
380
+ @media (prefers-reduced-motion: no-preference) {
381
+ scroll-behavior: smooth;
382
+ }
383
+ }
384
+
354
385
  *:focus-visible,
355
386
  .tsd-accordion-summary:focus-visible svg {
356
387
  outline: 2px solid var(--color-focus-outline);
@@ -421,16 +452,19 @@
421
452
  border-top: 1px solid var(--color-accent);
422
453
  padding-top: 1rem;
423
454
  padding-bottom: 1rem;
424
- max-height: 3.5rem;
455
+ max-height: var(--dim-footer-height);
425
456
  }
426
457
  footer > p {
427
458
  margin: 0 1em;
428
459
  }
429
460
 
430
461
  .container-main {
431
- margin: 0 auto;
462
+ margin: var(--dim-container-main-margin-y) auto;
432
463
  /* toolbar, footer, margin */
433
- min-height: calc(100vh - 41px - 56px - 4rem);
464
+ min-height: calc(
465
+ 100svh - var(--dim-header-height) - var(--dim-footer-height) -
466
+ 2 * var(--dim-container-main-margin-y)
467
+ );
434
468
  }
435
469
 
436
470
  @keyframes fade-in {
@@ -450,29 +484,6 @@
450
484
  opacity: 0;
451
485
  }
452
486
  }
453
- @keyframes fade-in-delayed {
454
- 0% {
455
- opacity: 0;
456
- }
457
- 33% {
458
- opacity: 0;
459
- }
460
- 100% {
461
- opacity: 1;
462
- }
463
- }
464
- @keyframes fade-out-delayed {
465
- 0% {
466
- opacity: 1;
467
- visibility: visible;
468
- }
469
- 66% {
470
- opacity: 0;
471
- }
472
- 100% {
473
- opacity: 0;
474
- }
475
- }
476
487
  @keyframes pop-in-from-right {
477
488
  from {
478
489
  transform: translate(100%, 0);
@@ -492,10 +503,12 @@
492
503
  }
493
504
  body {
494
505
  background: var(--color-background);
495
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
506
+ font-family:
507
+ -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans",
496
508
  Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji";
497
509
  font-size: 16px;
498
510
  color: var(--color-text);
511
+ margin: 0;
499
512
  }
500
513
 
501
514
  a {
@@ -514,6 +527,9 @@
514
527
  a.tsd-anchor-link {
515
528
  color: var(--color-text);
516
529
  }
530
+ :target {
531
+ scroll-margin-block: calc(var(--dim-header-height) + 0.5rem);
532
+ }
517
533
 
518
534
  code,
519
535
  pre {
@@ -545,7 +561,8 @@
545
561
  box-sizing: border-box;
546
562
  }
547
563
  pre:hover > button,
548
- pre > button.visible {
564
+ pre > button.visible,
565
+ pre > button:focus-visible {
549
566
  opacity: 1;
550
567
  }
551
568
 
@@ -555,6 +572,52 @@
555
572
  border-left: 4px solid gray;
556
573
  }
557
574
 
575
+ img {
576
+ max-width: 100%;
577
+ }
578
+
579
+ * {
580
+ scrollbar-width: thin;
581
+ scrollbar-color: var(--color-accent) var(--color-icon-background);
582
+ }
583
+
584
+ *::-webkit-scrollbar {
585
+ width: 0.75rem;
586
+ }
587
+
588
+ *::-webkit-scrollbar-track {
589
+ background: var(--color-icon-background);
590
+ }
591
+
592
+ *::-webkit-scrollbar-thumb {
593
+ background-color: var(--color-accent);
594
+ border-radius: 999rem;
595
+ border: 0.25rem solid var(--color-icon-background);
596
+ }
597
+
598
+ dialog {
599
+ border: none;
600
+ outline: none;
601
+ padding: 0;
602
+ background-color: var(--color-background);
603
+ }
604
+ dialog::backdrop {
605
+ display: none;
606
+ }
607
+ #tsd-overlay {
608
+ background-color: rgba(0, 0, 0, 0.5);
609
+ position: fixed;
610
+ z-index: 9999;
611
+ top: 0;
612
+ left: 0;
613
+ right: 0;
614
+ bottom: 0;
615
+ animation: fade-in var(--modal-animation-duration) forwards;
616
+ }
617
+ #tsd-overlay.closing {
618
+ animation-name: fade-out;
619
+ }
620
+
558
621
  .tsd-typography {
559
622
  line-height: 1.333em;
560
623
  }
@@ -629,6 +692,7 @@
629
692
 
630
693
  .tsd-breadcrumb {
631
694
  margin: 0;
695
+ margin-top: 1rem;
632
696
  padding: 0;
633
697
  color: var(--color-text-aside);
634
698
  }
@@ -733,7 +797,7 @@
733
797
  margin-right: 0.5em;
734
798
  border-radius: 0.33em;
735
799
  /* Leaving this at full opacity breaks event listeners on Firefox.
736
- Don't remove unless you know what you're doing. */
800
+ Don't remove unless you know what you're doing. */
737
801
  opacity: 0.99;
738
802
  }
739
803
  .tsd-filter-input input[type="checkbox"]:focus-visible + svg {
@@ -876,7 +940,8 @@
876
940
  }
877
941
 
878
942
  .tsd-navigation.settings {
879
- margin: 1rem 0;
943
+ margin: 0;
944
+ margin-bottom: 1rem;
880
945
  }
881
946
  .tsd-navigation > a,
882
947
  .tsd-navigation .tsd-accordion-summary {
@@ -898,6 +963,7 @@
898
963
  .tsd-navigation a.current,
899
964
  .tsd-page-navigation a.current {
900
965
  background: var(--color-active-menu-item);
966
+ color: var(--color-contrast-text);
901
967
  }
902
968
  .tsd-navigation a:hover,
903
969
  .tsd-page-navigation a:hover {
@@ -931,14 +997,14 @@
931
997
  margin-left: -1.5rem;
932
998
  }
933
999
 
934
- .tsd-page-navigation-section {
935
- margin-left: 10px;
936
- }
937
1000
  .tsd-page-navigation-section > summary {
938
1001
  padding: 0.25rem;
939
1002
  }
1003
+ .tsd-page-navigation-section > summary > svg {
1004
+ margin-right: 0.25rem;
1005
+ }
940
1006
  .tsd-page-navigation-section > div {
941
- margin-left: 20px;
1007
+ margin-left: 30px;
942
1008
  }
943
1009
  .tsd-page-navigation ul {
944
1010
  padding-left: 1.75rem;
@@ -964,6 +1030,10 @@
964
1030
  .tsd-accordion-summary {
965
1031
  list-style-type: none; /* hide marker on non-safari */
966
1032
  outline: none; /* broken on safari, so just hide it */
1033
+ display: flex;
1034
+ align-items: center;
1035
+ gap: 0.25rem;
1036
+ box-sizing: border-box;
967
1037
  }
968
1038
  .tsd-accordion-summary::-webkit-details-marker {
969
1039
  display: none; /* hide marker on safari */
@@ -986,28 +1056,21 @@
986
1056
  padding-top: 0;
987
1057
  padding-bottom: 0;
988
1058
  }
989
- .tsd-accordion .tsd-accordion-summary > svg {
990
- margin-left: 0.25rem;
991
- vertical-align: text-top;
992
- }
993
1059
  /*
994
1060
  * We need to be careful to target the arrow indicating whether the accordion
995
1061
  * is open, but not any other SVGs included in the details element.
996
1062
  */
997
- .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child,
998
- .tsd-accordion:not([open]) > .tsd-accordion-summary > h1 > svg:first-child,
999
- .tsd-accordion:not([open]) > .tsd-accordion-summary > h2 > svg:first-child,
1000
- .tsd-accordion:not([open]) > .tsd-accordion-summary > h3 > svg:first-child,
1001
- .tsd-accordion:not([open]) > .tsd-accordion-summary > h4 > svg:first-child,
1002
- .tsd-accordion:not([open]) > .tsd-accordion-summary > h5 > svg:first-child {
1063
+ .tsd-accordion:not([open]) > .tsd-accordion-summary > svg:first-child {
1003
1064
  transform: rotate(-90deg);
1004
1065
  }
1005
1066
  .tsd-index-content > :not(:first-child) {
1006
1067
  margin-top: 0.75rem;
1007
1068
  }
1008
- .tsd-index-heading {
1069
+ .tsd-index-summary {
1009
1070
  margin-top: 1.5rem;
1010
1071
  margin-bottom: 0.75rem;
1072
+ display: flex;
1073
+ align-content: center;
1011
1074
  }
1012
1075
 
1013
1076
  .tsd-no-select {
@@ -1062,117 +1125,104 @@
1062
1125
  margin-bottom: 1rem;
1063
1126
  }
1064
1127
 
1065
- #tsd-search {
1066
- transition: background-color 0.2s;
1128
+ #tsd-search[open] {
1129
+ animation: fade-in var(--modal-animation-duration) ease-out forwards;
1067
1130
  }
1068
- #tsd-search .title {
1069
- position: relative;
1070
- z-index: 2;
1131
+ #tsd-search[open].closing {
1132
+ animation-name: fade-out;
1071
1133
  }
1072
- #tsd-search .field {
1073
- position: absolute;
1074
- left: 0;
1075
- top: 0;
1076
- right: 2.5rem;
1077
- height: 100%;
1078
- }
1079
- #tsd-search .field input {
1134
+
1135
+ /* Avoid setting `display` on closed dialog */
1136
+ #tsd-search[open] {
1137
+ display: flex;
1138
+ flex-direction: column;
1139
+ padding: 1rem;
1140
+ width: 32rem;
1141
+ max-width: 90vw;
1142
+ max-height: calc(100vh - env(keyboard-inset-height, 0px) - 25vh);
1143
+ /* Anchor dialog to top */
1144
+ margin-top: 10vh;
1145
+ border-radius: 6px;
1146
+ will-change: max-height;
1147
+ }
1148
+ #tsd-search-input {
1080
1149
  box-sizing: border-box;
1081
- position: relative;
1082
- top: -50px;
1083
- z-index: 1;
1084
1150
  width: 100%;
1085
- padding: 0 10px;
1086
- opacity: 0;
1151
+ padding: 0 0.625rem; /* 10px */
1087
1152
  outline: 0;
1088
- border: 0;
1089
- background: transparent;
1153
+ border: 2px solid var(--color-accent);
1154
+ background-color: transparent;
1090
1155
  color: var(--color-text);
1156
+ border-radius: 4px;
1157
+ height: 2.5rem;
1158
+ flex: 0 0 auto;
1159
+ font-size: 0.875rem;
1160
+ transition: border-color 0.2s, background-color 0.2s;
1091
1161
  }
1092
- #tsd-search .field label {
1093
- position: absolute;
1094
- overflow: hidden;
1095
- right: -40px;
1162
+ #tsd-search-input:focus-visible {
1163
+ background-color: var(--color-background-active);
1164
+ border-color: transparent;
1165
+ color: var(--color-contrast-text);
1096
1166
  }
1097
- #tsd-search .field input,
1098
- #tsd-search .title,
1099
- #tsd-toolbar-links a {
1100
- transition: opacity 0.2s;
1167
+ #tsd-search-input::placeholder {
1168
+ color: inherit;
1169
+ opacity: 0.8;
1101
1170
  }
1102
- #tsd-search .results {
1103
- position: absolute;
1104
- visibility: hidden;
1105
- top: 40px;
1106
- width: 100%;
1171
+ #tsd-search-results {
1107
1172
  margin: 0;
1108
1173
  padding: 0;
1109
1174
  list-style: none;
1110
- box-shadow: 0 0 4px rgba(0, 0, 0, 0.25);
1175
+ flex: 1 1 auto;
1176
+ display: flex;
1177
+ flex-direction: column;
1178
+ overflow-y: auto;
1179
+ }
1180
+ #tsd-search-results:not(:empty) {
1181
+ margin-top: 0.5rem;
1111
1182
  }
1112
- #tsd-search .results li {
1183
+ #tsd-search-results > li {
1113
1184
  background-color: var(--color-background);
1114
- line-height: initial;
1115
- padding: 4px;
1185
+ line-height: 1.5;
1186
+ box-sizing: border-box;
1187
+ border-radius: 4px;
1116
1188
  }
1117
- #tsd-search .results li:nth-child(even) {
1189
+ #tsd-search-results > li:nth-child(even) {
1118
1190
  background-color: var(--color-background-secondary);
1119
1191
  }
1120
- #tsd-search .results li.state {
1121
- display: none;
1122
- }
1123
- #tsd-search .results li.current:not(.no-results),
1124
- #tsd-search .results li:hover:not(.no-results) {
1125
- background-color: var(--color-accent);
1192
+ #tsd-search-results > li:is(:hover, [aria-selected="true"]) {
1193
+ background-color: var(--color-background-active);
1194
+ color: var(--color-contrast-text);
1126
1195
  }
1127
- #tsd-search .results a {
1196
+ /* It's important that this takes full size of parent `li`, to capture a click on `li` */
1197
+ #tsd-search-results > li > a {
1128
1198
  display: flex;
1129
1199
  align-items: center;
1130
- padding: 0.25rem;
1200
+ padding: 0.5rem 0.25rem;
1131
1201
  box-sizing: border-box;
1202
+ width: 100%;
1132
1203
  }
1133
- #tsd-search .results a:before {
1134
- top: 10px;
1204
+ #tsd-search-results > li > a > .text {
1205
+ flex: 1 1 auto;
1206
+ min-width: 0;
1207
+ overflow-wrap: anywhere;
1135
1208
  }
1136
- #tsd-search .results span.parent {
1209
+ #tsd-search-results > li > a .parent {
1137
1210
  color: var(--color-text-aside);
1138
- font-weight: normal;
1139
- }
1140
- #tsd-search.has-focus {
1141
- background-color: var(--color-accent);
1142
- }
1143
- #tsd-search.has-focus .field input {
1144
- top: 0;
1145
- opacity: 1;
1146
- }
1147
- #tsd-search.has-focus .title,
1148
- #tsd-search.has-focus #tsd-toolbar-links a {
1149
- z-index: 0;
1150
- opacity: 0;
1151
- }
1152
- #tsd-search.has-focus .results {
1153
- visibility: visible;
1154
- }
1155
- #tsd-search.loading .results li.state.loading {
1156
- display: block;
1157
1211
  }
1158
- #tsd-search.failure .results li.state.failure {
1159
- display: block;
1160
- }
1161
-
1162
- #tsd-toolbar-links {
1163
- position: absolute;
1164
- top: 0;
1165
- right: 2rem;
1166
- height: 100%;
1167
- display: flex;
1168
- align-items: center;
1169
- justify-content: flex-end;
1212
+ #tsd-search-results > li > a mark {
1213
+ color: inherit;
1214
+ background-color: inherit;
1215
+ font-weight: bold;
1170
1216
  }
1171
- #tsd-toolbar-links a {
1172
- margin-left: 1.5rem;
1217
+ #tsd-search-status {
1218
+ flex: 1;
1219
+ display: grid;
1220
+ place-content: center;
1221
+ text-align: center;
1222
+ overflow-wrap: anywhere;
1173
1223
  }
1174
- #tsd-toolbar-links a:hover {
1175
- text-decoration: underline;
1224
+ #tsd-search-status:not(:empty) {
1225
+ min-height: 6rem;
1176
1226
  }
1177
1227
 
1178
1228
  .tsd-signature {
@@ -1257,78 +1307,52 @@
1257
1307
  width: 100%;
1258
1308
  color: var(--color-text);
1259
1309
  background: var(--color-background-secondary);
1260
- border-bottom: 1px var(--color-accent) solid;
1310
+ border-bottom: var(--dim-toolbar-border-bottom-width)
1311
+ var(--color-accent) solid;
1261
1312
  transition: transform 0.3s ease-in-out;
1262
1313
  }
1263
1314
  .tsd-page-toolbar a {
1264
1315
  color: var(--color-text);
1265
- text-decoration: none;
1266
- }
1267
- .tsd-page-toolbar a.title {
1268
- font-weight: bold;
1269
1316
  }
1270
- .tsd-page-toolbar a.title:hover {
1271
- text-decoration: underline;
1272
- }
1273
- .tsd-page-toolbar .tsd-toolbar-contents {
1317
+ .tsd-toolbar-contents {
1274
1318
  display: flex;
1275
- justify-content: space-between;
1276
- height: 2.5rem;
1319
+ align-items: center;
1320
+ height: var(--dim-toolbar-contents-height);
1277
1321
  margin: 0 auto;
1278
1322
  }
1279
- .tsd-page-toolbar .table-cell {
1280
- position: relative;
1281
- white-space: nowrap;
1282
- line-height: 40px;
1283
- }
1284
- .tsd-page-toolbar .table-cell:first-child {
1285
- width: 100%;
1323
+ .tsd-toolbar-contents > .title {
1324
+ font-weight: bold;
1325
+ margin-right: auto;
1286
1326
  }
1287
- .tsd-page-toolbar .tsd-toolbar-icon {
1288
- box-sizing: border-box;
1289
- line-height: 0;
1290
- padding: 12px 0;
1327
+ #tsd-toolbar-links {
1328
+ display: flex;
1329
+ align-items: center;
1330
+ gap: 1.5rem;
1331
+ margin-right: 1rem;
1291
1332
  }
1292
1333
 
1293
1334
  .tsd-widget {
1335
+ box-sizing: border-box;
1294
1336
  display: inline-block;
1295
- overflow: hidden;
1296
1337
  opacity: 0.8;
1297
- height: 40px;
1298
- transition:
1299
- opacity 0.1s,
1300
- background-color 0.2s;
1301
- vertical-align: bottom;
1338
+ height: 2.5rem;
1339
+ width: 2.5rem;
1340
+ transition: opacity 0.1s, background-color 0.1s;
1341
+ text-align: center;
1302
1342
  cursor: pointer;
1343
+ border: none;
1344
+ background-color: transparent;
1303
1345
  }
1304
1346
  .tsd-widget:hover {
1305
1347
  opacity: 0.9;
1306
1348
  }
1307
- .tsd-widget.active {
1349
+ .tsd-widget:active {
1308
1350
  opacity: 1;
1309
1351
  background-color: var(--color-accent);
1310
1352
  }
1311
- .tsd-widget.no-caption {
1312
- width: 40px;
1313
- }
1314
- .tsd-widget.no-caption:before {
1315
- margin: 0;
1316
- }
1317
-
1318
- .tsd-widget.options,
1319
- .tsd-widget.menu {
1353
+ #tsd-toolbar-menu-trigger {
1320
1354
  display: none;
1321
1355
  }
1322
- input[type="checkbox"] + .tsd-widget:before {
1323
- background-position: -120px 0;
1324
- }
1325
- input[type="checkbox"]:checked + .tsd-widget:before {
1326
- background-position: -160px 0;
1327
- }
1328
-
1329
- img {
1330
- max-width: 100%;
1331
- }
1332
1356
 
1333
1357
  .tsd-member-summary-name {
1334
1358
  display: inline-flex;
@@ -1342,6 +1366,7 @@
1342
1366
  align-items: center;
1343
1367
  margin-left: 0.5rem;
1344
1368
  color: var(--color-text);
1369
+ vertical-align: middle;
1345
1370
  }
1346
1371
 
1347
1372
  .tsd-anchor-icon svg {
@@ -1351,7 +1376,8 @@
1351
1376
  }
1352
1377
 
1353
1378
  .tsd-member-summary-name:hover > .tsd-anchor-icon svg,
1354
- .tsd-anchor-link:hover > .tsd-anchor-icon svg {
1379
+ .tsd-anchor-link:hover > .tsd-anchor-icon svg,
1380
+ .tsd-anchor-icon:focus-visible svg {
1355
1381
  visibility: visible;
1356
1382
  }
1357
1383
 
@@ -1437,41 +1463,26 @@
1437
1463
  color: var(--color-text);
1438
1464
  }
1439
1465
 
1440
- * {
1441
- scrollbar-width: thin;
1442
- scrollbar-color: var(--color-accent) var(--color-icon-background);
1443
- }
1444
-
1445
- *::-webkit-scrollbar {
1446
- width: 0.75rem;
1447
- }
1448
-
1449
- *::-webkit-scrollbar-track {
1450
- background: var(--color-icon-background);
1451
- }
1452
-
1453
- *::-webkit-scrollbar-thumb {
1454
- background-color: var(--color-accent);
1455
- border-radius: 999rem;
1456
- border: 0.25rem solid var(--color-icon-background);
1457
- }
1458
-
1459
1466
  /* mobile */
1460
1467
  @media (max-width: 769px) {
1461
- .tsd-widget.options,
1462
- .tsd-widget.menu {
1468
+ #tsd-toolbar-menu-trigger {
1463
1469
  display: inline-block;
1470
+ /* temporary fix to vertically align, for compatibility */
1471
+ line-height: 2.5;
1472
+ }
1473
+ #tsd-toolbar-links {
1474
+ display: none;
1464
1475
  }
1465
1476
 
1466
1477
  .container-main {
1467
1478
  display: flex;
1468
1479
  }
1469
- html .col-content {
1480
+ .col-content {
1470
1481
  float: none;
1471
1482
  max-width: 100%;
1472
1483
  width: 100%;
1473
1484
  }
1474
- html .col-sidebar {
1485
+ .col-sidebar {
1475
1486
  position: fixed !important;
1476
1487
  overflow-y: auto;
1477
1488
  -webkit-overflow-scrolling: touch;
@@ -1486,10 +1497,10 @@
1486
1497
  background-color: var(--color-background);
1487
1498
  transform: translate(100%, 0);
1488
1499
  }
1489
- html .col-sidebar > *:last-child {
1500
+ .col-sidebar > *:last-child {
1490
1501
  padding-bottom: 20px;
1491
1502
  }
1492
- html .overlay {
1503
+ .overlay {
1493
1504
  content: "";
1494
1505
  display: block;
1495
1506
  position: fixed;
@@ -1536,9 +1547,6 @@
1536
1547
  .has-menu .tsd-navigation {
1537
1548
  max-height: 100%;
1538
1549
  }
1539
- #tsd-toolbar-links {
1540
- display: none;
1541
- }
1542
1550
  .tsd-navigation .tsd-nav-link {
1543
1551
  display: flex;
1544
1552
  }
@@ -1550,7 +1558,11 @@
1550
1558
  display: grid;
1551
1559
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
1552
1560
  grid-template-areas: "sidebar content";
1553
- margin: 2rem auto;
1561
+ --dim-container-main-margin-y: 2rem;
1562
+ }
1563
+
1564
+ .tsd-breadcrumb {
1565
+ margin-top: 0;
1554
1566
  }
1555
1567
 
1556
1568
  .col-sidebar {
@@ -1563,11 +1575,15 @@
1563
1575
  }
1564
1576
  @media (min-width: 770px) and (max-width: 1399px) {
1565
1577
  .col-sidebar {
1566
- max-height: calc(100vh - 2rem - 42px);
1578
+ max-height: calc(
1579
+ 100vh - var(--dim-header-height) - var(--dim-footer-height) -
1580
+ 2 * var(--dim-container-main-margin-y)
1581
+ );
1567
1582
  overflow: auto;
1568
1583
  position: sticky;
1569
- top: 42px;
1570
- padding-top: 1rem;
1584
+ top: calc(
1585
+ var(--dim-header-height) + var(--dim-container-main-margin-y)
1586
+ );
1571
1587
  }
1572
1588
  .site-menu {
1573
1589
  margin-top: 1rem;
@@ -1577,10 +1593,11 @@
1577
1593
  /* two sidebars */
1578
1594
  @media (min-width: 1200px) {
1579
1595
  .container-main {
1580
- grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(
1581
- 0,
1582
- 20rem
1583
- );
1596
+ grid-template-columns:
1597
+ minmax(0, 1fr) minmax(0, 2.5fr) minmax(
1598
+ 0,
1599
+ 20rem
1600
+ );
1584
1601
  grid-template-areas: "sidebar content toc";
1585
1602
  }
1586
1603
 
@@ -1597,15 +1614,20 @@
1597
1614
  }
1598
1615
 
1599
1616
  .site-menu {
1600
- margin-top: 1rem;
1617
+ margin-top: 0rem;
1601
1618
  }
1602
1619
 
1603
1620
  .page-menu,
1604
1621
  .site-menu {
1605
- max-height: calc(100vh - 2rem - 42px);
1622
+ max-height: calc(
1623
+ 100vh - var(--dim-header-height) - var(--dim-footer-height) -
1624
+ 2 * var(--dim-container-main-margin-y)
1625
+ );
1606
1626
  overflow: auto;
1607
1627
  position: sticky;
1608
- top: 42px;
1628
+ top: calc(
1629
+ var(--dim-header-height) + var(--dim-container-main-margin-y)
1630
+ );
1609
1631
  }
1610
1632
  }
1611
1633
  }