homebridge-plugin-utils 1.27.0 → 1.27.2
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.
package/build/eslint-rules.mjs
CHANGED
|
@@ -150,6 +150,7 @@ const tsRules = {
|
|
|
150
150
|
// eslint-disable-next-line sort-keys
|
|
151
151
|
"@typescript-eslint/require-await": "warn",
|
|
152
152
|
"no-dupe-class-members": "off",
|
|
153
|
+
"no-redeclare": "off",
|
|
153
154
|
"no-undef": "off",
|
|
154
155
|
"no-unused-expressions": "off",
|
|
155
156
|
"no-unused-vars": "off"
|
package/dist/ffmpeg/options.js
CHANGED
|
@@ -583,7 +583,6 @@ export class FfmpegOptions {
|
|
|
583
583
|
// -allow_sw 1 Allow the use of the software encoder if the hardware encoder is occupied or unavailable.
|
|
584
584
|
// This allows us to scale when we get multiple streaming requests simultaneously and consume all the available encode engines.
|
|
585
585
|
// -realtime 1 We prefer speed over quality - if the encoder has to make a choice, sacrifice one for the other.
|
|
586
|
-
// -coder cabac Use the cabac encoder for better video quality with the encoding profiles we use for HomeKit.
|
|
587
586
|
// -profile:v Use the H.264 profile that HomeKit is requesting when encoding.
|
|
588
587
|
// -level:v 0 We override what HomeKit requests for the H.264 profile level on macOS when we're using hardware-accelerated transcoding because
|
|
589
588
|
// the hardware encoder is particular about how to use levels. Setting it to 0 allows the encoder to decide for itself.
|
|
@@ -595,7 +594,7 @@ export class FfmpegOptions {
|
|
|
595
594
|
// livestreamng exerience.
|
|
596
595
|
// -bufsize size This is the decoder buffer size, which drives the variability / quality of the output bitrate.
|
|
597
596
|
// -maxrate bitrate The maximum bitrate tolerance used in concert with -bufsize to constrain the maximum bitrate permitted.
|
|
598
|
-
encoderOptions.push("-codec:v", "h264_videotoolbox", "-allow_sw", "1", "-realtime", "1", "-
|
|
597
|
+
encoderOptions.push("-codec:v", "h264_videotoolbox", "-allow_sw", "1", "-realtime", "1", "-profile:v", this.getH264Profile(options.profile), "-level:v", "0", "-bf", "0", "-noautoscale", "-filter:v", videoFilters.join(", "), "-g:v", (options.fps * options.idrInterval).toString(), "-bufsize", (2 * options.bitrate).toString() + "k", "-maxrate", adjustedMaxBitrate.toString() + "k");
|
|
599
598
|
if (options.smartQuality) {
|
|
600
599
|
// -q:v 90 Use a fixed quality scale of 90, to allow videotoolbox the ability to vary bitrates to achieve the visual quality we want,
|
|
601
600
|
// constrained by our maximum bitrate. This is an Apple Silicon-specific feature.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/ffmpeg/options.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/ffmpeg/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -809,6 +809,9 @@ export class webUiFeatureOptions {
|
|
|
809
809
|
// Ensure the DOM is ready before we render our UI. We wait for Bootstrap styles to be applied before proceeding.
|
|
810
810
|
await this.#waitForBootstrap();
|
|
811
811
|
|
|
812
|
+
// Initialize theme sync before injecting styles so CSS variables are defined and current.
|
|
813
|
+
await this.#setupThemeAutoUpdate();
|
|
814
|
+
|
|
812
815
|
// Add our custom styles for hover effects, dark mode support, and modern layouts. These enhance the visual experience and ensure consistency with the
|
|
813
816
|
// Homebridge UI theme.
|
|
814
817
|
this.#injectCustomStyles();
|
|
@@ -969,11 +972,14 @@ export class webUiFeatureOptions {
|
|
|
969
972
|
|
|
970
973
|
const headerInfo = document.getElementById("headerInfo");
|
|
971
974
|
|
|
972
|
-
headerInfo
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
975
|
+
if(headerInfo) {
|
|
976
|
+
|
|
977
|
+
headerInfo.style.fontWeight = "bold";
|
|
978
|
+
headerInfo.innerHTML = "Feature options are applied in prioritized order, from global to device-specific options:" +
|
|
979
|
+
"<br><i class=\"text-warning\">Global options</i> (lowest priority) → " +
|
|
980
|
+
(this.#getControllers ? "<i class=\"text-success\">Controller options</i> → " : "") +
|
|
981
|
+
"<i class=\"text-info\">Device options</i> (highest priority)";
|
|
982
|
+
}
|
|
977
983
|
}
|
|
978
984
|
|
|
979
985
|
/**
|
|
@@ -1061,198 +1067,6 @@ export class webUiFeatureOptions {
|
|
|
1061
1067
|
}
|
|
1062
1068
|
}
|
|
1063
1069
|
|
|
1064
|
-
/**
|
|
1065
|
-
* Inject custom styles for hover effects, dark mode support, and modern layouts.
|
|
1066
|
-
*
|
|
1067
|
-
* These styles enhance the visual experience and ensure our UI integrates well with both light and dark modes. We use media queries to automatically adapt
|
|
1068
|
-
* to the user's system preferences. The styles include support for flexbox layouts, responsive design, and theme-aware coloring.
|
|
1069
|
-
*
|
|
1070
|
-
* @private
|
|
1071
|
-
*/
|
|
1072
|
-
#injectCustomStyles() {
|
|
1073
|
-
|
|
1074
|
-
// Ensure we do not inject duplicate styles when re-entering this view. We make this idempotent for stability across navigations.
|
|
1075
|
-
if(document.getElementById("feature-options-styles")) {
|
|
1076
|
-
|
|
1077
|
-
return;
|
|
1078
|
-
}
|
|
1079
|
-
|
|
1080
|
-
// Extract our theme color from .btn-primary to ensure consistency with the Homebridge theme.
|
|
1081
|
-
const probeBtn = document.createElement("button");
|
|
1082
|
-
|
|
1083
|
-
probeBtn.className = "btn btn-primary";
|
|
1084
|
-
probeBtn.style.display = "none";
|
|
1085
|
-
document.body.appendChild(probeBtn);
|
|
1086
|
-
|
|
1087
|
-
this.#themeColor.background = getComputedStyle(probeBtn).backgroundColor;
|
|
1088
|
-
this.#themeColor.text = getComputedStyle(probeBtn).color;
|
|
1089
|
-
|
|
1090
|
-
document.body.removeChild(probeBtn);
|
|
1091
|
-
|
|
1092
|
-
// Quick utility to help us convert RGB values to RGBA for use in CSS.
|
|
1093
|
-
const rgba = (rgb, alpha) => {
|
|
1094
|
-
|
|
1095
|
-
const match = rgb.match(/\d+/g);
|
|
1096
|
-
|
|
1097
|
-
if(!match || (match.length < 3)) {
|
|
1098
|
-
|
|
1099
|
-
return rgb;
|
|
1100
|
-
}
|
|
1101
|
-
|
|
1102
|
-
return "rgba(" + match[0] + ", " + match[1] + ", " + match[2] + ", " + alpha + ")";
|
|
1103
|
-
};
|
|
1104
|
-
|
|
1105
|
-
const styles = [
|
|
1106
|
-
|
|
1107
|
-
/* eslint-disable @stylistic/max-len */
|
|
1108
|
-
// Remove margin collapse and enable clean layout flow.
|
|
1109
|
-
"html, body { margin: 0; padding: 0; }",
|
|
1110
|
-
|
|
1111
|
-
// Compensate for misbehavior in Homebridge Config UI X when switching to or from dark mode.
|
|
1112
|
-
"body { background-color: #fff !important; }",
|
|
1113
|
-
|
|
1114
|
-
// Page root uses a column layout with full width.
|
|
1115
|
-
"#pageFeatureOptions { display: flex !important; flex-direction: column; width: 100%; }",
|
|
1116
|
-
|
|
1117
|
-
// Sidebar + content layout is horizontal (row).
|
|
1118
|
-
".feature-main-content { display: flex !important; flex-direction: row !important; width: 100%; }",
|
|
1119
|
-
|
|
1120
|
-
// Sidebar layout and appearance.
|
|
1121
|
-
"#sidebar { display: block; width: 200px; min-width: 200px; max-width: 200px; background-color: var(--bs-gray-100); position: relative; }",
|
|
1122
|
-
|
|
1123
|
-
// Remove internal scrolling from sidebar content.
|
|
1124
|
-
"#sidebar .sidebar-content { padding: 0rem; overflow: unset; }",
|
|
1125
|
-
|
|
1126
|
-
// Sidebar containers.
|
|
1127
|
-
"#controllersContainer { padding: 0; margin-bottom: 0; }",
|
|
1128
|
-
"#devicesContainer { padding: 0; margin-top: 0; padding-top: 0 !important; }",
|
|
1129
|
-
|
|
1130
|
-
// Feature content (right-hand pane).
|
|
1131
|
-
".feature-content { display: flex !important; flex-direction: column !important; flex: 1 1 auto; min-width: 0; }",
|
|
1132
|
-
".category-border { border: 1px solid " + this.#themeColor.background + " !important; box-shadow: 0 0 0 1px " + rgba(this.#themeColor.background, 0.1) + "; }",
|
|
1133
|
-
|
|
1134
|
-
// Ensure the table itself uses separate borders when we have rounded tbody elements. This is necessary for border-radius to work properly.
|
|
1135
|
-
"table[data-category] { border-collapse: separate !important; border-spacing: 0; }",
|
|
1136
|
-
|
|
1137
|
-
// How we define row visibility for feature options. We need this complexity because we hide or make visible rows depending on what the user has chosen to expose.
|
|
1138
|
-
//
|
|
1139
|
-
// "table[data-category] tbody tr.fo-visible,"
|
|
1140
|
-
// "table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']){}",
|
|
1141
|
-
|
|
1142
|
-
// Create the outer border of the table on the left and right sides.
|
|
1143
|
-
"table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']) td:first-child{",
|
|
1144
|
-
" border-left:1px solid " + this.#themeColor.background + ";",
|
|
1145
|
-
"}",
|
|
1146
|
-
"table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']) td:last-child{",
|
|
1147
|
-
" border-right:1px solid " + this.#themeColor.background + ";",
|
|
1148
|
-
"}",
|
|
1149
|
-
|
|
1150
|
-
// Provide the top border on the first visible row.
|
|
1151
|
-
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td{",
|
|
1152
|
-
" border-top:1px solid " + this.#themeColor.background + ";",
|
|
1153
|
-
"}",
|
|
1154
|
-
|
|
1155
|
-
// Provide the bottom border on the last visible row.
|
|
1156
|
-
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td{",
|
|
1157
|
-
" border-bottom:1px solid " + this.#themeColor.background + ";",
|
|
1158
|
-
"}",
|
|
1159
|
-
|
|
1160
|
-
// Create rounded corners at the top and bottom rows.
|
|
1161
|
-
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:first-child{",
|
|
1162
|
-
" border-top-left-radius:.5rem;",
|
|
1163
|
-
"}",
|
|
1164
|
-
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:last-child{",
|
|
1165
|
-
" border-top-right-radius:.5rem;",
|
|
1166
|
-
"}",
|
|
1167
|
-
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:first-child{",
|
|
1168
|
-
" border-bottom-left-radius:.5rem;",
|
|
1169
|
-
"}",
|
|
1170
|
-
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:last-child{",
|
|
1171
|
-
" border-bottom-right-radius:.5rem;",
|
|
1172
|
-
"}",
|
|
1173
|
-
|
|
1174
|
-
// Main options area - remove scroll behavior, just layout styling.
|
|
1175
|
-
".options-content { padding: 1rem; margin: 0; }",
|
|
1176
|
-
|
|
1177
|
-
// Info header styling.
|
|
1178
|
-
"#headerInfo { flex-shrink: 0; padding: 0.5rem !important; margin-bottom: 0.5rem !important; }",
|
|
1179
|
-
|
|
1180
|
-
// Device stats grid layout.
|
|
1181
|
-
".device-stats-grid { display: flex; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.5rem; padding: 0 0.75rem; flex-wrap: nowrap; overflow: hidden; }",
|
|
1182
|
-
".device-stats-grid .stat-item:first-child { flex: 0 0 25% }",
|
|
1183
|
-
".device-stats-grid .stat-item:not(:first-child) { flex-grow: 1; min-width: 0; }",
|
|
1184
|
-
|
|
1185
|
-
".stat-item { display: flex; flex-direction: column; gap: 0.125rem; }",
|
|
1186
|
-
".stat-label { font-weight: 600; color: var(--bs-gray-600); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }",
|
|
1187
|
-
".stat-value { font-size: 0.875rem; color: var(--bs-body-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }",
|
|
1188
|
-
|
|
1189
|
-
// Responsive hiding for our device stats grid.
|
|
1190
|
-
"@media (max-width: 700px) { .device-stats-grid .stat-item:nth-last-of-type(1) { display: none !important; } }",
|
|
1191
|
-
"@media (max-width: 500px) { .device-stats-grid .stat-item:nth-last-of-type(2) { display: none !important; } }",
|
|
1192
|
-
"@media (max-width: 300px) { .device-stats-grid .stat-item:nth-last-of-type(3) { display: none !important; } }",
|
|
1193
|
-
|
|
1194
|
-
// Responsive hiding for feature option status information.
|
|
1195
|
-
"@media (max-width: 400px) { #statusInfo { display: none !important; } }",
|
|
1196
|
-
|
|
1197
|
-
// Navigation styles.
|
|
1198
|
-
".nav-link { border-radius: 0.375rem; transition: all 0.2s; position: relative; padding: 0.25rem 0.75rem !important; line-height: 1.2; font-size: 0.8125rem; }",
|
|
1199
|
-
".nav-link:hover { background-color: " + rgba(this.#themeColor.background, 0.1) + "; color: " + this.#themeColor.background + " !important; }",
|
|
1200
|
-
".nav-link.active { background-color: " + this.#themeColor.background + "; color: " + this.#themeColor.text + " !important; }",
|
|
1201
|
-
".nav-header { border-bottom: 1px solid rgba(0, 0, 0, 0.1); margin-bottom: 0.125rem; padding: 0.25rem 0.75rem !important; font-size: 0.75rem !important; line-height: 1.2; }",
|
|
1202
|
-
"#devicesContainer .nav-header { font-weight: 600; margin-top: 0 !important; padding-top: 0.5rem !important; }",
|
|
1203
|
-
"#controllersContainer .nav-header { font-weight: 600; margin-top: 0 !important; padding-top: 0.5rem !important; }",
|
|
1204
|
-
|
|
1205
|
-
// Search bar.
|
|
1206
|
-
".search-toolbar { border-radius: 0.5rem; padding: 0 0 0.5rem 0; }",
|
|
1207
|
-
".search-input-wrapper { min-width: 0; }",
|
|
1208
|
-
".filter-pills { display: flex; gap: 0.5rem; flex-wrap: wrap; }",
|
|
1209
|
-
|
|
1210
|
-
// Grouped option visual indicator.
|
|
1211
|
-
".grouped-option { background-color: " + rgba(this.#themeColor.background, 0.08) + "; }",
|
|
1212
|
-
".grouped-option td:nth-child(2) label { padding-left: 20px; position: relative; }",
|
|
1213
|
-
".grouped-option td:nth-child(2) label::before { content: \"\\21B3\"; position: absolute; left: 4px; color: #666; }",
|
|
1214
|
-
|
|
1215
|
-
// Dark mode refinements.
|
|
1216
|
-
"@media (prefers-color-scheme: dark) {",
|
|
1217
|
-
|
|
1218
|
-
// Compensate for misbehavior in Homebridge Config UI X when switching to or from dark mode.
|
|
1219
|
-
" body { background-color: #242424 !important; }",
|
|
1220
|
-
" #sidebar { background-color: #1A1A1A !important; }",
|
|
1221
|
-
" .nav-header { border-bottom-color: rgba(255, 255, 255, 0.1); }",
|
|
1222
|
-
" .text-body { color: #999 !important; }",
|
|
1223
|
-
" .text-muted { color: #999 !important; }",
|
|
1224
|
-
" .device-stats-grid { background-color: #1A1A1A; border-color: #444; }",
|
|
1225
|
-
" .stat-label { color: #999; }",
|
|
1226
|
-
" .stat-value { color: #999; }",
|
|
1227
|
-
" #search .form-control { background-color: #1A1A1A; border-color: #444; color: #F8F9FA; }",
|
|
1228
|
-
" #search .form-control:focus { background-color: #1A1A1A; border-color: #666; color: #F8F9FA; box-shadow: 0 0 0 0.2rem rgba(255, 160, 0, 0.25); }",
|
|
1229
|
-
" #search .form-control::placeholder { color: #999; }",
|
|
1230
|
-
" #statusInfo .text-muted { color: #B8B8B8 !important; }",
|
|
1231
|
-
"}",
|
|
1232
|
-
|
|
1233
|
-
// Table hover styling.
|
|
1234
|
-
".table-hover tbody tr { transition: background-color 0.15s; }",
|
|
1235
|
-
".table-hover tbody tr:hover { background-color: rgba(0, 0, 0, 0.03); }",
|
|
1236
|
-
"@media (prefers-color-scheme: dark) { .table-hover tbody tr:hover { background-color: rgba(255, 255, 255, 0.20); } }",
|
|
1237
|
-
|
|
1238
|
-
// Utility styles.
|
|
1239
|
-
".btn-xs { font-size: 0.75rem !important; padding: 0.125rem 0.5rem !important; line-height: 1.5; touch-action: manipulation; }",
|
|
1240
|
-
".cursor-pointer { cursor: pointer; }",
|
|
1241
|
-
".user-select-none { user-select: none; -webkit-user-select: none; }",
|
|
1242
|
-
|
|
1243
|
-
// Use CSS for the category header hover emphasis to avoid JS event handlers for simple hover effects.
|
|
1244
|
-
"table[data-category] thead th[role='button']:hover { color: " + this.#themeColor.background + " !important; }",
|
|
1245
|
-
|
|
1246
|
-
// Respect reduced motion settings for accessibility.
|
|
1247
|
-
"@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }"
|
|
1248
|
-
/* eslint-enable @stylistic/max-len */
|
|
1249
|
-
];
|
|
1250
|
-
|
|
1251
|
-
const styleElement = this.#createElement("style", { id: "feature-options-styles" }, [styles.join("\n")]);
|
|
1252
|
-
|
|
1253
|
-
document.head.appendChild(styleElement);
|
|
1254
|
-
}
|
|
1255
|
-
|
|
1256
1070
|
/**
|
|
1257
1071
|
* Show the device list taking the controller context into account.
|
|
1258
1072
|
*
|
|
@@ -1565,7 +1379,7 @@ export class webUiFeatureOptions {
|
|
|
1565
1379
|
return;
|
|
1566
1380
|
}
|
|
1567
1381
|
|
|
1568
|
-
this.#deviceStatsContainer.style.display =
|
|
1382
|
+
this.#deviceStatsContainer.style.display = "";
|
|
1569
1383
|
this.#infoPanel(device);
|
|
1570
1384
|
}
|
|
1571
1385
|
|
|
@@ -2930,6 +2744,11 @@ export class webUiFeatureOptions {
|
|
|
2930
2744
|
*/
|
|
2931
2745
|
#showDeviceInfoPanel(device) {
|
|
2932
2746
|
|
|
2747
|
+
if(!this.#deviceStatsContainer) {
|
|
2748
|
+
|
|
2749
|
+
return;
|
|
2750
|
+
}
|
|
2751
|
+
|
|
2933
2752
|
if(!device) {
|
|
2934
2753
|
|
|
2935
2754
|
this.#deviceStatsContainer.textContent = "";
|
|
@@ -3109,10 +2928,11 @@ export class webUiFeatureOptions {
|
|
|
3109
2928
|
|
|
3110
2929
|
row.style.display = this.#rowMatchesFilter(row, filterType) ? "" : "none";
|
|
3111
2930
|
}
|
|
3112
|
-
} else {
|
|
3113
2931
|
|
|
3114
|
-
|
|
2932
|
+
continue;
|
|
3115
2933
|
}
|
|
2934
|
+
|
|
2935
|
+
row.style.display = this.#rowMatchesFilter(row, filterType) ? "" : "none";
|
|
3116
2936
|
}
|
|
3117
2937
|
|
|
3118
2938
|
// Update counts and visibility. We need to update various UI elements to reflect the filtered view.
|
|
@@ -3145,11 +2965,13 @@ export class webUiFeatureOptions {
|
|
|
3145
2965
|
switch(filterType) {
|
|
3146
2966
|
|
|
3147
2967
|
case "modified":
|
|
2968
|
+
|
|
3148
2969
|
// Modified options have the text-info class to indicate they differ from defaults.
|
|
3149
2970
|
return row.querySelector("label")?.classList.contains("text-info") ?? false;
|
|
3150
2971
|
|
|
3151
2972
|
case "all":
|
|
3152
2973
|
default:
|
|
2974
|
+
|
|
3153
2975
|
return true;
|
|
3154
2976
|
}
|
|
3155
2977
|
}
|
|
@@ -3403,6 +3225,282 @@ export class webUiFeatureOptions {
|
|
|
3403
3225
|
}
|
|
3404
3226
|
}
|
|
3405
3227
|
|
|
3228
|
+
/**
|
|
3229
|
+
* Inject custom styles for hover effects, dark mode support, and modern layouts.
|
|
3230
|
+
*
|
|
3231
|
+
* These styles enhance the visual experience and ensure our UI integrates well with both light and dark modes. We use media queries to automatically adapt
|
|
3232
|
+
* to the user's system preferences. The styles include support for flexbox layouts, responsive design, and theme-aware coloring.
|
|
3233
|
+
*
|
|
3234
|
+
* @private
|
|
3235
|
+
*/
|
|
3236
|
+
#injectCustomStyles() {
|
|
3237
|
+
|
|
3238
|
+
// Ensure we do not inject duplicate styles when re-entering this view. We make this idempotent for stability across navigations.
|
|
3239
|
+
if(document.getElementById("feature-options-styles")) {
|
|
3240
|
+
|
|
3241
|
+
return;
|
|
3242
|
+
}
|
|
3243
|
+
|
|
3244
|
+
const styles = [
|
|
3245
|
+
|
|
3246
|
+
/* eslint-disable @stylistic/max-len */
|
|
3247
|
+
// Define CSS variables used throughout our webUI. We update these when the theme changes so the UI can respond according to the visual environment.
|
|
3248
|
+
":root {",
|
|
3249
|
+
" --plugin-primary-bg: " + this.#themeColor.background + ";",
|
|
3250
|
+
" --plugin-primary-fg: " + this.#themeColor.text + ";",
|
|
3251
|
+
" --plugin-primary-hover: rgba(0,0,0,0.05); /* placeholder, JS will override with a color-specific value */",
|
|
3252
|
+
" --plugin-primary-subtle: rgba(0,0,0,0.03); /* placeholder, JS will override with a color-specific value */",
|
|
3253
|
+
" --plugin-body-bg-light: #ffffff;",
|
|
3254
|
+
" --plugin-body-bg-dark: #242424;",
|
|
3255
|
+
" --plugin-sidebar-bg-light: var(--bs-gray-100);",
|
|
3256
|
+
" --plugin-sidebar-bg-dark: #1A1A1A;",
|
|
3257
|
+
"}",
|
|
3258
|
+
|
|
3259
|
+
// We start with a base layout reset - remove margin collapse and enable clean layout flow.
|
|
3260
|
+
"html, body { margin: 0; padding: 0; }",
|
|
3261
|
+
|
|
3262
|
+
// Theme-scoped body and sidebar backgrounds. We scope to app-driven theme first.
|
|
3263
|
+
":root[data-plugin-theme='light'] body { background-color: var(--plugin-body-bg-light) !important; }",
|
|
3264
|
+
":root[data-plugin-theme='dark'] body { background-color: var(--plugin-body-bg-dark) !important; }",
|
|
3265
|
+
":root[data-plugin-theme='light'] #sidebar { background-color: var(--plugin-sidebar-bg-light) !important; }",
|
|
3266
|
+
":root[data-plugin-theme='dark'] #sidebar { background-color: var(--plugin-sidebar-bg-dark) !important; }",
|
|
3267
|
+
|
|
3268
|
+
// Page root uses a column layout with full width.
|
|
3269
|
+
"#pageFeatureOptions { display: flex !important; flex-direction: column; width: 100%; }",
|
|
3270
|
+
|
|
3271
|
+
// Sidebar + content layout is horizontal (row).
|
|
3272
|
+
".feature-main-content { display: flex !important; flex-direction: row !important; width: 100%; }",
|
|
3273
|
+
|
|
3274
|
+
// Sidebar layout and appearance.
|
|
3275
|
+
"#sidebar { display: block; width: 200px; min-width: 200px; max-width: 200px; position: relative; }",
|
|
3276
|
+
|
|
3277
|
+
// Remove internal scrolling from sidebar content.
|
|
3278
|
+
"#sidebar .sidebar-content { padding: 0rem; overflow: unset; }",
|
|
3279
|
+
|
|
3280
|
+
// Sidebar containers.
|
|
3281
|
+
"#controllersContainer { padding: 0; margin-bottom: 0; }",
|
|
3282
|
+
"#devicesContainer { padding: 0; margin-top: 0; padding-top: 0 !important; }",
|
|
3283
|
+
|
|
3284
|
+
// Feature content (right-hand pane).
|
|
3285
|
+
".feature-content { display: flex !important; flex-direction: column !important; flex: 1 1 auto; min-width: 0; }",
|
|
3286
|
+
// ".category-border { border: 1px solid " + this.#themeColor.background + " !important; box-shadow: 0 0 0 1px " + rgba(this.#themeColor.background, 0.1) + "; }",
|
|
3287
|
+
".category-border { border: 1px solid var(--plugin-primary-bg) !important; box-shadow: 0 0 0 1px var(--plugin-primary-hover); }",
|
|
3288
|
+
|
|
3289
|
+
// Ensure the table itself uses separate borders when we have rounded tbody elements. This is necessary for border-radius to work properly.
|
|
3290
|
+
"table[data-category] { border-collapse: separate !important; border-spacing: 0; }",
|
|
3291
|
+
|
|
3292
|
+
// How we define row visibility for feature options. We need this complexity because we hide or make visible rows depending on what the user has chosen to expose.
|
|
3293
|
+
//
|
|
3294
|
+
// "table[data-category] tbody tr.fo-visible,"
|
|
3295
|
+
// "table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']){}",
|
|
3296
|
+
|
|
3297
|
+
// Create the outer border of the table on the left and right sides.
|
|
3298
|
+
"table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']) td:first-child{",
|
|
3299
|
+
" border-left:1px solid var(--plugin-primary-bg);",
|
|
3300
|
+
"}",
|
|
3301
|
+
"table[data-category] tbody tr:not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none']) td:last-child{",
|
|
3302
|
+
" border-right:1px solid var(--plugin-primary-bg);",
|
|
3303
|
+
"}",
|
|
3304
|
+
|
|
3305
|
+
// Provide the top border on the first visible row.
|
|
3306
|
+
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td{",
|
|
3307
|
+
" border-top:1px solid var(--plugin-primary-bg);",
|
|
3308
|
+
"}",
|
|
3309
|
+
|
|
3310
|
+
// Provide the bottom border on the last visible row.
|
|
3311
|
+
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td{",
|
|
3312
|
+
" border-bottom:1px solid var(--plugin-primary-bg);",
|
|
3313
|
+
"}",
|
|
3314
|
+
|
|
3315
|
+
// Create rounded corners at the top and bottom rows.
|
|
3316
|
+
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:first-child{",
|
|
3317
|
+
" border-top-left-radius:.5rem;",
|
|
3318
|
+
"}",
|
|
3319
|
+
"table[data-category] tbody tr:nth-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:last-child{",
|
|
3320
|
+
" border-top-right-radius:.5rem;",
|
|
3321
|
+
"}",
|
|
3322
|
+
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:first-child{",
|
|
3323
|
+
" border-bottom-left-radius:.5rem;",
|
|
3324
|
+
"}",
|
|
3325
|
+
"table[data-category] tbody tr:nth-last-child(1 of :not([hidden]):not(.d-none):not(.is-hidden):not([style*='display: none'])) td:last-child{",
|
|
3326
|
+
" border-bottom-right-radius:.5rem;",
|
|
3327
|
+
"}",
|
|
3328
|
+
|
|
3329
|
+
// Main options area - remove scroll behavior, just layout styling.
|
|
3330
|
+
".options-content { padding: 1rem; margin: 0; }",
|
|
3331
|
+
|
|
3332
|
+
// Info header styling.
|
|
3333
|
+
"#headerInfo { flex-shrink: 0; padding: 0.5rem !important; margin-bottom: 0.5rem !important; }",
|
|
3334
|
+
|
|
3335
|
+
// Device stats grid layout.
|
|
3336
|
+
".device-stats-grid { display: flex; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.5rem; padding: 0 0.75rem; flex-wrap: nowrap; overflow: hidden; }",
|
|
3337
|
+
".device-stats-grid .stat-item:first-child { flex: 0 0 25% }",
|
|
3338
|
+
".device-stats-grid .stat-item:not(:first-child) { flex-grow: 1; min-width: 0; }",
|
|
3339
|
+
|
|
3340
|
+
".stat-item { display: flex; flex-direction: column; gap: 0.125rem; }",
|
|
3341
|
+
".stat-label { font-weight: 600; color: var(--bs-gray-600); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }",
|
|
3342
|
+
".stat-value { font-size: 0.875rem; color: var(--bs-body-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }",
|
|
3343
|
+
|
|
3344
|
+
// Responsive hiding for our device stats grid.
|
|
3345
|
+
"@media (max-width: 700px) { .device-stats-grid .stat-item:nth-last-of-type(1) { display: none !important; } }",
|
|
3346
|
+
"@media (max-width: 500px) { .device-stats-grid .stat-item:nth-last-of-type(2) { display: none !important; } }",
|
|
3347
|
+
"@media (max-width: 300px) { .device-stats-grid .stat-item:nth-last-of-type(3) { display: none !important; } }",
|
|
3348
|
+
|
|
3349
|
+
// Responsive hiding for feature option status information.
|
|
3350
|
+
"@media (max-width: 400px) { #statusInfo { display: none !important; } }",
|
|
3351
|
+
|
|
3352
|
+
// Navigation styles.
|
|
3353
|
+
".nav-link { border-radius: 0.375rem; transition: all 0.2s; position: relative; padding: 0.25rem 0.75rem !important; line-height: 1.2; font-size: 0.8125rem; }",
|
|
3354
|
+
".nav-link:hover { background-color: var(--plugin-primary-hover); color: var(--plugin-primary-bg) !important; }",
|
|
3355
|
+
".nav-link.active { background-color: var(--plugin-primary-bg); color: var(--plugin-primary-fg) !important; }",
|
|
3356
|
+
".nav-header { border-bottom: 1px solid rgba(0, 0, 0, 0.1); margin-bottom: 0.125rem; padding: 0.25rem 0.75rem !important; font-size: 0.75rem !important; line-height: 1.2; }",
|
|
3357
|
+
"#devicesContainer .nav-header { font-weight: 600; margin-top: 0 !important; padding-top: 0.5rem !important; }",
|
|
3358
|
+
"#controllersContainer .nav-header { font-weight: 600; margin-top: 0 !important; padding-top: 0.5rem !important; }",
|
|
3359
|
+
|
|
3360
|
+
// Search bar.
|
|
3361
|
+
".search-toolbar { border-radius: 0.5rem; padding: 0 0 0.5rem 0; }",
|
|
3362
|
+
".search-input-wrapper { min-width: 0; }",
|
|
3363
|
+
".filter-pills { display: flex; gap: 0.5rem; flex-wrap: wrap; }",
|
|
3364
|
+
|
|
3365
|
+
// Grouped option visual indicator.
|
|
3366
|
+
".grouped-option { background-color: var(--plugin-primary-subtle); }",
|
|
3367
|
+
".grouped-option td:nth-child(2) label { padding-left: 20px; position: relative; }",
|
|
3368
|
+
".grouped-option td:nth-child(2) label::before { content: \"\\21B3\"; position: absolute; left: 4px; color: #666; }",
|
|
3369
|
+
|
|
3370
|
+
// Dark-mode refinements.
|
|
3371
|
+
":root[data-plugin-theme='dark'] .nav-header { border-bottom-color: rgba(255, 255, 255, 0.1); }",
|
|
3372
|
+
":root[data-plugin-theme='dark'] .text-body { color: #999 !important; }",
|
|
3373
|
+
":root[data-plugin-theme='dark'] .text-muted { color: #999 !important; }",
|
|
3374
|
+
":root[data-plugin-theme='dark'] .device-stats-grid { background-color: #1A1A1A; border-color: #444; }",
|
|
3375
|
+
":root[data-plugin-theme='dark'] .stat-label { color: #999; }",
|
|
3376
|
+
":root[data-plugin-theme='dark'] .stat-value { color: #999; }",
|
|
3377
|
+
":root[data-plugin-theme='dark'] #search .form-control { background-color: #1A1A1A; border-color: #444; color: #F8F9FA; }",
|
|
3378
|
+
":root[data-plugin-theme='dark'] #search .form-control:focus { background-color: #1A1A1A; border-color: #666; color: #F8F9FA; box-shadow: 0 0 0 0.2rem rgba(255, 160, 0, 0.25); }",
|
|
3379
|
+
":root[data-plugin-theme='dark'] #search .form-control::placeholder { color: #999; }",
|
|
3380
|
+
":root[data-plugin-theme='dark'] #statusInfo .text-muted { color: #B8B8B8 !important; }",
|
|
3381
|
+
|
|
3382
|
+
// Table hover styling.
|
|
3383
|
+
".table-hover tbody tr { transition: background-color 0.15s; }",
|
|
3384
|
+
":root[data-plugin-theme='light'] .table-hover tbody tr:hover { background-color: rgba(0, 0, 0, 0.03); }",
|
|
3385
|
+
":root[data-plugin-theme='dark'] .table-hover tbody tr:hover { background-color: rgba(255, 255, 255, 0.20); }",
|
|
3386
|
+
|
|
3387
|
+
|
|
3388
|
+
// Utility styles.
|
|
3389
|
+
".btn-xs { font-size: 0.75rem !important; padding: 0.125rem 0.5rem !important; line-height: 1.5; touch-action: manipulation; }",
|
|
3390
|
+
".cursor-pointer { cursor: pointer; }",
|
|
3391
|
+
".user-select-none { user-select: none; -webkit-user-select: none; }",
|
|
3392
|
+
|
|
3393
|
+
// Use CSS for the category header hover emphasis to avoid JS event handlers for simple hover effects.
|
|
3394
|
+
"table[data-category] thead th[role='button']:hover { color: var(--plugin-primary-bg) !important; }",
|
|
3395
|
+
|
|
3396
|
+
// Respect reduced motion settings for accessibility.
|
|
3397
|
+
"@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }"
|
|
3398
|
+
/* eslint-enable @stylistic/max-len */
|
|
3399
|
+
];
|
|
3400
|
+
|
|
3401
|
+
const styleElement = this.#createElement("style", { id: "feature-options-styles" }, [styles.join("\n")]);
|
|
3402
|
+
|
|
3403
|
+
document.head.appendChild(styleElement);
|
|
3404
|
+
}
|
|
3405
|
+
|
|
3406
|
+
/**
|
|
3407
|
+
* Set up automatic theme detection and live updates.
|
|
3408
|
+
*
|
|
3409
|
+
* We rely on Config UI X to tell us what the preferred color scheme is. Once we have it, we recompute our color variables derived from .btn-primary whenever the theme
|
|
3410
|
+
* changes before mirroring all that to :root[data-plugin-theme="light|dark"] so our injected CSS is instantly reflected in our webUI.
|
|
3411
|
+
*
|
|
3412
|
+
* @private
|
|
3413
|
+
*/
|
|
3414
|
+
async #setupThemeAutoUpdate() {
|
|
3415
|
+
|
|
3416
|
+
// Apply the current theme lighting mode and compute color variables.
|
|
3417
|
+
this.#setPluginTheme(await homebridge.userCurrentLightingMode());
|
|
3418
|
+
|
|
3419
|
+
// Finally, we listen for system and browser changes to the current dark mode setting.
|
|
3420
|
+
this.#addEventListener(window.matchMedia("(prefers-color-scheme: dark)"), "change", async () => this.#setPluginTheme(await homebridge.userCurrentLightingMode()));
|
|
3421
|
+
}
|
|
3422
|
+
|
|
3423
|
+
/**
|
|
3424
|
+
* Apply the current theme to :root and recompute JS-derived CSS variables.
|
|
3425
|
+
*
|
|
3426
|
+
* @param {"light"|"dark"} mode
|
|
3427
|
+
* @private
|
|
3428
|
+
*/
|
|
3429
|
+
#setPluginTheme(mode) {
|
|
3430
|
+
|
|
3431
|
+
// Sanity check.
|
|
3432
|
+
if(![ "dark", "light" ].includes(mode)) {
|
|
3433
|
+
|
|
3434
|
+
return;
|
|
3435
|
+
}
|
|
3436
|
+
|
|
3437
|
+
// See if we're already set appropriately. If so, we're done.
|
|
3438
|
+
const current = document.documentElement.getAttribute("data-plugin-theme");
|
|
3439
|
+
|
|
3440
|
+
if(current === mode) {
|
|
3441
|
+
|
|
3442
|
+
return;
|
|
3443
|
+
}
|
|
3444
|
+
|
|
3445
|
+
// Update our theme.
|
|
3446
|
+
document.documentElement.setAttribute("data-plugin-theme", mode);
|
|
3447
|
+
|
|
3448
|
+
this.#computeThemeColors();
|
|
3449
|
+
this.#updateCssVariablesFromTheme();
|
|
3450
|
+
}
|
|
3451
|
+
|
|
3452
|
+
/**
|
|
3453
|
+
* Compute current primary background and foreground from Bootstrap's .btn-primary.
|
|
3454
|
+
*
|
|
3455
|
+
* This gives us a theme-correct color pair regardless of the configured palette in Config UI X.
|
|
3456
|
+
*
|
|
3457
|
+
* @private
|
|
3458
|
+
*/
|
|
3459
|
+
#computeThemeColors() {
|
|
3460
|
+
|
|
3461
|
+
const probeBtn = document.createElement("button");
|
|
3462
|
+
|
|
3463
|
+
probeBtn.className = "btn btn-primary";
|
|
3464
|
+
probeBtn.style.display = "none";
|
|
3465
|
+
document.body.appendChild(probeBtn);
|
|
3466
|
+
|
|
3467
|
+
this.#themeColor.background = getComputedStyle(probeBtn).backgroundColor;
|
|
3468
|
+
this.#themeColor.text = getComputedStyle(probeBtn).color;
|
|
3469
|
+
|
|
3470
|
+
document.body.removeChild(probeBtn);
|
|
3471
|
+
}
|
|
3472
|
+
|
|
3473
|
+
/**
|
|
3474
|
+
* Update CSS custom properties used by our injected styles so they immediately reflect the current theme.
|
|
3475
|
+
*
|
|
3476
|
+
* @private
|
|
3477
|
+
*/
|
|
3478
|
+
#updateCssVariablesFromTheme() {
|
|
3479
|
+
|
|
3480
|
+
const rootStyle = document.documentElement.style;
|
|
3481
|
+
|
|
3482
|
+
const rgba = (rgb, alpha) => {
|
|
3483
|
+
|
|
3484
|
+
const match = rgb.match(/\d+/g);
|
|
3485
|
+
|
|
3486
|
+
if(!match || (match.length < 3)) {
|
|
3487
|
+
|
|
3488
|
+
return rgb;
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
return "rgba(" + match[0] + ", " + match[1] + ", " + match[2] + ", " + alpha + ")";
|
|
3492
|
+
};
|
|
3493
|
+
|
|
3494
|
+
|
|
3495
|
+
// These variables are consumed by our injected CSS.
|
|
3496
|
+
rootStyle.setProperty("--plugin-primary-bg", this.#themeColor.background);
|
|
3497
|
+
rootStyle.setProperty("--plugin-primary-fg", this.#themeColor.text);
|
|
3498
|
+
|
|
3499
|
+
// Derivatives used for hover/subtle surfaces.
|
|
3500
|
+
rootStyle.setProperty("--plugin-primary-hover", rgba(this.#themeColor.background, 0.10));
|
|
3501
|
+
rootStyle.setProperty("--plugin-primary-subtle", rgba(this.#themeColor.background, 0.08));
|
|
3502
|
+
}
|
|
3503
|
+
|
|
3406
3504
|
/**
|
|
3407
3505
|
* Clean up all resources when the instance is no longer needed.
|
|
3408
3506
|
*
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "homebridge-plugin-utils",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.2",
|
|
4
4
|
"displayName": "Homebridge Plugin Utilities",
|
|
5
5
|
"description": "Opinionated utilities to provide common capabilities and create rich configuration webUI experiences for Homebridge plugins.",
|
|
6
6
|
"author": {
|
|
@@ -42,13 +42,13 @@
|
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@stylistic/eslint-plugin": "5.2.3",
|
|
44
44
|
"@types/node": "24.2.1",
|
|
45
|
-
"eslint": "9.
|
|
45
|
+
"eslint": "9.33.0",
|
|
46
46
|
"homebridge": "1.11.0",
|
|
47
47
|
"shx": "0.4.0",
|
|
48
|
-
"typedoc": "0.28.
|
|
48
|
+
"typedoc": "0.28.10",
|
|
49
49
|
"typedoc-plugin-markdown": "4.8.0",
|
|
50
50
|
"typescript": "5.9.2",
|
|
51
|
-
"typescript-eslint": "8.39.
|
|
51
|
+
"typescript-eslint": "8.39.1"
|
|
52
52
|
},
|
|
53
53
|
"dependencies": {
|
|
54
54
|
"mqtt": "5.14.0"
|