accessify-widget 0.2.22 → 0.3.0
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/dist/accessify.min.js +1 -1
- package/dist/accessify.min.js.map +1 -1
- package/dist/accessify.mjs +1 -1
- package/dist/{index-B9BgMU66.js → index-BiF0o7li.js} +566 -104
- package/dist/{index-B9BgMU66.js.map → index-BiF0o7li.js.map} +1 -1
- package/dist/{keyboard-nav-cvuhPLSY.js → keyboard-nav-CE8luwx_.js} +2 -2
- package/dist/{keyboard-nav-cvuhPLSY.js.map → keyboard-nav-CE8luwx_.js.map} +1 -1
- package/dist/{page-structure-XImoLRLq.js → page-structure-C25HU_D7.js} +2 -2
- package/dist/{page-structure-XImoLRLq.js.map → page-structure-C25HU_D7.js.map} +1 -1
- package/dist/widget.js +1 -1
- package/dist/widget.js.map +1 -1
- package/package.json +1 -1
|
@@ -3441,6 +3441,13 @@ function from_namespace(content, flags2, ns = "svg") {
|
|
|
3441
3441
|
function from_svg(content, flags2) {
|
|
3442
3442
|
return /* @__PURE__ */ from_namespace(content, flags2, "svg");
|
|
3443
3443
|
}
|
|
3444
|
+
function text(value = "") {
|
|
3445
|
+
{
|
|
3446
|
+
var t2 = create_text(value + "");
|
|
3447
|
+
assign_nodes(t2, t2);
|
|
3448
|
+
return t2;
|
|
3449
|
+
}
|
|
3450
|
+
}
|
|
3444
3451
|
function append(anchor, dom) {
|
|
3445
3452
|
if (anchor === null) {
|
|
3446
3453
|
return;
|
|
@@ -3450,11 +3457,11 @@ function append(anchor, dom) {
|
|
|
3450
3457
|
dom
|
|
3451
3458
|
);
|
|
3452
3459
|
}
|
|
3453
|
-
function set_text(
|
|
3460
|
+
function set_text(text2, value) {
|
|
3454
3461
|
var str = value == null ? "" : typeof value === "object" ? `${value}` : value;
|
|
3455
|
-
if (str !== (
|
|
3456
|
-
|
|
3457
|
-
|
|
3462
|
+
if (str !== (text2.__t ?? (text2.__t = text2.nodeValue))) {
|
|
3463
|
+
text2.__t = str;
|
|
3464
|
+
text2.nodeValue = `${str}`;
|
|
3458
3465
|
}
|
|
3459
3466
|
}
|
|
3460
3467
|
function mount(component, options) {
|
|
@@ -4794,7 +4801,16 @@ const deJson = {
|
|
|
4794
4801
|
"footer.disclaimer": "Dieses Widget verbessert die Barrierefreiheit, ersetzt aber keine barrierefreie Webentwicklung.",
|
|
4795
4802
|
"footer.docs": "Dokumentation",
|
|
4796
4803
|
"footer.github": "GitHub",
|
|
4797
|
-
"bfsg.notice": "Hinweis: Dieses Overlay-Tool allein erfüllt nicht die Anforderungen des BFSG. Professionelle Barrierefreiheit erfordert strukturelle Änderungen am Quellcode."
|
|
4804
|
+
"bfsg.notice": "Hinweis: Dieses Overlay-Tool allein erfüllt nicht die Anforderungen des BFSG. Professionelle Barrierefreiheit erfordert strukturelle Änderungen am Quellcode.",
|
|
4805
|
+
"widget.minimize": "Minimieren",
|
|
4806
|
+
"widget.dockLeft": "Links andocken",
|
|
4807
|
+
"widget.dockRight": "Rechts andocken",
|
|
4808
|
+
"widget.widgetLang": "Widget-Sprache",
|
|
4809
|
+
"widget.translatePage": "Seite übersetzen",
|
|
4810
|
+
"widget.selectLang": "Sprache wählen...",
|
|
4811
|
+
"widget.restoreOriginal": "Original wiederherstellen",
|
|
4812
|
+
"widget.translating": "Seite wird übersetzt",
|
|
4813
|
+
"widget.originalRestored": "Originalsprache wiederhergestellt"
|
|
4798
4814
|
};
|
|
4799
4815
|
const enJson = {
|
|
4800
4816
|
"widget.title": "Accessibility",
|
|
@@ -4883,7 +4899,16 @@ const enJson = {
|
|
|
4883
4899
|
"footer.disclaimer": "This widget enhances accessibility but does not replace accessible web development.",
|
|
4884
4900
|
"footer.docs": "Documentation",
|
|
4885
4901
|
"footer.github": "GitHub",
|
|
4886
|
-
"bfsg.notice": "Note: This overlay tool alone does not meet BFSG requirements. Full accessibility requires structural changes to the source code."
|
|
4902
|
+
"bfsg.notice": "Note: This overlay tool alone does not meet BFSG requirements. Full accessibility requires structural changes to the source code.",
|
|
4903
|
+
"widget.minimize": "Minimize",
|
|
4904
|
+
"widget.dockLeft": "Dock left",
|
|
4905
|
+
"widget.dockRight": "Dock right",
|
|
4906
|
+
"widget.widgetLang": "Widget Language",
|
|
4907
|
+
"widget.translatePage": "Translate Page",
|
|
4908
|
+
"widget.selectLang": "Select language...",
|
|
4909
|
+
"widget.restoreOriginal": "Restore original",
|
|
4910
|
+
"widget.translating": "Translating page",
|
|
4911
|
+
"widget.originalRestored": "Original language restored"
|
|
4887
4912
|
};
|
|
4888
4913
|
const EN_BASE = {
|
|
4889
4914
|
...enJson,
|
|
@@ -5758,10 +5783,11 @@ function t(key, lang = "en") {
|
|
|
5758
5783
|
const resolved = getSupportedLang(lang);
|
|
5759
5784
|
return locales[resolved]?.[key] || EN_BASE[key] || key;
|
|
5760
5785
|
}
|
|
5761
|
-
var
|
|
5786
|
+
var root_1$4 = /* @__PURE__ */ from_html(`<span class="accessify-trigger-badge" aria-hidden="true"> </span>`);
|
|
5787
|
+
var root$5 = /* @__PURE__ */ from_html(`<button><!> <!></button>`);
|
|
5762
5788
|
function TriggerButton($$anchor, $$props) {
|
|
5763
5789
|
push($$props, true);
|
|
5764
|
-
let lang = prop($$props, "lang", 3, "en"), el = prop($$props, "el", 15, null);
|
|
5790
|
+
let isMinimized = prop($$props, "isMinimized", 3, false), activeCount = prop($$props, "activeCount", 3, 0), lang = prop($$props, "lang", 3, "en"), el = prop($$props, "el", 15, null);
|
|
5765
5791
|
let isDragging = /* @__PURE__ */ state(false);
|
|
5766
5792
|
onMount(() => {
|
|
5767
5793
|
const btn = el();
|
|
@@ -5773,7 +5799,6 @@ function TriggerButton($$anchor, $$props) {
|
|
|
5773
5799
|
let hasMoved = false;
|
|
5774
5800
|
let pointerId = null;
|
|
5775
5801
|
function onDown(e) {
|
|
5776
|
-
if ($$props.isOpen) return;
|
|
5777
5802
|
const rect = btn.getBoundingClientRect();
|
|
5778
5803
|
dragStartX = e.clientX;
|
|
5779
5804
|
dragStartY = e.clientY;
|
|
@@ -5822,12 +5847,29 @@ function TriggerButton($$anchor, $$props) {
|
|
|
5822
5847
|
});
|
|
5823
5848
|
var button = root$5();
|
|
5824
5849
|
let classes;
|
|
5825
|
-
|
|
5850
|
+
var node = child(button);
|
|
5851
|
+
html(node, iconAccessibility);
|
|
5852
|
+
var node_1 = sibling(node, 2);
|
|
5853
|
+
{
|
|
5854
|
+
var consequent = ($$anchor2) => {
|
|
5855
|
+
var span = root_1$4();
|
|
5856
|
+
var text2 = child(span);
|
|
5857
|
+
template_effect(() => set_text(text2, activeCount()));
|
|
5858
|
+
append($$anchor2, span);
|
|
5859
|
+
};
|
|
5860
|
+
if_block(node_1, ($$render) => {
|
|
5861
|
+
if (activeCount() > 0 && !$$props.isOpen) $$render(consequent);
|
|
5862
|
+
});
|
|
5863
|
+
}
|
|
5826
5864
|
bind_this(button, ($$value) => el($$value), () => el());
|
|
5827
5865
|
template_effect(
|
|
5828
5866
|
($0) => {
|
|
5829
|
-
classes = set_class(button, 1, "accessify-trigger", null, classes, {
|
|
5830
|
-
|
|
5867
|
+
classes = set_class(button, 1, "accessify-trigger", null, classes, {
|
|
5868
|
+
"accessify-trigger--dragging": get(isDragging),
|
|
5869
|
+
"accessify-trigger--hidden": $$props.isOpen && !isMinimized(),
|
|
5870
|
+
"accessify-trigger--minimized": isMinimized()
|
|
5871
|
+
});
|
|
5872
|
+
set_attribute(button, "aria-expanded", $$props.isOpen && !isMinimized());
|
|
5831
5873
|
set_attribute(button, "aria-label", $0);
|
|
5832
5874
|
},
|
|
5833
5875
|
[
|
|
@@ -5837,31 +5879,49 @@ function TriggerButton($$anchor, $$props) {
|
|
|
5837
5879
|
append($$anchor, button);
|
|
5838
5880
|
pop();
|
|
5839
5881
|
}
|
|
5840
|
-
var root$4 = /* @__PURE__ */ from_html(`<header class="accessify-header"><div class="accessify-header-left"><span class="accessify-logo" aria-label="Accessify"><svg viewBox="0 0 480 80" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><text x="0" y="64" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="72" font-weight="700" letter-spacing="-2">accessify</text></svg></span></div> <div class="accessify-header-actions"><button class="accessify-header-btn"></button> <button class="accessify-header-btn accessify-header-btn--icon accessify-header-btn--close"></button></div></header>`);
|
|
5882
|
+
var root$4 = /* @__PURE__ */ from_html(`<header class="accessify-header"><div class="accessify-header-left"><span class="accessify-logo" aria-label="Accessify"><svg viewBox="0 0 480 80" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><text x="0" y="64" font-family="-apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif" font-size="72" font-weight="700" letter-spacing="-2">accessify</text></svg></span></div> <div class="accessify-header-actions"><div class="accessify-dock-group" role="radiogroup"><button class="accessify-dock-btn" role="radio"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="1" y="2" width="4" height="12" rx="1"></rect><rect x="1" y="2" width="14" height="12" rx="2" stroke-dasharray="2 2"></rect></svg></button> <button class="accessify-dock-btn" role="radio"><svg viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5"><rect x="11" y="2" width="4" height="12" rx="1"></rect><rect x="1" y="2" width="14" height="12" rx="2" stroke-dasharray="2 2"></rect></svg></button></div> <button class="accessify-header-btn"></button> <button class="accessify-header-btn accessify-header-btn--icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg></button> <button class="accessify-header-btn accessify-header-btn--icon accessify-header-btn--close"></button></div></header>`);
|
|
5841
5883
|
function PanelHeader($$anchor, $$props) {
|
|
5842
5884
|
push($$props, true);
|
|
5843
5885
|
let lang = prop($$props, "lang", 3, "en");
|
|
5844
5886
|
prop($$props, "activeCount", 3, 0);
|
|
5887
|
+
let currentDock = prop($$props, "currentDock", 3, "right");
|
|
5845
5888
|
var header = root$4();
|
|
5846
5889
|
var div = sibling(child(header), 2);
|
|
5847
|
-
var
|
|
5848
|
-
|
|
5890
|
+
var div_1 = child(div);
|
|
5891
|
+
var button = child(div_1);
|
|
5849
5892
|
var button_1 = sibling(button, 2);
|
|
5850
|
-
|
|
5893
|
+
var button_2 = sibling(div_1, 2);
|
|
5894
|
+
html(button_2, iconReset, true);
|
|
5895
|
+
var button_3 = sibling(button_2, 2);
|
|
5896
|
+
var button_4 = sibling(button_3, 2);
|
|
5897
|
+
html(button_4, iconClose, true);
|
|
5851
5898
|
template_effect(
|
|
5852
5899
|
($0, $1) => {
|
|
5853
|
-
set_attribute(
|
|
5854
|
-
set_attribute(
|
|
5900
|
+
set_attribute(div_1, "aria-label", lang() === "de" ? "Panel-Position" : "Panel position");
|
|
5901
|
+
set_attribute(button, "aria-checked", currentDock() === "left");
|
|
5902
|
+
set_attribute(button, "aria-label", lang() === "de" ? "Links andocken" : "Dock left");
|
|
5903
|
+
set_attribute(button, "data-active", currentDock() === "left");
|
|
5904
|
+
set_attribute(button_1, "aria-checked", currentDock() === "right");
|
|
5905
|
+
set_attribute(button_1, "aria-label", lang() === "de" ? "Rechts andocken" : "Dock right");
|
|
5906
|
+
set_attribute(button_1, "data-active", currentDock() === "right");
|
|
5907
|
+
set_attribute(button_2, "aria-label", $0);
|
|
5908
|
+
set_attribute(button_3, "aria-label", lang() === "de" ? "Minimieren" : "Minimize");
|
|
5909
|
+
set_attribute(button_4, "aria-label", $1);
|
|
5855
5910
|
},
|
|
5856
5911
|
[
|
|
5857
5912
|
() => t("widget.reset", lang()),
|
|
5858
5913
|
() => t("widget.close", lang())
|
|
5859
5914
|
]
|
|
5860
5915
|
);
|
|
5861
|
-
delegated("click", button,
|
|
5916
|
+
delegated("click", button, () => $$props.ondockchange("left"));
|
|
5917
|
+
delegated("click", button_1, () => $$props.ondockchange("right"));
|
|
5918
|
+
delegated("click", button_2, function(...$$args) {
|
|
5862
5919
|
$$props.onreset?.apply(this, $$args);
|
|
5863
5920
|
});
|
|
5864
|
-
delegated("click",
|
|
5921
|
+
delegated("click", button_3, function(...$$args) {
|
|
5922
|
+
$$props.onminimize?.apply(this, $$args);
|
|
5923
|
+
});
|
|
5924
|
+
delegated("click", button_4, function(...$$args) {
|
|
5865
5925
|
$$props.onclose?.apply(this, $$args);
|
|
5866
5926
|
});
|
|
5867
5927
|
append($$anchor, header);
|
|
@@ -5925,7 +5985,7 @@ function ProfileSection($$anchor, $$props) {
|
|
|
5925
5985
|
var button = child(div);
|
|
5926
5986
|
var span = child(button);
|
|
5927
5987
|
var span_1 = sibling(child(span), 2);
|
|
5928
|
-
var
|
|
5988
|
+
var text2 = child(span_1);
|
|
5929
5989
|
var svg = sibling(span, 2);
|
|
5930
5990
|
let classes;
|
|
5931
5991
|
var node = sibling(button, 2);
|
|
@@ -5978,7 +6038,7 @@ function ProfileSection($$anchor, $$props) {
|
|
|
5978
6038
|
($0, $1) => {
|
|
5979
6039
|
set_attribute(div, "aria-label", $0);
|
|
5980
6040
|
set_attribute(button, "aria-expanded", get(isOpen));
|
|
5981
|
-
set_text(
|
|
6041
|
+
set_text(text2, $1);
|
|
5982
6042
|
classes = set_class(svg, 0, "accessify-accordion-chevron", null, classes, { "accessify-accordion-chevron--open": get(isOpen) });
|
|
5983
6043
|
},
|
|
5984
6044
|
[
|
|
@@ -6015,8 +6075,8 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6015
6075
|
"X-Site-Key": siteKey
|
|
6016
6076
|
};
|
|
6017
6077
|
return {
|
|
6018
|
-
async simplifyText(
|
|
6019
|
-
const blockId = `b-${simpleHash(
|
|
6078
|
+
async simplifyText(text2, level = "einfache", lang = "de") {
|
|
6079
|
+
const blockId = `b-${simpleHash(text2)}`;
|
|
6020
6080
|
const variant = lang.startsWith("de") ? `de-${level}` : "en-plain";
|
|
6021
6081
|
try {
|
|
6022
6082
|
const cacheRes = await fetch(`${base}/v1/cache/query`, {
|
|
@@ -6026,7 +6086,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6026
6086
|
pageUrl: typeof window !== "undefined" ? window.location.href : "",
|
|
6027
6087
|
feature: "simplify",
|
|
6028
6088
|
variant,
|
|
6029
|
-
blocks: [{ id: blockId, text }]
|
|
6089
|
+
blocks: [{ id: blockId, text: text2 }]
|
|
6030
6090
|
})
|
|
6031
6091
|
});
|
|
6032
6092
|
if (cacheRes.ok) {
|
|
@@ -6043,7 +6103,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6043
6103
|
pageUrl: typeof window !== "undefined" ? window.location.href : "",
|
|
6044
6104
|
feature: "simplify",
|
|
6045
6105
|
variant,
|
|
6046
|
-
blocks: [{ id: blockId, text }]
|
|
6106
|
+
blocks: [{ id: blockId, text: text2 }]
|
|
6047
6107
|
})
|
|
6048
6108
|
});
|
|
6049
6109
|
if (processRes.ok) {
|
|
@@ -6055,7 +6115,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6055
6115
|
const res = await fetch(`${base}/v1/ai/simplify`, {
|
|
6056
6116
|
method: "POST",
|
|
6057
6117
|
headers,
|
|
6058
|
-
body: JSON.stringify({ text, level, lang })
|
|
6118
|
+
body: JSON.stringify({ text: text2, level, lang })
|
|
6059
6119
|
});
|
|
6060
6120
|
if (!res.ok) {
|
|
6061
6121
|
const err = await res.json().catch(() => ({ error: `HTTP ${res.status}` }));
|
|
@@ -6122,7 +6182,7 @@ function createDirectService(config2) {
|
|
|
6122
6182
|
"X-Title": "Accessify Widget"
|
|
6123
6183
|
};
|
|
6124
6184
|
return {
|
|
6125
|
-
async simplifyText(
|
|
6185
|
+
async simplifyText(text2, level = "einfache", lang = "de") {
|
|
6126
6186
|
const systemPrompt = lang.startsWith("de") ? getGermanSimplificationPrompt(level) : getEnglishSimplificationPrompt();
|
|
6127
6187
|
const response = await fetch(`${OPENROUTER_BASE}/chat/completions`, {
|
|
6128
6188
|
method: "POST",
|
|
@@ -6131,7 +6191,7 @@ function createDirectService(config2) {
|
|
|
6131
6191
|
model: config2.textModel || DEFAULTS.textModel,
|
|
6132
6192
|
messages: [
|
|
6133
6193
|
{ role: "system", content: systemPrompt },
|
|
6134
|
-
{ role: "user", content:
|
|
6194
|
+
{ role: "user", content: text2 }
|
|
6135
6195
|
],
|
|
6136
6196
|
stream: false,
|
|
6137
6197
|
max_tokens: 2e3
|
|
@@ -6351,14 +6411,14 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6351
6411
|
const FEATURE_LOADERS = {
|
|
6352
6412
|
contrast: () => import("./contrast-CqsICAkU.js"),
|
|
6353
6413
|
"text-size": () => import("./text-size-C6OFhCGi.js"),
|
|
6354
|
-
"keyboard-nav": () => import("./keyboard-nav-
|
|
6414
|
+
"keyboard-nav": () => import("./keyboard-nav-CE8luwx_.js"),
|
|
6355
6415
|
"link-highlight": () => import("./link-highlight-DBGm067Y.js"),
|
|
6356
6416
|
"reading-guide": () => import("./reading-guide-VT8NciIL.js"),
|
|
6357
6417
|
"reading-mask": () => import("./reading-mask-BABChuCz.js"),
|
|
6358
6418
|
"animation-stop": () => import("./animation-stop-C0MwseK0.js"),
|
|
6359
6419
|
"hide-images": () => import("./hide-images-B_LeCBcd.js"),
|
|
6360
6420
|
"big-cursor": () => import("./big-cursor-B2UKu9dQ.js"),
|
|
6361
|
-
"page-structure": () => import("./page-structure-
|
|
6421
|
+
"page-structure": () => import("./page-structure-C25HU_D7.js"),
|
|
6362
6422
|
tts: () => import("./tts-CjszLRnb.js"),
|
|
6363
6423
|
"text-simplify": () => import("./text-simplify-Cvhpio7g.js"),
|
|
6364
6424
|
"alt-text": () => Promise.resolve().then(() => altText)
|
|
@@ -6509,7 +6569,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6509
6569
|
var span = child(div_1);
|
|
6510
6570
|
html(span, () => getIcon("contrast"), true);
|
|
6511
6571
|
var span_1 = sibling(span, 2);
|
|
6512
|
-
var
|
|
6572
|
+
var text2 = child(span_1);
|
|
6513
6573
|
var div_2 = sibling(div_1, 2);
|
|
6514
6574
|
each(div_2, 21, () => CONTRAST_MODES, index, ($$anchor3, mode) => {
|
|
6515
6575
|
var button = root_2$1();
|
|
@@ -6531,7 +6591,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6531
6591
|
template_effect(
|
|
6532
6592
|
($0, $1) => {
|
|
6533
6593
|
set_attribute(div, "aria-label", $0);
|
|
6534
|
-
set_text(
|
|
6594
|
+
set_text(text2, $1);
|
|
6535
6595
|
},
|
|
6536
6596
|
[
|
|
6537
6597
|
() => t("feature.contrast", $$props.config.lang),
|
|
@@ -6636,35 +6696,57 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6636
6696
|
}
|
|
6637
6697
|
delegate(["click"]);
|
|
6638
6698
|
var root_1$1 = /* @__PURE__ */ from_html(`<span aria-hidden="true">·</span> <a target="_blank" rel="noopener noreferrer"> </a>`, 1);
|
|
6639
|
-
var root$1 = /* @__PURE__ */ from_html(`<div class="accessify-footer"><a target="_blank" rel="noopener noreferrer">Accessify Dashboard</a> <!></div
|
|
6699
|
+
var root$1 = /* @__PURE__ */ from_html(`<div class="accessify-utility-bar"><button class="accessify-utility-btn accessify-utility-btn--minimize"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="5" y1="12" x2="19" y2="12"></line></svg> <span> </span></button> <button class="accessify-utility-btn accessify-utility-btn--close"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> <span> </span></button></div> <div class="accessify-footer"><a target="_blank" rel="noopener noreferrer">Accessify Dashboard</a> <!></div>`, 1);
|
|
6640
6700
|
function PanelFooter($$anchor, $$props) {
|
|
6641
6701
|
push($$props, true);
|
|
6642
6702
|
let lang = prop($$props, "lang", 3, "en");
|
|
6643
|
-
var
|
|
6644
|
-
var
|
|
6703
|
+
var fragment = root$1();
|
|
6704
|
+
var div = first_child(fragment);
|
|
6705
|
+
var button = child(div);
|
|
6706
|
+
var span = sibling(child(button), 2);
|
|
6707
|
+
var text2 = child(span);
|
|
6708
|
+
var button_1 = sibling(button, 2);
|
|
6709
|
+
var span_1 = sibling(child(button_1), 2);
|
|
6710
|
+
var text_1 = child(span_1);
|
|
6711
|
+
var div_1 = sibling(div, 2);
|
|
6712
|
+
var a = child(div_1);
|
|
6645
6713
|
var node = sibling(a, 2);
|
|
6646
6714
|
{
|
|
6647
6715
|
var consequent = ($$anchor2) => {
|
|
6648
|
-
var
|
|
6649
|
-
var a_1 = sibling(first_child(
|
|
6650
|
-
var
|
|
6716
|
+
var fragment_1 = root_1$1();
|
|
6717
|
+
var a_1 = sibling(first_child(fragment_1), 2);
|
|
6718
|
+
var text_2 = child(a_1);
|
|
6651
6719
|
template_effect(
|
|
6652
6720
|
($0) => {
|
|
6653
6721
|
set_attribute(a_1, "href", $$props.statementUrl);
|
|
6654
|
-
set_text(
|
|
6722
|
+
set_text(text_2, $0);
|
|
6655
6723
|
},
|
|
6656
6724
|
[() => t("widget.statement", lang())]
|
|
6657
6725
|
);
|
|
6658
|
-
append($$anchor2,
|
|
6726
|
+
append($$anchor2, fragment_1);
|
|
6659
6727
|
};
|
|
6660
6728
|
if_block(node, ($$render) => {
|
|
6661
6729
|
if ($$props.statementUrl) $$render(consequent);
|
|
6662
6730
|
});
|
|
6663
6731
|
}
|
|
6664
|
-
template_effect(
|
|
6665
|
-
|
|
6732
|
+
template_effect(
|
|
6733
|
+
($0) => {
|
|
6734
|
+
set_text(text2, lang() === "de" ? "Minimieren" : "Minimize");
|
|
6735
|
+
set_text(text_1, $0);
|
|
6736
|
+
set_attribute(a, "href", $$props.dashboardUrl || "https://accessify-dashboard.pages.dev");
|
|
6737
|
+
},
|
|
6738
|
+
[() => t("widget.close", lang())]
|
|
6739
|
+
);
|
|
6740
|
+
delegated("click", button, function(...$$args) {
|
|
6741
|
+
$$props.onminimize?.apply(this, $$args);
|
|
6742
|
+
});
|
|
6743
|
+
delegated("click", button_1, function(...$$args) {
|
|
6744
|
+
$$props.onclose?.apply(this, $$args);
|
|
6745
|
+
});
|
|
6746
|
+
append($$anchor, fragment);
|
|
6666
6747
|
pop();
|
|
6667
6748
|
}
|
|
6749
|
+
delegate(["click"]);
|
|
6668
6750
|
let savedTextNodes = [];
|
|
6669
6751
|
let savedAttrs = [];
|
|
6670
6752
|
let currentTranslateLang = null;
|
|
@@ -6684,13 +6766,13 @@ const TRANSLATABLE_ATTRS = [
|
|
|
6684
6766
|
"aria-valuetext"
|
|
6685
6767
|
];
|
|
6686
6768
|
const TRANSLATE_URL = "https://translate.googleapis.com/translate_a/single";
|
|
6687
|
-
async function translateSingleText(
|
|
6769
|
+
async function translateSingleText(text2, sourceLang, targetLang) {
|
|
6688
6770
|
const params = new URLSearchParams({
|
|
6689
6771
|
client: "gtx",
|
|
6690
6772
|
sl: sourceLang,
|
|
6691
6773
|
tl: targetLang,
|
|
6692
6774
|
dt: "t",
|
|
6693
|
-
q:
|
|
6775
|
+
q: text2
|
|
6694
6776
|
});
|
|
6695
6777
|
try {
|
|
6696
6778
|
const res = await fetch(`${TRANSLATE_URL}?${params.toString()}`);
|
|
@@ -6705,9 +6787,9 @@ async function translateSingleText(text, sourceLang, targetLang) {
|
|
|
6705
6787
|
}
|
|
6706
6788
|
return parts.join("");
|
|
6707
6789
|
}
|
|
6708
|
-
return
|
|
6790
|
+
return text2;
|
|
6709
6791
|
} catch {
|
|
6710
|
-
return
|
|
6792
|
+
return text2;
|
|
6711
6793
|
}
|
|
6712
6794
|
}
|
|
6713
6795
|
async function translateTexts(texts, sourceLang, targetLang) {
|
|
@@ -6716,7 +6798,7 @@ async function translateTexts(texts, sourceLang, targetLang) {
|
|
|
6716
6798
|
for (let start = 0; start < texts.length; start += CONCURRENCY) {
|
|
6717
6799
|
const batch = texts.slice(start, start + CONCURRENCY);
|
|
6718
6800
|
const translated = await Promise.all(
|
|
6719
|
-
batch.map((
|
|
6801
|
+
batch.map((text2) => translateSingleText(text2, sourceLang, targetLang))
|
|
6720
6802
|
);
|
|
6721
6803
|
for (let j = 0; j < translated.length; j++) {
|
|
6722
6804
|
results[start + j] = translated[j];
|
|
@@ -6791,9 +6873,9 @@ async function translatePage(targetLang) {
|
|
|
6791
6873
|
if (uniqueTexts.length === 0) return;
|
|
6792
6874
|
const translated = await translateTexts(uniqueTexts, pageLang, targetLang);
|
|
6793
6875
|
const lookup = /* @__PURE__ */ new Map();
|
|
6794
|
-
uniqueTexts.forEach((
|
|
6795
|
-
if (translated[i] && translated[i] !==
|
|
6796
|
-
lookup.set(
|
|
6876
|
+
uniqueTexts.forEach((text2, i) => {
|
|
6877
|
+
if (translated[i] && translated[i] !== text2) {
|
|
6878
|
+
lookup.set(text2, translated[i]);
|
|
6797
6879
|
}
|
|
6798
6880
|
});
|
|
6799
6881
|
observerPaused = true;
|
|
@@ -6936,12 +7018,17 @@ function createTextTransformService() {
|
|
|
6936
7018
|
}
|
|
6937
7019
|
var root_3 = /* @__PURE__ */ from_svg(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"></path></svg>`);
|
|
6938
7020
|
var root_2 = /* @__PURE__ */ from_html(`<button class="accessify-lang-option" role="option"><span> </span> <!></button>`);
|
|
6939
|
-
var root_1 = /* @__PURE__ */ from_html(`<div class="accessify-lang-list" role="listbox"></div>`);
|
|
6940
|
-
var
|
|
7021
|
+
var root_1 = /* @__PURE__ */ from_html(`<div id="accessify-widget-lang-list" class="accessify-lang-list" role="listbox"></div>`);
|
|
7022
|
+
var root_6 = /* @__PURE__ */ from_html(`<div class="accessify-translate-status"><span> </span> <button class="accessify-translate-restore"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg> <span> </span></button></div>`);
|
|
7023
|
+
var root_9 = /* @__PURE__ */ from_svg(`<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6L9 17l-5-5"></path></svg>`);
|
|
7024
|
+
var root_8 = /* @__PURE__ */ from_html(`<button class="accessify-lang-option" role="option"><span> </span> <!></button>`);
|
|
7025
|
+
var root_7 = /* @__PURE__ */ from_html(`<div id="accessify-translate-lang-list" class="accessify-lang-list" role="listbox"></div>`);
|
|
7026
|
+
var root = /* @__PURE__ */ from_html(`<div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> </div> <!> <div role="dialog"><!> <div class="accessify-body"><div class="accessify-control-section"><span class="accessify-section-label"> </span> <div class="accessify-lang-dropdown"><button class="accessify-lang-toggle" aria-controls="accessify-widget-lang-list"><span class="accessify-lang-toggle-left"><!> <span> </span></span> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button> <!></div></div> <div class="accessify-control-section"><span class="accessify-section-label"> </span> <div class="accessify-lang-dropdown"><button aria-controls="accessify-translate-lang-list"><span class="accessify-lang-toggle-left"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg> <span><!></span></span> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"></polyline></svg></button> <!> <!></div></div> <div class="accessify-section-divider"></div> <!> <div class="accessify-section-divider"></div> <!></div> <!></div>`, 1);
|
|
6941
7027
|
function WidgetApp($$anchor, $$props) {
|
|
6942
7028
|
push($$props, true);
|
|
6943
7029
|
let config2 = prop($$props, "config", 7);
|
|
6944
7030
|
let isOpen = /* @__PURE__ */ state(false);
|
|
7031
|
+
let isMinimized = /* @__PURE__ */ state(false);
|
|
6945
7032
|
let activeFeatures = /* @__PURE__ */ state(proxy(/* @__PURE__ */ new Map()));
|
|
6946
7033
|
let currentTheme = /* @__PURE__ */ state("light");
|
|
6947
7034
|
let panelEl = /* @__PURE__ */ state(null);
|
|
@@ -6949,11 +7036,93 @@ function WidgetApp($$anchor, $$props) {
|
|
|
6949
7036
|
let announcement = /* @__PURE__ */ state("");
|
|
6950
7037
|
let widgetLang = /* @__PURE__ */ state("en");
|
|
6951
7038
|
let activeProfileId = /* @__PURE__ */ state(null);
|
|
6952
|
-
let
|
|
7039
|
+
let widgetLangDropdownOpen = /* @__PURE__ */ state(false);
|
|
7040
|
+
let translateDropdownOpen = /* @__PURE__ */ state(false);
|
|
7041
|
+
let currentDock = /* @__PURE__ */ state("right");
|
|
7042
|
+
let pageTranslateActive = /* @__PURE__ */ state(false);
|
|
7043
|
+
let pageTranslateLang = /* @__PURE__ */ state(null);
|
|
6953
7044
|
const textTransformService = createTextTransformService();
|
|
6954
7045
|
const STORAGE_KEY = "accessify-prefs";
|
|
7046
|
+
const DOCK_KEY = "accessify-dock";
|
|
6955
7047
|
let activeCount = /* @__PURE__ */ user_derived(() => Array.from(get(activeFeatures).values()).filter(Boolean).length);
|
|
6956
7048
|
let currentLangOption = /* @__PURE__ */ user_derived(() => LANGUAGE_OPTIONS.find((o) => o.code === get(widgetLang)));
|
|
7049
|
+
const TRANSLATE_LANGUAGES = [
|
|
7050
|
+
{
|
|
7051
|
+
code: "de",
|
|
7052
|
+
flag: "🇩🇪",
|
|
7053
|
+
label: "Deutsch"
|
|
7054
|
+
},
|
|
7055
|
+
{
|
|
7056
|
+
code: "en",
|
|
7057
|
+
flag: "🇬🇧",
|
|
7058
|
+
label: "English"
|
|
7059
|
+
},
|
|
7060
|
+
{
|
|
7061
|
+
code: "es",
|
|
7062
|
+
flag: "🇪🇸",
|
|
7063
|
+
label: "Español"
|
|
7064
|
+
},
|
|
7065
|
+
{
|
|
7066
|
+
code: "fr",
|
|
7067
|
+
flag: "🇫🇷",
|
|
7068
|
+
label: "Français"
|
|
7069
|
+
},
|
|
7070
|
+
{
|
|
7071
|
+
code: "it",
|
|
7072
|
+
flag: "🇮🇹",
|
|
7073
|
+
label: "Italiano"
|
|
7074
|
+
},
|
|
7075
|
+
{
|
|
7076
|
+
code: "pt",
|
|
7077
|
+
flag: "🇧🇷",
|
|
7078
|
+
label: "Português"
|
|
7079
|
+
},
|
|
7080
|
+
{
|
|
7081
|
+
code: "zh",
|
|
7082
|
+
flag: "🇨🇳",
|
|
7083
|
+
label: "中文"
|
|
7084
|
+
},
|
|
7085
|
+
{
|
|
7086
|
+
code: "ja",
|
|
7087
|
+
flag: "🇯🇵",
|
|
7088
|
+
label: "日本語"
|
|
7089
|
+
},
|
|
7090
|
+
{
|
|
7091
|
+
code: "ko",
|
|
7092
|
+
flag: "🇰🇷",
|
|
7093
|
+
label: "한국어"
|
|
7094
|
+
},
|
|
7095
|
+
{
|
|
7096
|
+
code: "ar",
|
|
7097
|
+
flag: "🇸🇦",
|
|
7098
|
+
label: "العربية"
|
|
7099
|
+
},
|
|
7100
|
+
{
|
|
7101
|
+
code: "ru",
|
|
7102
|
+
flag: "🇷🇺",
|
|
7103
|
+
label: "Русский"
|
|
7104
|
+
},
|
|
7105
|
+
{
|
|
7106
|
+
code: "tr",
|
|
7107
|
+
flag: "🇹🇷",
|
|
7108
|
+
label: "Türkçe"
|
|
7109
|
+
},
|
|
7110
|
+
{
|
|
7111
|
+
code: "pl",
|
|
7112
|
+
flag: "🇵🇱",
|
|
7113
|
+
label: "Polski"
|
|
7114
|
+
},
|
|
7115
|
+
{
|
|
7116
|
+
code: "hi",
|
|
7117
|
+
flag: "🇮🇳",
|
|
7118
|
+
label: "हिन्दी"
|
|
7119
|
+
},
|
|
7120
|
+
{
|
|
7121
|
+
code: "sv",
|
|
7122
|
+
flag: "🇸🇪",
|
|
7123
|
+
label: "Svenska"
|
|
7124
|
+
}
|
|
7125
|
+
];
|
|
6957
7126
|
function announce(message) {
|
|
6958
7127
|
set(announcement, "");
|
|
6959
7128
|
requestAnimationFrame(() => {
|
|
@@ -6967,6 +7136,12 @@ function WidgetApp($$anchor, $$props) {
|
|
|
6967
7136
|
const prefs = JSON.parse(saved);
|
|
6968
7137
|
set(activeFeatures, new Map(Object.entries(prefs)), true);
|
|
6969
7138
|
}
|
|
7139
|
+
const dock = localStorage.getItem(DOCK_KEY);
|
|
7140
|
+
if (dock === "left" || dock === "right") {
|
|
7141
|
+
set(currentDock, dock, true);
|
|
7142
|
+
} else {
|
|
7143
|
+
set(currentDock, config2().position?.includes("left") ? "left" : "right", true);
|
|
7144
|
+
}
|
|
6970
7145
|
} catch {
|
|
6971
7146
|
}
|
|
6972
7147
|
}
|
|
@@ -7011,6 +7186,7 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7011
7186
|
}
|
|
7012
7187
|
function open() {
|
|
7013
7188
|
set(isOpen, true);
|
|
7189
|
+
set(isMinimized, false);
|
|
7014
7190
|
requestAnimationFrame(() => {
|
|
7015
7191
|
if (get(panelEl)) {
|
|
7016
7192
|
const first = get(panelEl).querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
@@ -7020,12 +7196,40 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7020
7196
|
}
|
|
7021
7197
|
function close() {
|
|
7022
7198
|
set(isOpen, false);
|
|
7023
|
-
|
|
7024
|
-
|
|
7199
|
+
set(isMinimized, false);
|
|
7200
|
+
set(widgetLangDropdownOpen, false);
|
|
7201
|
+
set(translateDropdownOpen, false);
|
|
7202
|
+
requestAnimationFrame(() => {
|
|
7203
|
+
const trigger = $$props.shadow.querySelector(".accessify-trigger");
|
|
7204
|
+
trigger?.focus();
|
|
7205
|
+
});
|
|
7206
|
+
}
|
|
7207
|
+
function minimize() {
|
|
7208
|
+
set(isOpen, false);
|
|
7209
|
+
set(isMinimized, true);
|
|
7210
|
+
set(widgetLangDropdownOpen, false);
|
|
7211
|
+
set(translateDropdownOpen, false);
|
|
7212
|
+
requestAnimationFrame(() => {
|
|
7213
|
+
const trigger = $$props.shadow.querySelector(".accessify-trigger");
|
|
7214
|
+
trigger?.focus();
|
|
7215
|
+
});
|
|
7025
7216
|
}
|
|
7026
7217
|
function toggleOpen() {
|
|
7027
|
-
if (get(isOpen))
|
|
7028
|
-
|
|
7218
|
+
if (get(isOpen)) {
|
|
7219
|
+
minimize();
|
|
7220
|
+
} else {
|
|
7221
|
+
open();
|
|
7222
|
+
}
|
|
7223
|
+
}
|
|
7224
|
+
function handleDockChange(dock) {
|
|
7225
|
+
set(currentDock, dock, true);
|
|
7226
|
+
try {
|
|
7227
|
+
localStorage.setItem(DOCK_KEY, dock);
|
|
7228
|
+
} catch {
|
|
7229
|
+
}
|
|
7230
|
+
const newPos = dock === "left" ? config2().position?.replace("right", "left") || "bottom-left" : config2().position?.replace("left", "right") || "bottom-right";
|
|
7231
|
+
config2().position = newPos;
|
|
7232
|
+
window.dispatchEvent(new CustomEvent("accessify:reposition", { detail: { position: newPos } }));
|
|
7029
7233
|
}
|
|
7030
7234
|
function handleFeatureToggle(id, enabled) {
|
|
7031
7235
|
get(activeFeatures).set(id, enabled);
|
|
@@ -7041,6 +7245,8 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7041
7245
|
set(activeProfileId, null);
|
|
7042
7246
|
savePrefs();
|
|
7043
7247
|
textTransformService.restore();
|
|
7248
|
+
set(pageTranslateActive, false);
|
|
7249
|
+
set(pageTranslateLang, null);
|
|
7044
7250
|
window.dispatchEvent(new CustomEvent("accessify:reset"));
|
|
7045
7251
|
announce(t("widget.resetConfirm", get(widgetLang)));
|
|
7046
7252
|
}
|
|
@@ -7064,23 +7270,58 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7064
7270
|
savePrefs();
|
|
7065
7271
|
announce(`${t(profile.nameKey, get(widgetLang))} ${t("status.activated", get(widgetLang))}`);
|
|
7066
7272
|
}
|
|
7067
|
-
function
|
|
7273
|
+
function handleWidgetLangChange(newLang) {
|
|
7068
7274
|
set(widgetLang, getSupportedLang(newLang), true);
|
|
7069
7275
|
config2().lang = get(widgetLang);
|
|
7070
|
-
set(
|
|
7276
|
+
set(widgetLangDropdownOpen, false);
|
|
7071
7277
|
applyLanguage();
|
|
7278
|
+
announce(get(widgetLang) === "de" ? `Widget-Sprache: ${get(currentLangOption)?.label}` : `Widget language: ${get(currentLangOption)?.label}`);
|
|
7279
|
+
}
|
|
7280
|
+
function handlePageTranslate(targetLang) {
|
|
7072
7281
|
const pageLang = document.documentElement.lang?.split("-")[0] || "en";
|
|
7073
|
-
|
|
7074
|
-
|
|
7075
|
-
|
|
7282
|
+
set(translateDropdownOpen, false);
|
|
7283
|
+
if (get(pageTranslateLang) === targetLang) {
|
|
7284
|
+
textTransformService.restore();
|
|
7285
|
+
set(pageTranslateActive, false);
|
|
7286
|
+
set(pageTranslateLang, null);
|
|
7287
|
+
announce(get(widgetLang) === "de" ? "Originalsprache wiederhergestellt" : "Original language restored");
|
|
7288
|
+
return;
|
|
7289
|
+
}
|
|
7290
|
+
if (targetLang === pageLang) {
|
|
7076
7291
|
textTransformService.restore();
|
|
7292
|
+
set(pageTranslateActive, false);
|
|
7293
|
+
set(pageTranslateLang, null);
|
|
7294
|
+
return;
|
|
7077
7295
|
}
|
|
7296
|
+
set(pageTranslateActive, true);
|
|
7297
|
+
set(pageTranslateLang, targetLang, true);
|
|
7298
|
+
textTransformService.translate(targetLang);
|
|
7299
|
+
const langLabel = TRANSLATE_LANGUAGES.find((l) => l.code === targetLang)?.label || targetLang;
|
|
7300
|
+
announce(get(widgetLang) === "de" ? `Seite wird übersetzt: ${langLabel}` : `Translating page: ${langLabel}`);
|
|
7301
|
+
}
|
|
7302
|
+
function restorePageTranslation() {
|
|
7303
|
+
textTransformService.restore();
|
|
7304
|
+
set(pageTranslateActive, false);
|
|
7305
|
+
set(pageTranslateLang, null);
|
|
7306
|
+
set(translateDropdownOpen, false);
|
|
7078
7307
|
}
|
|
7079
7308
|
function handleKeydown(e) {
|
|
7080
|
-
if (e.key === "Escape"
|
|
7081
|
-
|
|
7082
|
-
|
|
7083
|
-
|
|
7309
|
+
if (e.key === "Escape") {
|
|
7310
|
+
if (get(widgetLangDropdownOpen)) {
|
|
7311
|
+
set(widgetLangDropdownOpen, false);
|
|
7312
|
+
e.preventDefault();
|
|
7313
|
+
return;
|
|
7314
|
+
}
|
|
7315
|
+
if (get(translateDropdownOpen)) {
|
|
7316
|
+
set(translateDropdownOpen, false);
|
|
7317
|
+
e.preventDefault();
|
|
7318
|
+
return;
|
|
7319
|
+
}
|
|
7320
|
+
if (get(isOpen)) {
|
|
7321
|
+
e.preventDefault();
|
|
7322
|
+
minimize();
|
|
7323
|
+
return;
|
|
7324
|
+
}
|
|
7084
7325
|
}
|
|
7085
7326
|
if (e.key === "Tab" && get(isOpen) && get(panelEl)) {
|
|
7086
7327
|
const focusable = get(panelEl).querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
@@ -7108,12 +7349,18 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7108
7349
|
var fragment = root();
|
|
7109
7350
|
event("keydown", $window, handleKeydown);
|
|
7110
7351
|
var div = first_child(fragment);
|
|
7111
|
-
var text = child(div);
|
|
7352
|
+
var text$1 = child(div);
|
|
7112
7353
|
var node = sibling(div, 2);
|
|
7113
7354
|
TriggerButton(node, {
|
|
7114
7355
|
get isOpen() {
|
|
7115
7356
|
return get(isOpen);
|
|
7116
7357
|
},
|
|
7358
|
+
get isMinimized() {
|
|
7359
|
+
return get(isMinimized);
|
|
7360
|
+
},
|
|
7361
|
+
get activeCount() {
|
|
7362
|
+
return get(activeCount);
|
|
7363
|
+
},
|
|
7117
7364
|
get lang() {
|
|
7118
7365
|
return get(widgetLang);
|
|
7119
7366
|
},
|
|
@@ -7126,6 +7373,7 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7126
7373
|
}
|
|
7127
7374
|
});
|
|
7128
7375
|
var div_1 = sibling(node, 2);
|
|
7376
|
+
let classes;
|
|
7129
7377
|
var node_1 = child(div_1);
|
|
7130
7378
|
PanelHeader(node_1, {
|
|
7131
7379
|
get lang() {
|
|
@@ -7135,27 +7383,35 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7135
7383
|
return get(activeCount);
|
|
7136
7384
|
},
|
|
7137
7385
|
onclose: close,
|
|
7138
|
-
onreset: resetAll
|
|
7386
|
+
onreset: resetAll,
|
|
7387
|
+
onminimize: minimize,
|
|
7388
|
+
ondockchange: handleDockChange,
|
|
7389
|
+
get currentDock() {
|
|
7390
|
+
return get(currentDock);
|
|
7391
|
+
}
|
|
7139
7392
|
});
|
|
7140
7393
|
var div_2 = sibling(node_1, 2);
|
|
7141
7394
|
var div_3 = child(div_2);
|
|
7142
|
-
var
|
|
7143
|
-
var
|
|
7144
|
-
var
|
|
7395
|
+
var span = child(div_3);
|
|
7396
|
+
var text_1 = child(span);
|
|
7397
|
+
var div_4 = sibling(span, 2);
|
|
7398
|
+
var button = child(div_4);
|
|
7399
|
+
var span_1 = child(button);
|
|
7400
|
+
var node_2 = child(span_1);
|
|
7145
7401
|
html(node_2, iconGlobe);
|
|
7146
|
-
var
|
|
7147
|
-
var
|
|
7148
|
-
var svg = sibling(
|
|
7149
|
-
let
|
|
7402
|
+
var span_2 = sibling(node_2, 2);
|
|
7403
|
+
var text_2 = child(span_2);
|
|
7404
|
+
var svg = sibling(span_1, 2);
|
|
7405
|
+
let classes_1;
|
|
7150
7406
|
var node_3 = sibling(button, 2);
|
|
7151
7407
|
{
|
|
7152
7408
|
var consequent_1 = ($$anchor2) => {
|
|
7153
|
-
var
|
|
7154
|
-
each(
|
|
7409
|
+
var div_5 = root_1();
|
|
7410
|
+
each(div_5, 21, () => LANGUAGE_OPTIONS, index, ($$anchor3, option) => {
|
|
7155
7411
|
var button_1 = root_2();
|
|
7156
|
-
var
|
|
7157
|
-
var
|
|
7158
|
-
var node_4 = sibling(
|
|
7412
|
+
var span_3 = child(button_1);
|
|
7413
|
+
var text_3 = child(span_3);
|
|
7414
|
+
var node_4 = sibling(span_3, 2);
|
|
7159
7415
|
{
|
|
7160
7416
|
var consequent = ($$anchor4) => {
|
|
7161
7417
|
var svg_1 = root_3();
|
|
@@ -7168,20 +7424,113 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7168
7424
|
template_effect(() => {
|
|
7169
7425
|
set_attribute(button_1, "aria-selected", get(widgetLang) === get(option).code);
|
|
7170
7426
|
set_attribute(button_1, "data-active", get(widgetLang) === get(option).code);
|
|
7171
|
-
set_text(
|
|
7427
|
+
set_text(text_3, `${(get(option).flag || "") ?? ""} ${get(option).label ?? ""}`);
|
|
7172
7428
|
});
|
|
7173
|
-
delegated("click", button_1, () =>
|
|
7429
|
+
delegated("click", button_1, () => handleWidgetLangChange(get(option).code));
|
|
7174
7430
|
append($$anchor3, button_1);
|
|
7175
7431
|
});
|
|
7176
|
-
template_effect((
|
|
7177
|
-
append($$anchor2,
|
|
7432
|
+
template_effect(() => set_attribute(div_5, "aria-label", get(widgetLang) === "de" ? "Widget-Sprache wählen" : "Select widget language"));
|
|
7433
|
+
append($$anchor2, div_5);
|
|
7178
7434
|
};
|
|
7179
7435
|
if_block(node_3, ($$render) => {
|
|
7180
|
-
if (get(
|
|
7436
|
+
if (get(widgetLangDropdownOpen)) $$render(consequent_1);
|
|
7437
|
+
});
|
|
7438
|
+
}
|
|
7439
|
+
var div_6 = sibling(div_3, 2);
|
|
7440
|
+
var span_4 = child(div_6);
|
|
7441
|
+
var text_4 = child(span_4);
|
|
7442
|
+
var div_7 = sibling(span_4, 2);
|
|
7443
|
+
var button_2 = child(div_7);
|
|
7444
|
+
let classes_2;
|
|
7445
|
+
var span_5 = child(button_2);
|
|
7446
|
+
var span_6 = sibling(child(span_5), 2);
|
|
7447
|
+
var node_5 = child(span_6);
|
|
7448
|
+
{
|
|
7449
|
+
var consequent_2 = ($$anchor2) => {
|
|
7450
|
+
var text_5 = text();
|
|
7451
|
+
template_effect(
|
|
7452
|
+
($0, $1) => set_text(text_5, `${$0 ?? ""}
|
|
7453
|
+
${$1 ?? ""}`),
|
|
7454
|
+
[
|
|
7455
|
+
() => TRANSLATE_LANGUAGES.find((l) => l.code === get(pageTranslateLang))?.flag || "",
|
|
7456
|
+
() => TRANSLATE_LANGUAGES.find((l) => l.code === get(pageTranslateLang))?.label || get(pageTranslateLang)
|
|
7457
|
+
]
|
|
7458
|
+
);
|
|
7459
|
+
append($$anchor2, text_5);
|
|
7460
|
+
};
|
|
7461
|
+
var alternate = ($$anchor2) => {
|
|
7462
|
+
var text_6 = text();
|
|
7463
|
+
template_effect(() => set_text(text_6, get(widgetLang) === "de" ? "Sprache wählen..." : "Select language..."));
|
|
7464
|
+
append($$anchor2, text_6);
|
|
7465
|
+
};
|
|
7466
|
+
if_block(node_5, ($$render) => {
|
|
7467
|
+
if (get(pageTranslateActive) && get(pageTranslateLang)) $$render(consequent_2);
|
|
7468
|
+
else $$render(alternate, -1);
|
|
7469
|
+
});
|
|
7470
|
+
}
|
|
7471
|
+
var svg_2 = sibling(span_5, 2);
|
|
7472
|
+
let classes_3;
|
|
7473
|
+
var node_6 = sibling(button_2, 2);
|
|
7474
|
+
{
|
|
7475
|
+
var consequent_3 = ($$anchor2) => {
|
|
7476
|
+
var div_8 = root_6();
|
|
7477
|
+
var span_7 = child(div_8);
|
|
7478
|
+
var text_7 = child(span_7);
|
|
7479
|
+
var button_3 = sibling(span_7, 2);
|
|
7480
|
+
var span_8 = sibling(child(button_3), 2);
|
|
7481
|
+
var text_8 = child(span_8);
|
|
7482
|
+
template_effect(
|
|
7483
|
+
($0) => {
|
|
7484
|
+
set_text(text_7, `${get(widgetLang) === "de" ? "Aktiv" : "Active"}: ${$0 ?? ""}`);
|
|
7485
|
+
set_attribute(button_3, "aria-label", get(widgetLang) === "de" ? "Original wiederherstellen" : "Restore original");
|
|
7486
|
+
set_text(text_8, get(widgetLang) === "de" ? "Zurücksetzen" : "Restore");
|
|
7487
|
+
},
|
|
7488
|
+
[
|
|
7489
|
+
() => TRANSLATE_LANGUAGES.find((l) => l.code === get(pageTranslateLang))?.label || get(pageTranslateLang)
|
|
7490
|
+
]
|
|
7491
|
+
);
|
|
7492
|
+
delegated("click", button_3, restorePageTranslation);
|
|
7493
|
+
append($$anchor2, div_8);
|
|
7494
|
+
};
|
|
7495
|
+
if_block(node_6, ($$render) => {
|
|
7496
|
+
if (get(pageTranslateActive)) $$render(consequent_3);
|
|
7497
|
+
});
|
|
7498
|
+
}
|
|
7499
|
+
var node_7 = sibling(node_6, 2);
|
|
7500
|
+
{
|
|
7501
|
+
var consequent_5 = ($$anchor2) => {
|
|
7502
|
+
var div_9 = root_7();
|
|
7503
|
+
each(div_9, 21, () => TRANSLATE_LANGUAGES, index, ($$anchor3, option) => {
|
|
7504
|
+
var button_4 = root_8();
|
|
7505
|
+
var span_9 = child(button_4);
|
|
7506
|
+
var text_9 = child(span_9);
|
|
7507
|
+
var node_8 = sibling(span_9, 2);
|
|
7508
|
+
{
|
|
7509
|
+
var consequent_4 = ($$anchor4) => {
|
|
7510
|
+
var svg_3 = root_9();
|
|
7511
|
+
append($$anchor4, svg_3);
|
|
7512
|
+
};
|
|
7513
|
+
if_block(node_8, ($$render) => {
|
|
7514
|
+
if (get(pageTranslateLang) === get(option).code) $$render(consequent_4);
|
|
7515
|
+
});
|
|
7516
|
+
}
|
|
7517
|
+
template_effect(() => {
|
|
7518
|
+
set_attribute(button_4, "aria-selected", get(pageTranslateLang) === get(option).code);
|
|
7519
|
+
set_attribute(button_4, "data-active", get(pageTranslateLang) === get(option).code);
|
|
7520
|
+
set_text(text_9, `${get(option).flag ?? ""} ${get(option).label ?? ""}`);
|
|
7521
|
+
});
|
|
7522
|
+
delegated("click", button_4, () => handlePageTranslate(get(option).code));
|
|
7523
|
+
append($$anchor3, button_4);
|
|
7524
|
+
});
|
|
7525
|
+
template_effect(() => set_attribute(div_9, "aria-label", get(widgetLang) === "de" ? "Zielsprache für Seitenübersetzung" : "Target language for page translation"));
|
|
7526
|
+
append($$anchor2, div_9);
|
|
7527
|
+
};
|
|
7528
|
+
if_block(node_7, ($$render) => {
|
|
7529
|
+
if (get(translateDropdownOpen)) $$render(consequent_5);
|
|
7181
7530
|
});
|
|
7182
7531
|
}
|
|
7183
|
-
var
|
|
7184
|
-
ProfileSection(
|
|
7532
|
+
var node_9 = sibling(div_6, 4);
|
|
7533
|
+
ProfileSection(node_9, {
|
|
7185
7534
|
get lang() {
|
|
7186
7535
|
return get(widgetLang);
|
|
7187
7536
|
},
|
|
@@ -7190,10 +7539,10 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7190
7539
|
},
|
|
7191
7540
|
onactivate: handleProfileActivate
|
|
7192
7541
|
});
|
|
7193
|
-
var
|
|
7542
|
+
var node_10 = sibling(node_9, 4);
|
|
7194
7543
|
{
|
|
7195
7544
|
let $0 = /* @__PURE__ */ user_derived(() => ({ ...config2(), lang: get(widgetLang) }));
|
|
7196
|
-
FeatureGrid(
|
|
7545
|
+
FeatureGrid(node_10, {
|
|
7197
7546
|
get config() {
|
|
7198
7547
|
return get($0);
|
|
7199
7548
|
},
|
|
@@ -7203,8 +7552,8 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7203
7552
|
ontoggle: handleFeatureToggle
|
|
7204
7553
|
});
|
|
7205
7554
|
}
|
|
7206
|
-
var
|
|
7207
|
-
PanelFooter(
|
|
7555
|
+
var node_11 = sibling(div_2, 2);
|
|
7556
|
+
PanelFooter(node_11, {
|
|
7208
7557
|
get lang() {
|
|
7209
7558
|
return get(widgetLang);
|
|
7210
7559
|
},
|
|
@@ -7213,18 +7562,30 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7213
7562
|
},
|
|
7214
7563
|
get dashboardUrl() {
|
|
7215
7564
|
return config2().dashboardUrl;
|
|
7216
|
-
}
|
|
7565
|
+
},
|
|
7566
|
+
onclose: close,
|
|
7567
|
+
onminimize: minimize
|
|
7217
7568
|
});
|
|
7218
7569
|
bind_this(div_1, ($$value) => set(panelEl, $$value), () => get(panelEl));
|
|
7219
7570
|
template_effect(
|
|
7220
7571
|
($0, $1) => {
|
|
7221
|
-
set_text(text, get(announcement));
|
|
7572
|
+
set_text(text$1, get(announcement));
|
|
7573
|
+
classes = set_class(div_1, 1, "accessify-panel", null, classes, { "accessify-panel--left": get(currentDock) === "left" });
|
|
7222
7574
|
set_attribute(div_1, "aria-label", $0);
|
|
7223
7575
|
set_attribute(div_1, "aria-hidden", !get(isOpen));
|
|
7224
7576
|
set_attribute(div_1, "dir", $1);
|
|
7225
|
-
|
|
7226
|
-
|
|
7227
|
-
|
|
7577
|
+
set_text(text_1, get(widgetLang) === "de" ? "Widget-Sprache" : "Widget Language");
|
|
7578
|
+
set_attribute(button, "aria-expanded", get(widgetLangDropdownOpen));
|
|
7579
|
+
set_text(text_2, `${(get(currentLangOption)?.flag || "") ?? ""} ${(get(currentLangOption)?.label || get(widgetLang)) ?? ""}`);
|
|
7580
|
+
classes_1 = set_class(svg, 0, "accessify-lang-chevron", null, classes_1, {
|
|
7581
|
+
"accessify-lang-chevron--open": get(widgetLangDropdownOpen)
|
|
7582
|
+
});
|
|
7583
|
+
set_text(text_4, get(widgetLang) === "de" ? "Seite übersetzen" : "Translate Page");
|
|
7584
|
+
classes_2 = set_class(button_2, 1, "accessify-translate-toggle", null, classes_2, {
|
|
7585
|
+
"accessify-translate-toggle--active": get(pageTranslateActive)
|
|
7586
|
+
});
|
|
7587
|
+
set_attribute(button_2, "aria-expanded", get(translateDropdownOpen));
|
|
7588
|
+
classes_3 = set_class(svg_2, 0, "accessify-lang-chevron", null, classes_3, { "accessify-lang-chevron--open": get(translateDropdownOpen) });
|
|
7228
7589
|
div_1.dir = div_1.dir;
|
|
7229
7590
|
},
|
|
7230
7591
|
[
|
|
@@ -7233,7 +7594,12 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7233
7594
|
]
|
|
7234
7595
|
);
|
|
7235
7596
|
delegated("click", button, () => {
|
|
7236
|
-
set(
|
|
7597
|
+
set(widgetLangDropdownOpen, !get(widgetLangDropdownOpen));
|
|
7598
|
+
set(translateDropdownOpen, false);
|
|
7599
|
+
});
|
|
7600
|
+
delegated("click", button_2, () => {
|
|
7601
|
+
set(translateDropdownOpen, !get(translateDropdownOpen));
|
|
7602
|
+
set(widgetLangDropdownOpen, false);
|
|
7237
7603
|
});
|
|
7238
7604
|
append($$anchor, fragment);
|
|
7239
7605
|
return pop($$exports);
|
|
@@ -7317,10 +7683,24 @@ function createWidgetStyles(config2) {
|
|
|
7317
7683
|
}
|
|
7318
7684
|
.accessify-trigger:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(50,60,100,0.6); }
|
|
7319
7685
|
.accessify-trigger:active { transform: scale(0.96); }
|
|
7320
|
-
.accessify-trigger
|
|
7686
|
+
.accessify-trigger--hidden { opacity:0; pointer-events:none; transform:scale(0.9); }
|
|
7687
|
+
.accessify-trigger--minimized {
|
|
7688
|
+
/* Minimized state: trigger stays visible as return button */
|
|
7689
|
+
opacity: 1 !important; pointer-events: auto !important; transform: none !important;
|
|
7690
|
+
}
|
|
7691
|
+
.accessify-trigger--minimized:hover { transform: translateY(-2px) !important; }
|
|
7321
7692
|
.accessify-trigger svg { width: 26px; height: 26px; }
|
|
7322
7693
|
.accessify-trigger--dragging { cursor: grabbing !important; opacity: 0.85; }
|
|
7323
7694
|
|
|
7695
|
+
/* Active count badge on trigger */
|
|
7696
|
+
.accessify-trigger-badge {
|
|
7697
|
+
position: absolute; top: -4px; right: -4px;
|
|
7698
|
+
min-width: 20px; height: 20px; padding: 0 5px;
|
|
7699
|
+
border-radius: 999px; background: var(--accent); color: #fff;
|
|
7700
|
+
font-size: 11px; font-weight: 700; line-height: 20px; text-align: center;
|
|
7701
|
+
pointer-events: none;
|
|
7702
|
+
}
|
|
7703
|
+
|
|
7324
7704
|
/* ─── Panel ─── */
|
|
7325
7705
|
.accessify-panel {
|
|
7326
7706
|
position: fixed; top: 0; bottom: 0;
|
|
@@ -7334,6 +7714,15 @@ function createWidgetStyles(config2) {
|
|
|
7334
7714
|
box-shadow: var(--shadow);
|
|
7335
7715
|
transition: opacity 200ms ease, transform 200ms ease;
|
|
7336
7716
|
}
|
|
7717
|
+
/* Dynamic dock override via class */
|
|
7718
|
+
.accessify-panel--left {
|
|
7719
|
+
left: 0; right: auto;
|
|
7720
|
+
border-radius: 0 20px 20px 0;
|
|
7721
|
+
}
|
|
7722
|
+
.accessify-panel:not(.accessify-panel--left) {
|
|
7723
|
+
right: 0; left: auto;
|
|
7724
|
+
border-radius: 20px 0 0 20px;
|
|
7725
|
+
}
|
|
7337
7726
|
.accessify-panel[aria-hidden="true"] { opacity:0; transform:${hiddenTransform}; pointer-events:none; display:none; }
|
|
7338
7727
|
.accessify-panel[aria-hidden="false"] { opacity:1; transform:translateX(0); }
|
|
7339
7728
|
|
|
@@ -7363,6 +7752,31 @@ function createWidgetStyles(config2) {
|
|
|
7363
7752
|
.accessify-header-btn--icon { padding: 0; }
|
|
7364
7753
|
.accessify-header-btn--close { background: transparent; border-color: transparent; }
|
|
7365
7754
|
|
|
7755
|
+
/* ─── Docking buttons ─── */
|
|
7756
|
+
.accessify-dock-group {
|
|
7757
|
+
display: inline-flex; gap: 2px;
|
|
7758
|
+
border-radius: 8px; border: 1px solid var(--border);
|
|
7759
|
+
overflow: hidden;
|
|
7760
|
+
}
|
|
7761
|
+
.accessify-dock-btn {
|
|
7762
|
+
display: inline-flex; align-items: center; justify-content: center;
|
|
7763
|
+
width: 28px; height: 28px; border: none;
|
|
7764
|
+
background: transparent; color: var(--text-dim);
|
|
7765
|
+
cursor: pointer; transition: background var(--fast), color var(--fast);
|
|
7766
|
+
}
|
|
7767
|
+
.accessify-dock-btn:hover { background: var(--surface-hover); color: var(--text); }
|
|
7768
|
+
.accessify-dock-btn[data-active="true"] { background: var(--accent-soft); color: var(--accent); }
|
|
7769
|
+
.accessify-dock-btn svg { width: 14px; height: 14px; }
|
|
7770
|
+
|
|
7771
|
+
/* ─── Section Labels ─── */
|
|
7772
|
+
.accessify-control-section {
|
|
7773
|
+
display: flex; flex-direction: column; gap: 6px;
|
|
7774
|
+
}
|
|
7775
|
+
.accessify-section-label {
|
|
7776
|
+
font-size: 11px; font-weight: 700; text-transform: uppercase;
|
|
7777
|
+
letter-spacing: 0.05em; color: var(--text-dim); padding-left: 2px;
|
|
7778
|
+
}
|
|
7779
|
+
|
|
7366
7780
|
/* ─── Shared Accordion (Language + Profiles) ─── */
|
|
7367
7781
|
.accessify-lang-dropdown,
|
|
7368
7782
|
.accessify-accordion {
|
|
@@ -7372,6 +7786,7 @@ function createWidgetStyles(config2) {
|
|
|
7372
7786
|
}
|
|
7373
7787
|
|
|
7374
7788
|
.accessify-lang-toggle,
|
|
7789
|
+
.accessify-translate-toggle,
|
|
7375
7790
|
.accessify-accordion-toggle {
|
|
7376
7791
|
display: flex; align-items: center; justify-content: space-between;
|
|
7377
7792
|
width: 100%; padding: 14px 14px;
|
|
@@ -7381,8 +7796,32 @@ function createWidgetStyles(config2) {
|
|
|
7381
7796
|
transition: background var(--fast);
|
|
7382
7797
|
}
|
|
7383
7798
|
.accessify-lang-toggle:hover,
|
|
7799
|
+
.accessify-translate-toggle:hover,
|
|
7384
7800
|
.accessify-accordion-toggle:hover { background: var(--surface-hover); }
|
|
7385
7801
|
|
|
7802
|
+
/* Active translation indicator */
|
|
7803
|
+
.accessify-translate-toggle--active {
|
|
7804
|
+
border-left: 3px solid var(--accent);
|
|
7805
|
+
}
|
|
7806
|
+
|
|
7807
|
+
/* Translation active status bar */
|
|
7808
|
+
.accessify-translate-status {
|
|
7809
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
7810
|
+
padding: 8px 12px;
|
|
7811
|
+
background: var(--accent-soft);
|
|
7812
|
+
border-top: 1px solid var(--border);
|
|
7813
|
+
font-size: 12px; font-weight: 600; color: var(--accent);
|
|
7814
|
+
}
|
|
7815
|
+
.accessify-translate-restore {
|
|
7816
|
+
display: inline-flex; align-items: center; gap: 4px;
|
|
7817
|
+
padding: 4px 10px; border: none; border-radius: 6px;
|
|
7818
|
+
background: var(--surface); color: var(--text-dim);
|
|
7819
|
+
cursor: pointer; font-size: 11px; font-weight: 600; font-family: inherit;
|
|
7820
|
+
transition: background var(--fast), color var(--fast);
|
|
7821
|
+
}
|
|
7822
|
+
.accessify-translate-restore:hover { background: var(--accent); color: #fff; }
|
|
7823
|
+
.accessify-translate-restore svg { width: 12px; height: 12px; }
|
|
7824
|
+
|
|
7386
7825
|
.accessify-lang-toggle-left,
|
|
7387
7826
|
.accessify-accordion-toggle-left {
|
|
7388
7827
|
display: flex; align-items: center; gap: 10px;
|
|
@@ -7419,6 +7858,7 @@ function createWidgetStyles(config2) {
|
|
|
7419
7858
|
color: var(--text); cursor: pointer;
|
|
7420
7859
|
font-size: 14px; font-weight: 500; font-family: inherit;
|
|
7421
7860
|
transition: background var(--fast);
|
|
7861
|
+
min-height: 44px; /* Hit area */
|
|
7422
7862
|
}
|
|
7423
7863
|
.accessify-lang-option:hover { background: var(--surface-hover); }
|
|
7424
7864
|
.accessify-lang-option[data-active="true"] { color: var(--accent); font-weight: 700; }
|
|
@@ -7597,6 +8037,26 @@ function createWidgetStyles(config2) {
|
|
|
7597
8037
|
flex-shrink: 0;
|
|
7598
8038
|
}
|
|
7599
8039
|
|
|
8040
|
+
/* ─── Utility Bar (bottom of panel) ─── */
|
|
8041
|
+
.accessify-utility-bar {
|
|
8042
|
+
display: flex; gap: 8px;
|
|
8043
|
+
padding: 8px var(--pad);
|
|
8044
|
+
border-top: 1px solid var(--border);
|
|
8045
|
+
background: var(--surface-dim);
|
|
8046
|
+
flex-shrink: 0;
|
|
8047
|
+
}
|
|
8048
|
+
.accessify-utility-btn {
|
|
8049
|
+
flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px;
|
|
8050
|
+
padding: 10px 12px; min-height: 40px;
|
|
8051
|
+
border: 1px solid var(--border); border-radius: 10px;
|
|
8052
|
+
background: var(--surface); color: var(--text-dim);
|
|
8053
|
+
cursor: pointer; font-size: 13px; font-weight: 600; font-family: inherit;
|
|
8054
|
+
transition: background var(--fast), color var(--fast), border-color var(--fast);
|
|
8055
|
+
}
|
|
8056
|
+
.accessify-utility-btn:hover { background: var(--surface-hover); color: var(--text); border-color: var(--border-hl); }
|
|
8057
|
+
.accessify-utility-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
|
|
8058
|
+
.accessify-utility-btn--close:hover { border-color: var(--accent); color: var(--accent); }
|
|
8059
|
+
|
|
7600
8060
|
/* ─── Footer ─── */
|
|
7601
8061
|
.accessify-footer {
|
|
7602
8062
|
display: flex; align-items: center; justify-content: center; gap: 8px;
|
|
@@ -7616,6 +8076,7 @@ function createWidgetStyles(config2) {
|
|
|
7616
8076
|
/* ─── Mobile ─── */
|
|
7617
8077
|
@media (max-width: 640px) {
|
|
7618
8078
|
.accessify-panel { width: 100vw; border-radius: 0; }
|
|
8079
|
+
.accessify-panel--left { border-radius: 0; }
|
|
7619
8080
|
.accessify-features { gap: 8px; }
|
|
7620
8081
|
.accessify-body { padding: 8px 12px; }
|
|
7621
8082
|
.accessify-trigger {
|
|
@@ -7623,6 +8084,7 @@ function createWidgetStyles(config2) {
|
|
|
7623
8084
|
${isRight ? "right: 16px" : "left: 16px"};
|
|
7624
8085
|
width: 50px; height: 50px; border-radius: 14px;
|
|
7625
8086
|
}
|
|
8087
|
+
.accessify-dock-group { display: none; }
|
|
7626
8088
|
}
|
|
7627
8089
|
`;
|
|
7628
8090
|
}
|
|
@@ -8002,7 +8464,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8002
8464
|
styleEl = null;
|
|
8003
8465
|
document.getElementById(STYLE_ID)?.remove();
|
|
8004
8466
|
}
|
|
8005
|
-
function showDescribeTooltip(
|
|
8467
|
+
function showDescribeTooltip(text2, rect, loading = false) {
|
|
8006
8468
|
hideDescribeTooltip();
|
|
8007
8469
|
const tip = document.createElement("div");
|
|
8008
8470
|
tip.className = "accessify-describe-tooltip";
|
|
@@ -8022,7 +8484,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8022
8484
|
tip.appendChild(loadingEl);
|
|
8023
8485
|
} else {
|
|
8024
8486
|
const textEl = document.createElement("div");
|
|
8025
|
-
textEl.textContent =
|
|
8487
|
+
textEl.textContent = text2;
|
|
8026
8488
|
tip.appendChild(textEl);
|
|
8027
8489
|
}
|
|
8028
8490
|
document.body.appendChild(tip);
|
|
@@ -8318,7 +8780,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8318
8780
|
);
|
|
8319
8781
|
}
|
|
8320
8782
|
}
|
|
8321
|
-
function showBadge(
|
|
8783
|
+
function showBadge(text2, color, count) {
|
|
8322
8784
|
const badge = document.createElement("div");
|
|
8323
8785
|
badge.className = "accessify-alt-badge";
|
|
8324
8786
|
badge.setAttribute("role", "status");
|
|
@@ -8331,7 +8793,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8331
8793
|
badge.appendChild(c);
|
|
8332
8794
|
}
|
|
8333
8795
|
const label = document.createElement("span");
|
|
8334
|
-
label.textContent =
|
|
8796
|
+
label.textContent = text2;
|
|
8335
8797
|
badge.appendChild(label);
|
|
8336
8798
|
document.body.appendChild(badge);
|
|
8337
8799
|
badgeEl = badge;
|
|
@@ -8630,4 +9092,4 @@ export {
|
|
|
8630
9092
|
init as i,
|
|
8631
9093
|
t
|
|
8632
9094
|
};
|
|
8633
|
-
//# sourceMappingURL=index-
|
|
9095
|
+
//# sourceMappingURL=index-BiF0o7li.js.map
|