iobroker.eos-admin 7.9.89 → 7.9.93
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/INSTALL_TEST_V7.9.93.md +12 -0
- package/NEXOWATT_EOS_BUILD_INFO.json +19 -26
- package/PUBLISH_STABLE_V7.9.93.md +19 -0
- package/README_STABILITY_V7.9.93.md +15 -0
- package/RELEASE_ACCEPTANCE_V7.9.93.md +15 -0
- package/RELEASE_NOTES_V7.9.93.md +10 -0
- package/adminWww/assets/Adapters-B5_jQ7DE-v84.js +1 -1
- package/adminWww/assets/Instances-YdaGnS5a-v84.js +1 -1
- package/adminWww/css/nexowatt-native-shell.css +304 -13
- package/adminWww/index.html +11 -11
- package/adminWww/js/eos-account-management.js +1 -1
- package/adminWww/js/eos-assistant.js +487 -55
- package/adminWww/js/eos-basic-settings.js +1 -1
- package/adminWww/js/eos-branding-sanitizer.js +3 -1
- package/adminWww/js/eos-native-security.js +1 -1
- package/adminWww/js/eos-policy-client.js +1 -1
- package/adminWww/js/eos-role-bootstrap.js +180 -46
- package/adminWww/js/eos-role-ui.js +156 -23
- package/adminWww/js/nexowatt-native-shell.js +1 -1
- package/build/lib/chat/assistantKnowledge.js +21 -6
- package/build/lib/chat/chatOrchestrator.js +33 -38
- package/build/lib/chat/mcpClientManager.js +1 -1
- package/build/lib/web.js +39 -0
- package/build/main.js +307 -1
- package/io-package.json +23 -8
- package/package.json +21 -13
- package/tools/nexowatt-account-management-selftest.cjs +1 -1
- package/tools/nexowatt-ensure-release-defaults.cjs +72 -0
- package/tools/nexowatt-internal-reserve-selftest.cjs +4 -1
- package/tools/nexowatt-login-layout-selftest.cjs +62 -0
- package/tools/nexowatt-modern-ui-selftest.cjs +7 -5
- package/tools/nexowatt-release-defaults-selftest.cjs +29 -0
- package/tools/nexowatt-validate-package.cjs +18 -8
- package/INSTALL_TEST_V7.9.89.md +0 -73
- package/PUBLISH_STABLE_V7.9.89.md +0 -33
- package/README_STABILITY_V7.9.89.md +0 -26
- package/RELEASE_ACCEPTANCE_V7.9.89.md +0 -40
- package/admin/img/eos/nexowatt-192-maskable.png +0 -0
- package/admin/img/eos/nexowatt-24.png +0 -0
- package/admin/img/eos/nexowatt-512-maskable.png +0 -0
- package/admin/img/eos/nexowatt-eos-logo.png +0 -0
- package/adminWww/admin.png +0 -0
- package/adminWww/img/eos/nexowatt-24.png +0 -0
- package/adminWww/img/eos/nexowatt-eos-logo.png +0 -0
- package/adminWww/img/eos/nexowatt-header-128.png +0 -0
- package/adminWww/img/eos/nexowatt-header-192.png +0 -0
- package/adminWww/img/eos/nexowatt-header-256.png +0 -0
- package/adminWww/img/eos/nexowatt-header-512.png +0 -0
- package/adminWww/img/eos/nexowatt-header-64.png +0 -0
- package/adminWww/img/logo192.png +0 -0
- package/adminWww/js/eos-adapter-surface-cleanup.js +0 -141
- package/adminWww/js/eos-toolbar-ghost-cleanup.js +0 -102
- package/docs/NEXOWATT_EOS_BRANDING_DE.md +0 -29
- package/docs/NEXOWATT_EOS_UI_LOGO_LOGIN_V6_DE.md +0 -9
- package/docs/NEXOWATT_EOS_UI_PERFORMANCE_V5_DE.md +0 -25
- package/docs/NEXOWATT_EOS_UI_V12_HEADER_LOGO_NAV_CLEANUP_DE.md +0 -16
- package/docs/NEXOWATT_EOS_UI_V12_HEADER_NAV_LOGO_FIX_DE.md +0 -16
- package/docs/NEXOWATT_EOS_UI_V15_DE.md +0 -8
- package/docs/NEXOWATT_EOS_UI_V16_DE.md +0 -9
- package/docs/NEXOWATT_EOS_UI_V17_DE.md +0 -24
- package/docs/NEXOWATT_EOS_UI_V6_FIXES_DE.md +0 -13
- package/docs/NEXOWATT_EOS_UI_V6_LOGIN_LOGO_404_FIX_DE.md +0 -9
- package/docs/NEXOWATT_EOS_UI_V6_LOGO_LOGIN_FIX_DE.md +0 -10
- package/docs/NEXOWATT_EOS_UI_V7_RESTORE_LOGO_SCOPE_FIX_DE.md +0 -18
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/* NexoWatt EOS native shell
|
|
1
|
+
/* NexoWatt EOS native shell v91
|
|
2
2
|
Clean presentation layer for the NexoWatt fork of ioBroker Admin.
|
|
3
3
|
This stylesheet deliberately avoids broad pointer-event, visibility and DOM-structure overrides. */
|
|
4
4
|
|
|
@@ -55,23 +55,62 @@ html.eos-login #root {
|
|
|
55
55
|
place-items: center;
|
|
56
56
|
}
|
|
57
57
|
html.eos-login main.MuiPaper-root {
|
|
58
|
+
position: relative;
|
|
59
|
+
isolation: isolate;
|
|
58
60
|
width: 100%;
|
|
59
61
|
min-height: 100vh;
|
|
60
62
|
display: grid;
|
|
61
63
|
place-items: center;
|
|
64
|
+
padding: 0 !important;
|
|
62
65
|
background: transparent !important;
|
|
63
66
|
border: 0 !important;
|
|
64
67
|
box-shadow: none !important;
|
|
65
68
|
}
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
/* The outer frame is decorative only. Keeping it as a pseudo element prevents
|
|
70
|
+
the viewport-sized main Paper from being mistaken for a second form card. */
|
|
71
|
+
html.eos-login main.MuiPaper-root::before {
|
|
72
|
+
content: '';
|
|
73
|
+
position: absolute;
|
|
74
|
+
z-index: 0;
|
|
75
|
+
left: 50%;
|
|
76
|
+
top: 50%;
|
|
77
|
+
box-sizing: border-box;
|
|
78
|
+
width: min(390px, calc(100vw - 24px));
|
|
79
|
+
height: min(480px, calc(100vh - 24px));
|
|
80
|
+
transform: translate(-50%, -50%);
|
|
81
|
+
border: 1px solid rgba(0, 229, 138, .34);
|
|
82
|
+
border-radius: 26px;
|
|
83
|
+
background: linear-gradient(180deg, rgba(10, 34, 52, .82), rgba(3, 15, 27, .88));
|
|
84
|
+
box-shadow: 0 26px 70px rgba(0, 0, 0, .52), 0 0 42px rgba(0, 255, 136, .08);
|
|
85
|
+
pointer-events: none;
|
|
86
|
+
}
|
|
87
|
+
html.eos-login main.MuiPaper-root > .eos-login-card-modern,
|
|
88
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#username),
|
|
89
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#password) {
|
|
90
|
+
position: relative;
|
|
91
|
+
z-index: 1;
|
|
92
|
+
box-sizing: border-box !important;
|
|
93
|
+
width: min(334px, calc(100vw - 56px)) !important;
|
|
94
|
+
height: min(424px, calc(100vh - 56px)) !important;
|
|
95
|
+
min-height: 0 !important;
|
|
96
|
+
max-width: none !important;
|
|
97
|
+
max-height: none !important;
|
|
98
|
+
padding: 28px !important;
|
|
99
|
+
overflow: hidden !important;
|
|
100
|
+
scrollbar-width: none !important;
|
|
101
|
+
border-radius: 24px !important;
|
|
71
102
|
color: var(--nx-text) !important;
|
|
72
|
-
background: linear-gradient(180deg, rgba(14,36,56
|
|
103
|
+
background: linear-gradient(180deg, rgba(14, 36, 56, .97), rgba(4, 15, 27, .96)) !important;
|
|
73
104
|
border: 1px solid var(--nx-border-accent) !important;
|
|
74
|
-
box-shadow: 0
|
|
105
|
+
box-shadow: 0 18px 44px rgba(0, 0, 0, .34), inset 0 1px 0 rgba(255, 255, 255, .035) !important;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
html.eos-login .eos-login-card-modern::-webkit-scrollbar,
|
|
109
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#username)::-webkit-scrollbar,
|
|
110
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#password)::-webkit-scrollbar {
|
|
111
|
+
display: none !important;
|
|
112
|
+
width: 0 !important;
|
|
113
|
+
height: 0 !important;
|
|
75
114
|
}
|
|
76
115
|
html.eos-login img[src*="admin"],
|
|
77
116
|
html.eos-login .MuiAvatar-img { object-fit: contain !important; filter: drop-shadow(0 0 18px rgba(0,255,136,.35)); }
|
|
@@ -511,7 +550,7 @@ html.eos-security-nonadmin [data-eos-admin-only-control="1"] { display: none !im
|
|
|
511
550
|
.eos-basic-settings-actions button:disabled { opacity: .55; cursor: wait; }
|
|
512
551
|
@media (max-width: 760px) { .eos-basic-settings-overlay { padding: 8px; } .eos-basic-settings-dialog { width: 100%; max-height: 96vh; } .eos-basic-settings-form { grid-template-columns: 1fr; } .eos-basic-settings-actions { flex-direction: column-reverse; } .eos-basic-settings-actions button { width: 100%; } }
|
|
513
552
|
|
|
514
|
-
/*
|
|
553
|
+
/* v91: server-checked first-login password setup for installer/end-user accounts */
|
|
515
554
|
html.eos-first-login-active,html.eos-first-login-active body { min-height: 100%; overflow: hidden !important; background: #020914 !important; }
|
|
516
555
|
.eos-first-login-overlay { position: fixed; inset: 0; z-index: 2147483647; display: grid; place-items: center; box-sizing: border-box; padding: 24px; color: #effbff; background: radial-gradient(circle at 20% 0%,rgba(0,229,138,.15),transparent 38%),linear-gradient(145deg,#020914,#061927); font-family: Inter,Roboto,Arial,sans-serif; }
|
|
517
556
|
.eos-first-login-card { width: min(520px,100%); box-sizing: border-box; padding: 30px; border: 1px solid rgba(0,229,138,.34); border-radius: 22px; background: rgba(4,21,33,.96); box-shadow: 0 28px 90px rgba(0,0,0,.58),0 0 42px rgba(0,229,138,.08); }
|
|
@@ -826,7 +865,7 @@ html.eos-modern-login body::before {
|
|
|
826
865
|
|
|
827
866
|
|
|
828
867
|
/* ==========================================================================
|
|
829
|
-
NexoWatt EOS 7.9.
|
|
868
|
+
NexoWatt EOS 7.9.92 – stable product layout
|
|
830
869
|
Integrated first login, header assistant, role-safe overview and account
|
|
831
870
|
management exclusively below "Zugänge & Rechte".
|
|
832
871
|
========================================================================== */
|
|
@@ -853,10 +892,20 @@ html.eos-app .eos-top-toolbar {
|
|
|
853
892
|
display: none !important;
|
|
854
893
|
}
|
|
855
894
|
html.eos-login .eos-login-card-modern {
|
|
856
|
-
|
|
857
|
-
|
|
895
|
+
/* Compact product login: the form remains the proven inner card while the
|
|
896
|
+
decorative rear frame keeps a fixed, restrained footprint. */
|
|
897
|
+
box-sizing: border-box !important;
|
|
898
|
+
width: min(334px, calc(100vw - 56px)) !important;
|
|
899
|
+
height: min(424px, calc(100vh - 56px)) !important;
|
|
900
|
+
min-height: 0 !important;
|
|
901
|
+
max-width: none !important;
|
|
902
|
+
max-height: none !important;
|
|
903
|
+
overflow: hidden !important;
|
|
904
|
+
scrollbar-width: none !important;
|
|
858
905
|
}
|
|
859
906
|
.eos-login-role-selector {
|
|
907
|
+
display: none !important;
|
|
908
|
+
|
|
860
909
|
width: 100%;
|
|
861
910
|
margin: 14px 0 5px;
|
|
862
911
|
padding: 13px;
|
|
@@ -934,8 +983,57 @@ html.eos-login .eos-login-card-modern {
|
|
|
934
983
|
}
|
|
935
984
|
.eos-login-first-status[data-kind="error"] { color: #ff8d98; }
|
|
936
985
|
.eos-login-first-status[data-kind="success"] { color: #54f1aa; }
|
|
986
|
+
.eos-login-first-status:empty { display: none; min-height: 0; margin: 0; }
|
|
987
|
+
|
|
988
|
+
.eos-first-login-native-submit-hidden {
|
|
989
|
+
display: none !important;
|
|
990
|
+
}
|
|
991
|
+
.eos-first-login-submit-proxy {
|
|
992
|
+
box-sizing: border-box;
|
|
993
|
+
width: 100%;
|
|
994
|
+
min-height: 36px;
|
|
995
|
+
margin-top: 8px;
|
|
996
|
+
padding: 8px 18px;
|
|
997
|
+
color: #03161d;
|
|
998
|
+
font: inherit;
|
|
999
|
+
font-weight: 900;
|
|
1000
|
+
letter-spacing: .035em;
|
|
1001
|
+
text-transform: uppercase;
|
|
1002
|
+
border: 1px solid rgba(82, 255, 190, .7);
|
|
1003
|
+
border-radius: 5px;
|
|
1004
|
+
background: linear-gradient(135deg, #00e58a, #45d5ff);
|
|
1005
|
+
box-shadow: 0 10px 24px rgba(0, 229, 138, .18), inset 0 1px 0 rgba(255,255,255,.35);
|
|
1006
|
+
cursor: pointer;
|
|
1007
|
+
transition: transform .16s ease, filter .16s ease, box-shadow .16s ease;
|
|
1008
|
+
}
|
|
1009
|
+
.eos-first-login-submit-proxy:hover,
|
|
1010
|
+
.eos-first-login-submit-proxy:focus-visible {
|
|
1011
|
+
filter: brightness(1.08);
|
|
1012
|
+
transform: translateY(-1px);
|
|
1013
|
+
box-shadow: 0 14px 28px rgba(0, 229, 138, .24), 0 0 0 3px rgba(69, 213, 255, .16);
|
|
1014
|
+
}
|
|
1015
|
+
.eos-first-login-submit-proxy:disabled {
|
|
1016
|
+
cursor: progress;
|
|
1017
|
+
opacity: .62;
|
|
1018
|
+
transform: none;
|
|
1019
|
+
}
|
|
937
1020
|
.eos-login-first-ready button[type="submit"] {
|
|
1021
|
+
color: #03151c !important;
|
|
1022
|
+
opacity: 1 !important;
|
|
1023
|
+
pointer-events: auto !important;
|
|
1024
|
+
background: linear-gradient(135deg, #00e58a, #45d5ff) !important;
|
|
938
1025
|
box-shadow: 0 0 0 1px rgba(0, 229, 138, .28), 0 12px 28px rgba(0, 229, 138, .14) !important;
|
|
1026
|
+
cursor: pointer !important;
|
|
1027
|
+
}
|
|
1028
|
+
.eos-login-first-ready button[type="submit"].Mui-disabled { pointer-events: auto !important; }
|
|
1029
|
+
.eos-first-login-password-optional .MuiInputLabel-asterisk { display: none !important; }
|
|
1030
|
+
.eos-login-first-checking button[type="submit"],
|
|
1031
|
+
.eos-login-first-blocked button[type="submit"] {
|
|
1032
|
+
color: rgba(218, 235, 242, .55) !important;
|
|
1033
|
+
opacity: .72 !important;
|
|
1034
|
+
background: #314050 !important;
|
|
1035
|
+
box-shadow: none !important;
|
|
1036
|
+
cursor: not-allowed !important;
|
|
939
1037
|
}
|
|
940
1038
|
|
|
941
1039
|
/* EOS Assist lives in the fixed header and opens below it. */
|
|
@@ -1029,7 +1127,9 @@ html.eos-login .eos-login-card-modern {
|
|
|
1029
1127
|
.eos-role-safe-overview {
|
|
1030
1128
|
position: absolute;
|
|
1031
1129
|
inset: 0;
|
|
1032
|
-
z-index:
|
|
1130
|
+
z-index: 1000;
|
|
1131
|
+
isolation: isolate;
|
|
1132
|
+
pointer-events: auto !important;
|
|
1033
1133
|
overflow: auto;
|
|
1034
1134
|
padding: 0 0 24px;
|
|
1035
1135
|
background:
|
|
@@ -1038,12 +1138,19 @@ html.eos-login .eos-login-card-modern {
|
|
|
1038
1138
|
}
|
|
1039
1139
|
.eos-overview-grid {
|
|
1040
1140
|
display: grid;
|
|
1141
|
+
position: relative;
|
|
1142
|
+
z-index: 2;
|
|
1143
|
+
pointer-events: auto !important;
|
|
1041
1144
|
grid-template-columns: repeat(auto-fit, minmax(245px, 1fr));
|
|
1042
1145
|
gap: 13px;
|
|
1043
1146
|
padding: 0 16px 20px;
|
|
1044
1147
|
}
|
|
1045
1148
|
.eos-overview-action {
|
|
1046
1149
|
min-height: 105px;
|
|
1150
|
+
position: relative;
|
|
1151
|
+
z-index: 3;
|
|
1152
|
+
pointer-events: auto !important;
|
|
1153
|
+
touch-action: manipulation;
|
|
1047
1154
|
display: grid;
|
|
1048
1155
|
grid-template-columns: 52px minmax(0, 1fr) 22px;
|
|
1049
1156
|
align-items: center;
|
|
@@ -1051,6 +1158,7 @@ html.eos-login .eos-login-card-modern {
|
|
|
1051
1158
|
padding: 17px;
|
|
1052
1159
|
color: #eafaff;
|
|
1053
1160
|
text-align: left;
|
|
1161
|
+
text-decoration: none;
|
|
1054
1162
|
border: 1px solid rgba(133, 193, 218, .14);
|
|
1055
1163
|
border-radius: 18px;
|
|
1056
1164
|
background: linear-gradient(145deg, rgba(10, 35, 50, .84), rgba(3, 16, 28, .92));
|
|
@@ -1058,6 +1166,7 @@ html.eos-login .eos-login-card-modern {
|
|
|
1058
1166
|
cursor: pointer;
|
|
1059
1167
|
transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
|
|
1060
1168
|
}
|
|
1169
|
+
.eos-overview-action > * { pointer-events: none !important; }
|
|
1061
1170
|
.eos-overview-action:hover {
|
|
1062
1171
|
transform: translateY(-2px);
|
|
1063
1172
|
border-color: rgba(0, 229, 138, .35);
|
|
@@ -1082,6 +1191,33 @@ html.eos-login .eos-login-card-modern {
|
|
|
1082
1191
|
.eos-overview-action i { color: #59e5bd; font-size: 29px; font-style: normal; }
|
|
1083
1192
|
.eos-official-reserve-hidden { display: none !important; }
|
|
1084
1193
|
|
|
1194
|
+
/* Internal fallback services are never exposed outside Admin / Service. */
|
|
1195
|
+
html.eos-role-installer [data-instance^="admin."],
|
|
1196
|
+
html.eos-role-installer [data-instance^="backitup."],
|
|
1197
|
+
html.eos-role-enduser [data-instance^="admin."],
|
|
1198
|
+
html.eos-role-enduser [data-instance^="backitup."],
|
|
1199
|
+
html.eos-role-installer [data-instance-id^="admin."],
|
|
1200
|
+
html.eos-role-installer [data-instance-id^="backitup."],
|
|
1201
|
+
html.eos-role-enduser [data-instance-id^="admin."],
|
|
1202
|
+
html.eos-role-enduser [data-instance-id^="backitup."] { display: none !important; }
|
|
1203
|
+
|
|
1204
|
+
|
|
1205
|
+
|
|
1206
|
+
/* Final 7.9.92 interaction guards. */
|
|
1207
|
+
html.eos-safe-overview-active #app-paper { position: relative !important; }
|
|
1208
|
+
html.eos-safe-overview-active #app-paper > :not(#eos-role-safe-overview):not(.MuiSnackbar-root):not([role="presentation"]) {
|
|
1209
|
+
pointer-events: none !important;
|
|
1210
|
+
}
|
|
1211
|
+
.eos-role-safe-overview .eos-overview-action {
|
|
1212
|
+
appearance: none;
|
|
1213
|
+
-webkit-appearance: none;
|
|
1214
|
+
opacity: 1 !important;
|
|
1215
|
+
}
|
|
1216
|
+
.eos-role-safe-overview .eos-overview-action:focus-visible {
|
|
1217
|
+
outline: 3px solid rgba(69, 213, 255, .85);
|
|
1218
|
+
outline-offset: 3px;
|
|
1219
|
+
}
|
|
1220
|
+
|
|
1085
1221
|
/* Account management is available only inside Zugänge & Rechte. */
|
|
1086
1222
|
.eos-account-management-entry {
|
|
1087
1223
|
position: relative;
|
|
@@ -1144,6 +1280,19 @@ html.eos-route-intro #app-paper [class*="card"] {
|
|
|
1144
1280
|
.eos-account-management-entry-button { width: 100%; min-width: 0; }
|
|
1145
1281
|
}
|
|
1146
1282
|
@media (max-width: 720px) {
|
|
1283
|
+
html.eos-login main.MuiPaper-root::before {
|
|
1284
|
+
width: calc(100vw - 16px);
|
|
1285
|
+
height: min(480px, calc(100vh - 16px));
|
|
1286
|
+
border-radius: 20px;
|
|
1287
|
+
}
|
|
1288
|
+
html.eos-login main.MuiPaper-root > .eos-login-card-modern,
|
|
1289
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#username),
|
|
1290
|
+
html.eos-login main.MuiPaper-root > .MuiPaper-root:has(#password) {
|
|
1291
|
+
width: calc(100vw - 44px) !important;
|
|
1292
|
+
height: min(424px, calc(100vh - 44px)) !important;
|
|
1293
|
+
padding: 22px !important;
|
|
1294
|
+
border-radius: 18px !important;
|
|
1295
|
+
}
|
|
1147
1296
|
.eos-login-role-buttons { grid-template-columns: 1fr; }
|
|
1148
1297
|
.eos-login-role-buttons button { min-height: 46px; }
|
|
1149
1298
|
.eos-overview-hero { align-items: flex-start; flex-direction: column; margin: 9px; border-radius: 18px; }
|
|
@@ -1152,3 +1301,145 @@ html.eos-route-intro #app-paper [class*="card"] {
|
|
|
1152
1301
|
.eos-account-management-entry { margin: 9px; padding: 19px; border-radius: 18px; }
|
|
1153
1302
|
.eos-assist-header-root .eos-assist-panel { right: 8px !important; width: calc(100vw - 16px); }
|
|
1154
1303
|
}
|
|
1304
|
+
|
|
1305
|
+
/* v93 EOS Assist – live, role-aware system assistant in the fixed header. */
|
|
1306
|
+
.eos-assist-header-root .eos-assist-panel {
|
|
1307
|
+
display: flex;
|
|
1308
|
+
flex-direction: column;
|
|
1309
|
+
width: min(520px, calc(100vw - 32px));
|
|
1310
|
+
max-height: min(720px, calc(100vh - var(--nx-content-top) - 12px));
|
|
1311
|
+
overflow: hidden !important;
|
|
1312
|
+
}
|
|
1313
|
+
.eos-assist-toolbar {
|
|
1314
|
+
display: flex;
|
|
1315
|
+
justify-content: space-between;
|
|
1316
|
+
gap: 8px;
|
|
1317
|
+
margin-top: 12px;
|
|
1318
|
+
}
|
|
1319
|
+
.eos-assist-toolbar button,
|
|
1320
|
+
.eos-assist-settings-actions button {
|
|
1321
|
+
min-height: 34px;
|
|
1322
|
+
padding: 7px 11px;
|
|
1323
|
+
color: #dcf8ff;
|
|
1324
|
+
font-size: 11px;
|
|
1325
|
+
font-weight: 800;
|
|
1326
|
+
border: 1px solid rgba(69, 213, 255, .2);
|
|
1327
|
+
border-radius: 10px;
|
|
1328
|
+
background: rgba(7, 27, 41, .78);
|
|
1329
|
+
cursor: pointer;
|
|
1330
|
+
}
|
|
1331
|
+
.eos-assist-toolbar button:hover,
|
|
1332
|
+
.eos-assist-settings-actions button:hover { border-color: rgba(0, 229, 138, .48); }
|
|
1333
|
+
.eos-assist-conversation {
|
|
1334
|
+
display: flex;
|
|
1335
|
+
flex: 1 1 auto;
|
|
1336
|
+
min-height: 0;
|
|
1337
|
+
flex-direction: column;
|
|
1338
|
+
}
|
|
1339
|
+
.eos-assist-transcript {
|
|
1340
|
+
flex: 1 1 auto;
|
|
1341
|
+
min-height: 150px;
|
|
1342
|
+
max-height: 390px;
|
|
1343
|
+
margin-top: 12px;
|
|
1344
|
+
padding: 10px;
|
|
1345
|
+
overflow-y: auto;
|
|
1346
|
+
overscroll-behavior: contain;
|
|
1347
|
+
border: 1px solid rgba(0, 212, 255, .16);
|
|
1348
|
+
border-radius: 15px;
|
|
1349
|
+
background: rgba(0, 6, 12, .32);
|
|
1350
|
+
scrollbar-width: thin;
|
|
1351
|
+
scrollbar-color: rgba(0, 229, 138, .5) rgba(3, 16, 27, .7);
|
|
1352
|
+
}
|
|
1353
|
+
.eos-assist-welcome {
|
|
1354
|
+
padding: 17px 12px;
|
|
1355
|
+
color: #99b9c7;
|
|
1356
|
+
font-size: 12px;
|
|
1357
|
+
line-height: 1.55;
|
|
1358
|
+
text-align: center;
|
|
1359
|
+
}
|
|
1360
|
+
.eos-assist-message {
|
|
1361
|
+
max-width: 92%;
|
|
1362
|
+
margin: 0 0 9px;
|
|
1363
|
+
padding: 10px 12px;
|
|
1364
|
+
color: #edfaff;
|
|
1365
|
+
font-size: 12px;
|
|
1366
|
+
line-height: 1.52;
|
|
1367
|
+
white-space: pre-wrap;
|
|
1368
|
+
overflow-wrap: anywhere;
|
|
1369
|
+
border: 1px solid rgba(69, 213, 255, .14);
|
|
1370
|
+
border-radius: 14px;
|
|
1371
|
+
background: rgba(9, 31, 45, .72);
|
|
1372
|
+
}
|
|
1373
|
+
.eos-assist-message strong { display: block; margin-bottom: 4px; color: #00e58a; font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
|
|
1374
|
+
.eos-assist-message-user { margin-left: auto; border-color: rgba(0, 229, 138, .2); background: rgba(0, 98, 78, .24); }
|
|
1375
|
+
.eos-assist-message-error { border-color: rgba(255, 174, 66, .34); background: rgba(102, 58, 5, .25); }
|
|
1376
|
+
.eos-assist-message-error strong { color: #ffc56b; }
|
|
1377
|
+
.eos-assist-message a { color: #51dcff; font-weight: 800; text-decoration: underline; }
|
|
1378
|
+
.eos-assist-input-row { align-items: stretch; }
|
|
1379
|
+
.eos-assist-input {
|
|
1380
|
+
min-height: 48px;
|
|
1381
|
+
max-height: 110px;
|
|
1382
|
+
resize: vertical;
|
|
1383
|
+
font: inherit;
|
|
1384
|
+
line-height: 1.4;
|
|
1385
|
+
}
|
|
1386
|
+
.eos-assist-send { min-width: 82px; }
|
|
1387
|
+
.eos-assist-send:disabled { cursor: progress; opacity: .62; }
|
|
1388
|
+
.eos-assist-status {
|
|
1389
|
+
margin-top: 10px;
|
|
1390
|
+
padding-top: 9px;
|
|
1391
|
+
color: #8eaeba;
|
|
1392
|
+
font-size: 10px;
|
|
1393
|
+
line-height: 1.35;
|
|
1394
|
+
border-top: 1px solid rgba(69, 213, 255, .1);
|
|
1395
|
+
}
|
|
1396
|
+
.eos-assist-status[data-kind="ready"] { color: #71eeb9; }
|
|
1397
|
+
.eos-assist-status[data-kind="warning"] { color: #ffc56b; }
|
|
1398
|
+
.eos-assist-status[data-kind="error"] { color: #ff8b8b; }
|
|
1399
|
+
.eos-assist-settings {
|
|
1400
|
+
display: none;
|
|
1401
|
+
flex: 1 1 auto;
|
|
1402
|
+
min-height: 0;
|
|
1403
|
+
margin-top: 12px;
|
|
1404
|
+
padding: 12px;
|
|
1405
|
+
overflow-y: auto;
|
|
1406
|
+
border: 1px solid rgba(0, 229, 138, .18);
|
|
1407
|
+
border-radius: 15px;
|
|
1408
|
+
background: rgba(0, 8, 15, .36);
|
|
1409
|
+
}
|
|
1410
|
+
.eos-assist-settings-open .eos-assist-conversation { display: none; }
|
|
1411
|
+
.eos-assist-settings-open .eos-assist-settings { display: grid; gap: 10px; }
|
|
1412
|
+
.eos-assist-settings label { display: grid; gap: 5px; color: #9fc0cc; font-size: 11px; font-weight: 750; }
|
|
1413
|
+
.eos-assist-settings input,
|
|
1414
|
+
.eos-assist-settings select {
|
|
1415
|
+
width: 100%;
|
|
1416
|
+
min-height: 37px;
|
|
1417
|
+
box-sizing: border-box;
|
|
1418
|
+
padding: 7px 9px;
|
|
1419
|
+
color: #eafaff;
|
|
1420
|
+
border: 1px solid rgba(69, 213, 255, .2);
|
|
1421
|
+
border-radius: 9px;
|
|
1422
|
+
background: #061724;
|
|
1423
|
+
outline: none;
|
|
1424
|
+
}
|
|
1425
|
+
.eos-assist-settings input:focus,
|
|
1426
|
+
.eos-assist-settings select:focus { border-color: rgba(0, 229, 138, .58); box-shadow: 0 0 0 2px rgba(0, 229, 138, .08); }
|
|
1427
|
+
.eos-assist-settings .eos-assist-check { display: flex; align-items: center; gap: 8px; }
|
|
1428
|
+
.eos-assist-settings .eos-assist-check input { width: 18px; min-height: 18px; }
|
|
1429
|
+
.eos-assist-base-url-label { display: none !important; }
|
|
1430
|
+
.eos-assist-custom-provider .eos-assist-base-url-label { display: grid !important; }
|
|
1431
|
+
.eos-assist-settings-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
|
|
1432
|
+
.eos-assist-settings-actions .eos-assist-save { color: #00151c; border: 0; background: linear-gradient(135deg, #00e58a, #45d5ff); }
|
|
1433
|
+
.eos-assist-not-configured .eos-assist-dot { background: #ffc34d; box-shadow: 0 0 12px rgba(255, 195, 77, .9); }
|
|
1434
|
+
@media (max-width: 620px) {
|
|
1435
|
+
.eos-assist-header-root .eos-assist-panel {
|
|
1436
|
+
top: calc(var(--nx-shell-top) + var(--nx-header-h) + 5px) !important;
|
|
1437
|
+
right: 7px !important;
|
|
1438
|
+
width: calc(100vw - 14px);
|
|
1439
|
+
max-height: calc(100vh - var(--nx-header-h) - 20px);
|
|
1440
|
+
padding: 13px;
|
|
1441
|
+
}
|
|
1442
|
+
.eos-assist-transcript { max-height: 45vh; }
|
|
1443
|
+
.eos-assist-input-row { flex-direction: column; }
|
|
1444
|
+
.eos-assist-send { min-height: 40px; }
|
|
1445
|
+
}
|
package/adminWww/index.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<meta http-equiv="Cache-Control" content="no-store, no-cache, must-revalidate" />
|
|
9
9
|
<meta http-equiv="Pragma" content="no-cache" />
|
|
10
10
|
<meta http-equiv="Expires" content="0" />
|
|
11
|
-
<script src="./js/eos-manual-write-policy.js?v=
|
|
11
|
+
<script src="./js/eos-manual-write-policy.js?v=93"></script>
|
|
12
12
|
<script type="module" src="./assets/hostInit-v84.js?v=84"></script>
|
|
13
13
|
|
|
14
14
|
<meta charset="utf-8" />
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
rel="stylesheet"
|
|
37
37
|
href="css/leaflet.css"
|
|
38
38
|
/>
|
|
39
|
-
<link rel="stylesheet" href="./css/nexowatt-native-shell.css?v=
|
|
39
|
+
<link rel="stylesheet" href="./css/nexowatt-native-shell.css?v=93" />
|
|
40
40
|
<link
|
|
41
41
|
rel="manifest"
|
|
42
42
|
href="manifest.json"
|
|
@@ -158,15 +158,15 @@
|
|
|
158
158
|
</script>
|
|
159
159
|
<link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
|
|
160
160
|
<link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
|
|
161
|
-
<script defer src="./js/eos-role-bootstrap.js?v=
|
|
162
|
-
<script defer src="./js/eos-policy-client.js?v=
|
|
163
|
-
<script defer src="./js/eos-branding-sanitizer.js?v=
|
|
164
|
-
<script defer src="./js/nexowatt-native-shell.js?v=
|
|
165
|
-
<script defer src="./js/eos-native-security.js?v=
|
|
166
|
-
<script defer src="./js/eos-basic-settings.js?v=
|
|
167
|
-
<script defer src="./js/eos-role-ui.js?v=
|
|
168
|
-
<script defer src="./js/eos-account-management.js?v=
|
|
169
|
-
<script defer src="./js/eos-assistant.js?v=
|
|
161
|
+
<script defer src="./js/eos-role-bootstrap.js?v=93" data-eos-entry="./assets/index-CQZugZ1z-v84.js?v=84"></script>
|
|
162
|
+
<script defer src="./js/eos-policy-client.js?v=93"></script>
|
|
163
|
+
<script defer src="./js/eos-branding-sanitizer.js?v=93"></script>
|
|
164
|
+
<script defer src="./js/nexowatt-native-shell.js?v=93"></script>
|
|
165
|
+
<script defer src="./js/eos-native-security.js?v=93"></script>
|
|
166
|
+
<script defer src="./js/eos-basic-settings.js?v=93"></script>
|
|
167
|
+
<script defer src="./js/eos-role-ui.js?v=93"></script>
|
|
168
|
+
<script defer src="./js/eos-account-management.js?v=93"></script>
|
|
169
|
+
<script defer src="./js/eos-assistant.js?v=93"></script>
|
|
170
170
|
</head>
|
|
171
171
|
<body>
|
|
172
172
|
<noscript>Für NexoWatt EOS muss JavaScript aktiviert sein.</noscript>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
(() => {
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
const VERSION = '
|
|
4
|
+
const VERSION = 'v93-account-management-under-access-rights';
|
|
5
5
|
const script = document.currentScript || document.querySelector('script[src*="eos-account-management.js"]');
|
|
6
6
|
const base = new URL('../', script?.src || window.location.href);
|
|
7
7
|
const abort = new AbortController();
|