accessify-widget 0.3.0 → 0.3.1
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-BiF0o7li.js → index-CFoky8Ty.js} +231 -527
- package/dist/index-CFoky8Ty.js.map +1 -0
- package/dist/{keyboard-nav-CE8luwx_.js → keyboard-nav-B66DnefL.js} +2 -2
- package/dist/{keyboard-nav-CE8luwx_.js.map → keyboard-nav-B66DnefL.js.map} +1 -1
- package/dist/{page-structure-C25HU_D7.js → page-structure-C76rueHv.js} +2 -2
- package/dist/{page-structure-C25HU_D7.js.map → page-structure-C76rueHv.js.map} +1 -1
- package/dist/widget.js +1 -1
- package/dist/widget.js.map +1 -1
- package/package.json +1 -1
- package/dist/index-BiF0o7li.js.map +0 -1
|
@@ -3441,13 +3441,6 @@ 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
|
-
}
|
|
3451
3444
|
function append(anchor, dom) {
|
|
3452
3445
|
if (anchor === null) {
|
|
3453
3446
|
return;
|
|
@@ -3457,11 +3450,11 @@ function append(anchor, dom) {
|
|
|
3457
3450
|
dom
|
|
3458
3451
|
);
|
|
3459
3452
|
}
|
|
3460
|
-
function set_text(
|
|
3453
|
+
function set_text(text, value) {
|
|
3461
3454
|
var str = value == null ? "" : typeof value === "object" ? `${value}` : value;
|
|
3462
|
-
if (str !== (
|
|
3463
|
-
|
|
3464
|
-
|
|
3455
|
+
if (str !== (text.__t ?? (text.__t = text.nodeValue))) {
|
|
3456
|
+
text.__t = str;
|
|
3457
|
+
text.nodeValue = `${str}`;
|
|
3465
3458
|
}
|
|
3466
3459
|
}
|
|
3467
3460
|
function mount(component, options) {
|
|
@@ -4252,6 +4245,9 @@ function to_class(value, hash, directives) {
|
|
|
4252
4245
|
}
|
|
4253
4246
|
return classname === "" ? null : classname;
|
|
4254
4247
|
}
|
|
4248
|
+
function to_style(value, styles) {
|
|
4249
|
+
return value == null ? null : String(value);
|
|
4250
|
+
}
|
|
4255
4251
|
function set_class(dom, is_html, value, hash, prev_classes, next_classes) {
|
|
4256
4252
|
var prev = dom.__className;
|
|
4257
4253
|
if (prev !== value || prev === void 0) {
|
|
@@ -4276,6 +4272,21 @@ function set_class(dom, is_html, value, hash, prev_classes, next_classes) {
|
|
|
4276
4272
|
}
|
|
4277
4273
|
return next_classes;
|
|
4278
4274
|
}
|
|
4275
|
+
function set_style(dom, value, prev_styles, next_styles) {
|
|
4276
|
+
var prev = dom.__style;
|
|
4277
|
+
if (prev !== value) {
|
|
4278
|
+
var next_style_attr = to_style(value);
|
|
4279
|
+
{
|
|
4280
|
+
if (next_style_attr == null) {
|
|
4281
|
+
dom.removeAttribute("style");
|
|
4282
|
+
} else {
|
|
4283
|
+
dom.style.cssText = next_style_attr;
|
|
4284
|
+
}
|
|
4285
|
+
}
|
|
4286
|
+
dom.__style = value;
|
|
4287
|
+
}
|
|
4288
|
+
return next_styles;
|
|
4289
|
+
}
|
|
4279
4290
|
const IS_CUSTOM_ELEMENT = Symbol("is custom element");
|
|
4280
4291
|
const IS_HTML = Symbol("is html");
|
|
4281
4292
|
function set_attribute(element, attribute, value, skip_warning) {
|
|
@@ -4801,16 +4812,7 @@ const deJson = {
|
|
|
4801
4812
|
"footer.disclaimer": "Dieses Widget verbessert die Barrierefreiheit, ersetzt aber keine barrierefreie Webentwicklung.",
|
|
4802
4813
|
"footer.docs": "Dokumentation",
|
|
4803
4814
|
"footer.github": "GitHub",
|
|
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"
|
|
4815
|
+
"bfsg.notice": "Hinweis: Dieses Overlay-Tool allein erfüllt nicht die Anforderungen des BFSG. Professionelle Barrierefreiheit erfordert strukturelle Änderungen am Quellcode."
|
|
4814
4816
|
};
|
|
4815
4817
|
const enJson = {
|
|
4816
4818
|
"widget.title": "Accessibility",
|
|
@@ -4899,16 +4901,7 @@ const enJson = {
|
|
|
4899
4901
|
"footer.disclaimer": "This widget enhances accessibility but does not replace accessible web development.",
|
|
4900
4902
|
"footer.docs": "Documentation",
|
|
4901
4903
|
"footer.github": "GitHub",
|
|
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"
|
|
4904
|
+
"bfsg.notice": "Note: This overlay tool alone does not meet BFSG requirements. Full accessibility requires structural changes to the source code."
|
|
4912
4905
|
};
|
|
4913
4906
|
const EN_BASE = {
|
|
4914
4907
|
...enJson,
|
|
@@ -5783,11 +5776,10 @@ function t(key, lang = "en") {
|
|
|
5783
5776
|
const resolved = getSupportedLang(lang);
|
|
5784
5777
|
return locales[resolved]?.[key] || EN_BASE[key] || key;
|
|
5785
5778
|
}
|
|
5786
|
-
var
|
|
5787
|
-
var root$5 = /* @__PURE__ */ from_html(`<button><!> <!></button>`);
|
|
5779
|
+
var root$5 = /* @__PURE__ */ from_html(`<button></button>`);
|
|
5788
5780
|
function TriggerButton($$anchor, $$props) {
|
|
5789
5781
|
push($$props, true);
|
|
5790
|
-
let
|
|
5782
|
+
let lang = prop($$props, "lang", 3, "en"), el = prop($$props, "el", 15, null);
|
|
5791
5783
|
let isDragging = /* @__PURE__ */ state(false);
|
|
5792
5784
|
onMount(() => {
|
|
5793
5785
|
const btn = el();
|
|
@@ -5847,29 +5839,15 @@ function TriggerButton($$anchor, $$props) {
|
|
|
5847
5839
|
});
|
|
5848
5840
|
var button = root$5();
|
|
5849
5841
|
let classes;
|
|
5850
|
-
|
|
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
|
-
}
|
|
5842
|
+
html(button, iconAccessibility, true);
|
|
5864
5843
|
bind_this(button, ($$value) => el($$value), () => el());
|
|
5865
5844
|
template_effect(
|
|
5866
5845
|
($0) => {
|
|
5867
5846
|
classes = set_class(button, 1, "accessify-trigger", null, classes, {
|
|
5868
5847
|
"accessify-trigger--dragging": get(isDragging),
|
|
5869
|
-
"accessify-trigger--hidden": $$props.isOpen
|
|
5870
|
-
"accessify-trigger--minimized": isMinimized()
|
|
5848
|
+
"accessify-trigger--hidden": $$props.isOpen
|
|
5871
5849
|
});
|
|
5872
|
-
set_attribute(button, "aria-expanded", $$props.isOpen
|
|
5850
|
+
set_attribute(button, "aria-expanded", $$props.isOpen);
|
|
5873
5851
|
set_attribute(button, "aria-label", $0);
|
|
5874
5852
|
},
|
|
5875
5853
|
[
|
|
@@ -5879,49 +5857,93 @@ function TriggerButton($$anchor, $$props) {
|
|
|
5879
5857
|
append($$anchor, button);
|
|
5880
5858
|
pop();
|
|
5881
5859
|
}
|
|
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"><
|
|
5860
|
+
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 accessify-drag-handle"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><line x1="8" y1="6" x2="8" y2="6.01"></line><line x1="16" y1="6" x2="16" y2="6.01"></line><line x1="8" y1="12" x2="8" y2="12.01"></line><line x1="16" y1="12" x2="16" y2="12.01"></line><line x1="8" y1="18" x2="8" y2="18.01"></line><line x1="16" y1="18" x2="16" y2="18.01"></line></svg></button> <button class="accessify-header-btn"></button> <button class="accessify-header-btn accessify-header-btn--icon accessify-header-btn--close"></button></div></header>`);
|
|
5883
5861
|
function PanelHeader($$anchor, $$props) {
|
|
5884
5862
|
push($$props, true);
|
|
5885
5863
|
let lang = prop($$props, "lang", 3, "en");
|
|
5886
5864
|
prop($$props, "activeCount", 3, 0);
|
|
5887
|
-
let
|
|
5865
|
+
let panelEl = prop($$props, "panelEl", 3, null);
|
|
5866
|
+
let dragHandleEl = /* @__PURE__ */ state(null);
|
|
5867
|
+
onMount(() => {
|
|
5868
|
+
const handle = get(dragHandleEl);
|
|
5869
|
+
if (!handle) return;
|
|
5870
|
+
let dragStartX = 0;
|
|
5871
|
+
let startLeft = 0;
|
|
5872
|
+
let hasMoved = false;
|
|
5873
|
+
let pointerId = null;
|
|
5874
|
+
function onDown(e) {
|
|
5875
|
+
const panel = panelEl();
|
|
5876
|
+
if (!panel) return;
|
|
5877
|
+
const rect = panel.getBoundingClientRect();
|
|
5878
|
+
dragStartX = e.clientX;
|
|
5879
|
+
startLeft = rect.left;
|
|
5880
|
+
hasMoved = false;
|
|
5881
|
+
pointerId = e.pointerId;
|
|
5882
|
+
handle.setPointerCapture(e.pointerId);
|
|
5883
|
+
e.preventDefault();
|
|
5884
|
+
}
|
|
5885
|
+
function onMove(e) {
|
|
5886
|
+
if (pointerId === null || e.pointerId !== pointerId) return;
|
|
5887
|
+
const panel = panelEl();
|
|
5888
|
+
if (!panel) return;
|
|
5889
|
+
const dx = e.clientX - dragStartX;
|
|
5890
|
+
if (!hasMoved && Math.abs(dx) > 5) {
|
|
5891
|
+
hasMoved = true;
|
|
5892
|
+
panel.style.transition = "none";
|
|
5893
|
+
}
|
|
5894
|
+
if (hasMoved) {
|
|
5895
|
+
const panelW = panel.offsetWidth;
|
|
5896
|
+
const newLeft = Math.max(0, Math.min(window.innerWidth - panelW, startLeft + dx));
|
|
5897
|
+
panel.style.left = newLeft + "px";
|
|
5898
|
+
panel.style.right = "auto";
|
|
5899
|
+
}
|
|
5900
|
+
}
|
|
5901
|
+
function onUp(e) {
|
|
5902
|
+
if (pointerId === null || e.pointerId !== pointerId) return;
|
|
5903
|
+
handle.releasePointerCapture(e.pointerId);
|
|
5904
|
+
const panel = panelEl();
|
|
5905
|
+
if (panel) {
|
|
5906
|
+
panel.style.transition = "";
|
|
5907
|
+
if (hasMoved) {
|
|
5908
|
+
const rect = panel.getBoundingClientRect();
|
|
5909
|
+
$$props.ondrag(rect.left);
|
|
5910
|
+
}
|
|
5911
|
+
}
|
|
5912
|
+
pointerId = null;
|
|
5913
|
+
hasMoved = false;
|
|
5914
|
+
}
|
|
5915
|
+
handle.addEventListener("pointerdown", onDown);
|
|
5916
|
+
handle.addEventListener("pointermove", onMove);
|
|
5917
|
+
handle.addEventListener("pointerup", onUp);
|
|
5918
|
+
return () => {
|
|
5919
|
+
handle.removeEventListener("pointerdown", onDown);
|
|
5920
|
+
handle.removeEventListener("pointermove", onMove);
|
|
5921
|
+
handle.removeEventListener("pointerup", onUp);
|
|
5922
|
+
};
|
|
5923
|
+
});
|
|
5888
5924
|
var header = root$4();
|
|
5889
5925
|
var div = sibling(child(header), 2);
|
|
5890
|
-
var
|
|
5891
|
-
|
|
5926
|
+
var button = child(div);
|
|
5927
|
+
bind_this(button, ($$value) => set(dragHandleEl, $$value), () => get(dragHandleEl));
|
|
5892
5928
|
var button_1 = sibling(button, 2);
|
|
5893
|
-
|
|
5894
|
-
|
|
5895
|
-
|
|
5896
|
-
var button_4 = sibling(button_3, 2);
|
|
5897
|
-
html(button_4, iconClose, true);
|
|
5929
|
+
html(button_1, iconReset, true);
|
|
5930
|
+
var button_2 = sibling(button_1, 2);
|
|
5931
|
+
html(button_2, iconClose, true);
|
|
5898
5932
|
template_effect(
|
|
5899
5933
|
($0, $1) => {
|
|
5900
|
-
set_attribute(
|
|
5901
|
-
set_attribute(
|
|
5902
|
-
set_attribute(
|
|
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);
|
|
5934
|
+
set_attribute(button, "aria-label", lang() === "de" ? "Panel verschieben" : "Move panel");
|
|
5935
|
+
set_attribute(button_1, "aria-label", $0);
|
|
5936
|
+
set_attribute(button_2, "aria-label", $1);
|
|
5910
5937
|
},
|
|
5911
5938
|
[
|
|
5912
5939
|
() => t("widget.reset", lang()),
|
|
5913
5940
|
() => t("widget.close", lang())
|
|
5914
5941
|
]
|
|
5915
5942
|
);
|
|
5916
|
-
delegated("click",
|
|
5917
|
-
delegated("click", button_1, () => $$props.ondockchange("right"));
|
|
5918
|
-
delegated("click", button_2, function(...$$args) {
|
|
5943
|
+
delegated("click", button_1, function(...$$args) {
|
|
5919
5944
|
$$props.onreset?.apply(this, $$args);
|
|
5920
5945
|
});
|
|
5921
|
-
delegated("click",
|
|
5922
|
-
$$props.onminimize?.apply(this, $$args);
|
|
5923
|
-
});
|
|
5924
|
-
delegated("click", button_4, function(...$$args) {
|
|
5946
|
+
delegated("click", button_2, function(...$$args) {
|
|
5925
5947
|
$$props.onclose?.apply(this, $$args);
|
|
5926
5948
|
});
|
|
5927
5949
|
append($$anchor, header);
|
|
@@ -5985,7 +6007,7 @@ function ProfileSection($$anchor, $$props) {
|
|
|
5985
6007
|
var button = child(div);
|
|
5986
6008
|
var span = child(button);
|
|
5987
6009
|
var span_1 = sibling(child(span), 2);
|
|
5988
|
-
var
|
|
6010
|
+
var text = child(span_1);
|
|
5989
6011
|
var svg = sibling(span, 2);
|
|
5990
6012
|
let classes;
|
|
5991
6013
|
var node = sibling(button, 2);
|
|
@@ -6038,7 +6060,7 @@ function ProfileSection($$anchor, $$props) {
|
|
|
6038
6060
|
($0, $1) => {
|
|
6039
6061
|
set_attribute(div, "aria-label", $0);
|
|
6040
6062
|
set_attribute(button, "aria-expanded", get(isOpen));
|
|
6041
|
-
set_text(
|
|
6063
|
+
set_text(text, $1);
|
|
6042
6064
|
classes = set_class(svg, 0, "accessify-accordion-chevron", null, classes, { "accessify-accordion-chevron--open": get(isOpen) });
|
|
6043
6065
|
},
|
|
6044
6066
|
[
|
|
@@ -6075,8 +6097,8 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6075
6097
|
"X-Site-Key": siteKey
|
|
6076
6098
|
};
|
|
6077
6099
|
return {
|
|
6078
|
-
async simplifyText(
|
|
6079
|
-
const blockId = `b-${simpleHash(
|
|
6100
|
+
async simplifyText(text, level = "einfache", lang = "de") {
|
|
6101
|
+
const blockId = `b-${simpleHash(text)}`;
|
|
6080
6102
|
const variant = lang.startsWith("de") ? `de-${level}` : "en-plain";
|
|
6081
6103
|
try {
|
|
6082
6104
|
const cacheRes = await fetch(`${base}/v1/cache/query`, {
|
|
@@ -6086,7 +6108,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6086
6108
|
pageUrl: typeof window !== "undefined" ? window.location.href : "",
|
|
6087
6109
|
feature: "simplify",
|
|
6088
6110
|
variant,
|
|
6089
|
-
blocks: [{ id: blockId, text
|
|
6111
|
+
blocks: [{ id: blockId, text }]
|
|
6090
6112
|
})
|
|
6091
6113
|
});
|
|
6092
6114
|
if (cacheRes.ok) {
|
|
@@ -6103,7 +6125,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6103
6125
|
pageUrl: typeof window !== "undefined" ? window.location.href : "",
|
|
6104
6126
|
feature: "simplify",
|
|
6105
6127
|
variant,
|
|
6106
|
-
blocks: [{ id: blockId, text
|
|
6128
|
+
blocks: [{ id: blockId, text }]
|
|
6107
6129
|
})
|
|
6108
6130
|
});
|
|
6109
6131
|
if (processRes.ok) {
|
|
@@ -6115,7 +6137,7 @@ function createProxyService(siteKey, proxyUrl) {
|
|
|
6115
6137
|
const res = await fetch(`${base}/v1/ai/simplify`, {
|
|
6116
6138
|
method: "POST",
|
|
6117
6139
|
headers,
|
|
6118
|
-
body: JSON.stringify({ text
|
|
6140
|
+
body: JSON.stringify({ text, level, lang })
|
|
6119
6141
|
});
|
|
6120
6142
|
if (!res.ok) {
|
|
6121
6143
|
const err = await res.json().catch(() => ({ error: `HTTP ${res.status}` }));
|
|
@@ -6182,7 +6204,7 @@ function createDirectService(config2) {
|
|
|
6182
6204
|
"X-Title": "Accessify Widget"
|
|
6183
6205
|
};
|
|
6184
6206
|
return {
|
|
6185
|
-
async simplifyText(
|
|
6207
|
+
async simplifyText(text, level = "einfache", lang = "de") {
|
|
6186
6208
|
const systemPrompt = lang.startsWith("de") ? getGermanSimplificationPrompt(level) : getEnglishSimplificationPrompt();
|
|
6187
6209
|
const response = await fetch(`${OPENROUTER_BASE}/chat/completions`, {
|
|
6188
6210
|
method: "POST",
|
|
@@ -6191,7 +6213,7 @@ function createDirectService(config2) {
|
|
|
6191
6213
|
model: config2.textModel || DEFAULTS.textModel,
|
|
6192
6214
|
messages: [
|
|
6193
6215
|
{ role: "system", content: systemPrompt },
|
|
6194
|
-
{ role: "user", content:
|
|
6216
|
+
{ role: "user", content: text }
|
|
6195
6217
|
],
|
|
6196
6218
|
stream: false,
|
|
6197
6219
|
max_tokens: 2e3
|
|
@@ -6411,14 +6433,14 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6411
6433
|
const FEATURE_LOADERS = {
|
|
6412
6434
|
contrast: () => import("./contrast-CqsICAkU.js"),
|
|
6413
6435
|
"text-size": () => import("./text-size-C6OFhCGi.js"),
|
|
6414
|
-
"keyboard-nav": () => import("./keyboard-nav-
|
|
6436
|
+
"keyboard-nav": () => import("./keyboard-nav-B66DnefL.js"),
|
|
6415
6437
|
"link-highlight": () => import("./link-highlight-DBGm067Y.js"),
|
|
6416
6438
|
"reading-guide": () => import("./reading-guide-VT8NciIL.js"),
|
|
6417
6439
|
"reading-mask": () => import("./reading-mask-BABChuCz.js"),
|
|
6418
6440
|
"animation-stop": () => import("./animation-stop-C0MwseK0.js"),
|
|
6419
6441
|
"hide-images": () => import("./hide-images-B_LeCBcd.js"),
|
|
6420
6442
|
"big-cursor": () => import("./big-cursor-B2UKu9dQ.js"),
|
|
6421
|
-
"page-structure": () => import("./page-structure-
|
|
6443
|
+
"page-structure": () => import("./page-structure-C76rueHv.js"),
|
|
6422
6444
|
tts: () => import("./tts-CjszLRnb.js"),
|
|
6423
6445
|
"text-simplify": () => import("./text-simplify-Cvhpio7g.js"),
|
|
6424
6446
|
"alt-text": () => Promise.resolve().then(() => altText)
|
|
@@ -6569,7 +6591,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6569
6591
|
var span = child(div_1);
|
|
6570
6592
|
html(span, () => getIcon("contrast"), true);
|
|
6571
6593
|
var span_1 = sibling(span, 2);
|
|
6572
|
-
var
|
|
6594
|
+
var text = child(span_1);
|
|
6573
6595
|
var div_2 = sibling(div_1, 2);
|
|
6574
6596
|
each(div_2, 21, () => CONTRAST_MODES, index, ($$anchor3, mode) => {
|
|
6575
6597
|
var button = root_2$1();
|
|
@@ -6591,7 +6613,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6591
6613
|
template_effect(
|
|
6592
6614
|
($0, $1) => {
|
|
6593
6615
|
set_attribute(div, "aria-label", $0);
|
|
6594
|
-
set_text(
|
|
6616
|
+
set_text(text, $1);
|
|
6595
6617
|
},
|
|
6596
6618
|
[
|
|
6597
6619
|
() => t("feature.contrast", $$props.config.lang),
|
|
@@ -6696,54 +6718,50 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6696
6718
|
}
|
|
6697
6719
|
delegate(["click"]);
|
|
6698
6720
|
var root_1$1 = /* @__PURE__ */ from_html(`<span aria-hidden="true">·</span> <a target="_blank" rel="noopener noreferrer"> </a>`, 1);
|
|
6699
|
-
var root$1 = /* @__PURE__ */ from_html(`<div class="accessify-
|
|
6721
|
+
var root$1 = /* @__PURE__ */ from_html(`<div class="accessify-footer"><div class="accessify-footer-links"><a target="_blank" rel="noopener noreferrer">Accessify Dashboard</a> <!></div> <button class="accessify-footer-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>`);
|
|
6700
6722
|
function PanelFooter($$anchor, $$props) {
|
|
6701
6723
|
push($$props, true);
|
|
6702
6724
|
let lang = prop($$props, "lang", 3, "en");
|
|
6703
|
-
var
|
|
6704
|
-
var
|
|
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);
|
|
6725
|
+
var div = root$1();
|
|
6726
|
+
var div_1 = child(div);
|
|
6712
6727
|
var a = child(div_1);
|
|
6713
6728
|
var node = sibling(a, 2);
|
|
6714
6729
|
{
|
|
6715
6730
|
var consequent = ($$anchor2) => {
|
|
6716
|
-
var
|
|
6717
|
-
var a_1 = sibling(first_child(
|
|
6718
|
-
var
|
|
6731
|
+
var fragment = root_1$1();
|
|
6732
|
+
var a_1 = sibling(first_child(fragment), 2);
|
|
6733
|
+
var text = child(a_1);
|
|
6719
6734
|
template_effect(
|
|
6720
6735
|
($0) => {
|
|
6721
6736
|
set_attribute(a_1, "href", $$props.statementUrl);
|
|
6722
|
-
set_text(
|
|
6737
|
+
set_text(text, $0);
|
|
6723
6738
|
},
|
|
6724
6739
|
[() => t("widget.statement", lang())]
|
|
6725
6740
|
);
|
|
6726
|
-
append($$anchor2,
|
|
6741
|
+
append($$anchor2, fragment);
|
|
6727
6742
|
};
|
|
6728
6743
|
if_block(node, ($$render) => {
|
|
6729
6744
|
if ($$props.statementUrl) $$render(consequent);
|
|
6730
6745
|
});
|
|
6731
6746
|
}
|
|
6747
|
+
var button = sibling(div_1, 2);
|
|
6748
|
+
var span = sibling(child(button), 2);
|
|
6749
|
+
var text_1 = child(span);
|
|
6732
6750
|
template_effect(
|
|
6733
|
-
($0) => {
|
|
6734
|
-
set_text(text2, lang() === "de" ? "Minimieren" : "Minimize");
|
|
6735
|
-
set_text(text_1, $0);
|
|
6751
|
+
($0, $1) => {
|
|
6736
6752
|
set_attribute(a, "href", $$props.dashboardUrl || "https://accessify-dashboard.pages.dev");
|
|
6753
|
+
set_attribute(button, "aria-label", $0);
|
|
6754
|
+
set_text(text_1, $1);
|
|
6737
6755
|
},
|
|
6738
|
-
[
|
|
6756
|
+
[
|
|
6757
|
+
() => t("widget.close", lang()),
|
|
6758
|
+
() => t("widget.close", lang())
|
|
6759
|
+
]
|
|
6739
6760
|
);
|
|
6740
6761
|
delegated("click", button, function(...$$args) {
|
|
6741
|
-
$$props.onminimize?.apply(this, $$args);
|
|
6742
|
-
});
|
|
6743
|
-
delegated("click", button_1, function(...$$args) {
|
|
6744
6762
|
$$props.onclose?.apply(this, $$args);
|
|
6745
6763
|
});
|
|
6746
|
-
append($$anchor,
|
|
6764
|
+
append($$anchor, div);
|
|
6747
6765
|
pop();
|
|
6748
6766
|
}
|
|
6749
6767
|
delegate(["click"]);
|
|
@@ -6766,13 +6784,13 @@ const TRANSLATABLE_ATTRS = [
|
|
|
6766
6784
|
"aria-valuetext"
|
|
6767
6785
|
];
|
|
6768
6786
|
const TRANSLATE_URL = "https://translate.googleapis.com/translate_a/single";
|
|
6769
|
-
async function translateSingleText(
|
|
6787
|
+
async function translateSingleText(text, sourceLang, targetLang) {
|
|
6770
6788
|
const params = new URLSearchParams({
|
|
6771
6789
|
client: "gtx",
|
|
6772
6790
|
sl: sourceLang,
|
|
6773
6791
|
tl: targetLang,
|
|
6774
6792
|
dt: "t",
|
|
6775
|
-
q:
|
|
6793
|
+
q: text
|
|
6776
6794
|
});
|
|
6777
6795
|
try {
|
|
6778
6796
|
const res = await fetch(`${TRANSLATE_URL}?${params.toString()}`);
|
|
@@ -6787,9 +6805,9 @@ async function translateSingleText(text2, sourceLang, targetLang) {
|
|
|
6787
6805
|
}
|
|
6788
6806
|
return parts.join("");
|
|
6789
6807
|
}
|
|
6790
|
-
return
|
|
6808
|
+
return text;
|
|
6791
6809
|
} catch {
|
|
6792
|
-
return
|
|
6810
|
+
return text;
|
|
6793
6811
|
}
|
|
6794
6812
|
}
|
|
6795
6813
|
async function translateTexts(texts, sourceLang, targetLang) {
|
|
@@ -6798,7 +6816,7 @@ async function translateTexts(texts, sourceLang, targetLang) {
|
|
|
6798
6816
|
for (let start = 0; start < texts.length; start += CONCURRENCY) {
|
|
6799
6817
|
const batch = texts.slice(start, start + CONCURRENCY);
|
|
6800
6818
|
const translated = await Promise.all(
|
|
6801
|
-
batch.map((
|
|
6819
|
+
batch.map((text) => translateSingleText(text, sourceLang, targetLang))
|
|
6802
6820
|
);
|
|
6803
6821
|
for (let j = 0; j < translated.length; j++) {
|
|
6804
6822
|
results[start + j] = translated[j];
|
|
@@ -6873,9 +6891,9 @@ async function translatePage(targetLang) {
|
|
|
6873
6891
|
if (uniqueTexts.length === 0) return;
|
|
6874
6892
|
const translated = await translateTexts(uniqueTexts, pageLang, targetLang);
|
|
6875
6893
|
const lookup = /* @__PURE__ */ new Map();
|
|
6876
|
-
uniqueTexts.forEach((
|
|
6877
|
-
if (translated[i] && translated[i] !==
|
|
6878
|
-
lookup.set(
|
|
6894
|
+
uniqueTexts.forEach((text, i) => {
|
|
6895
|
+
if (translated[i] && translated[i] !== text) {
|
|
6896
|
+
lookup.set(text, translated[i]);
|
|
6879
6897
|
}
|
|
6880
6898
|
});
|
|
6881
6899
|
observerPaused = true;
|
|
@@ -7018,17 +7036,12 @@ function createTextTransformService() {
|
|
|
7018
7036
|
}
|
|
7019
7037
|
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>`);
|
|
7020
7038
|
var root_2 = /* @__PURE__ */ from_html(`<button class="accessify-lang-option" role="option"><span> </span> <!></button>`);
|
|
7021
|
-
var root_1 = /* @__PURE__ */ from_html(`<div id="accessify-
|
|
7022
|
-
var
|
|
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);
|
|
7039
|
+
var root_1 = /* @__PURE__ */ from_html(`<div id="accessify-lang-list" class="accessify-lang-list" role="listbox"></div>`);
|
|
7040
|
+
var root = /* @__PURE__ */ from_html(`<div class="sr-only" role="status" aria-live="polite" aria-atomic="true"> </div> <!> <div class="accessify-panel" role="dialog"><!> <div class="accessify-body"><div class="accessify-lang-dropdown"><button class="accessify-lang-toggle" aria-controls="accessify-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 class="accessify-section-divider"></div> <!> <div class="accessify-section-divider"></div> <!></div> <!></div>`, 1);
|
|
7027
7041
|
function WidgetApp($$anchor, $$props) {
|
|
7028
7042
|
push($$props, true);
|
|
7029
7043
|
let config2 = prop($$props, "config", 7);
|
|
7030
7044
|
let isOpen = /* @__PURE__ */ state(false);
|
|
7031
|
-
let isMinimized = /* @__PURE__ */ state(false);
|
|
7032
7045
|
let activeFeatures = /* @__PURE__ */ state(proxy(/* @__PURE__ */ new Map()));
|
|
7033
7046
|
let currentTheme = /* @__PURE__ */ state("light");
|
|
7034
7047
|
let panelEl = /* @__PURE__ */ state(null);
|
|
@@ -7036,93 +7049,13 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7036
7049
|
let announcement = /* @__PURE__ */ state("");
|
|
7037
7050
|
let widgetLang = /* @__PURE__ */ state("en");
|
|
7038
7051
|
let activeProfileId = /* @__PURE__ */ state(null);
|
|
7039
|
-
let
|
|
7040
|
-
let
|
|
7041
|
-
|
|
7042
|
-
let pageTranslateActive = /* @__PURE__ */ state(false);
|
|
7043
|
-
let pageTranslateLang = /* @__PURE__ */ state(null);
|
|
7052
|
+
let langDropdownOpen = /* @__PURE__ */ state(false);
|
|
7053
|
+
let panelX = /* @__PURE__ */ state(null);
|
|
7054
|
+
const PANEL_X_KEY = "accessify-panel-x";
|
|
7044
7055
|
const textTransformService = createTextTransformService();
|
|
7045
7056
|
const STORAGE_KEY = "accessify-prefs";
|
|
7046
|
-
const DOCK_KEY = "accessify-dock";
|
|
7047
7057
|
let activeCount = /* @__PURE__ */ user_derived(() => Array.from(get(activeFeatures).values()).filter(Boolean).length);
|
|
7048
7058
|
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
|
-
];
|
|
7126
7059
|
function announce(message) {
|
|
7127
7060
|
set(announcement, "");
|
|
7128
7061
|
requestAnimationFrame(() => {
|
|
@@ -7136,11 +7069,9 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7136
7069
|
const prefs = JSON.parse(saved);
|
|
7137
7070
|
set(activeFeatures, new Map(Object.entries(prefs)), true);
|
|
7138
7071
|
}
|
|
7139
|
-
const
|
|
7140
|
-
if (
|
|
7141
|
-
set(
|
|
7142
|
-
} else {
|
|
7143
|
-
set(currentDock, config2().position?.includes("left") ? "left" : "right", true);
|
|
7072
|
+
const savedX = localStorage.getItem(PANEL_X_KEY);
|
|
7073
|
+
if (savedX !== null) {
|
|
7074
|
+
set(panelX, parseFloat(savedX), true);
|
|
7144
7075
|
}
|
|
7145
7076
|
} catch {
|
|
7146
7077
|
}
|
|
@@ -7186,7 +7117,6 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7186
7117
|
}
|
|
7187
7118
|
function open() {
|
|
7188
7119
|
set(isOpen, true);
|
|
7189
|
-
set(isMinimized, false);
|
|
7190
7120
|
requestAnimationFrame(() => {
|
|
7191
7121
|
if (get(panelEl)) {
|
|
7192
7122
|
const first = get(panelEl).querySelector('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
@@ -7196,19 +7126,7 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7196
7126
|
}
|
|
7197
7127
|
function close() {
|
|
7198
7128
|
set(isOpen, false);
|
|
7199
|
-
set(
|
|
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);
|
|
7129
|
+
set(langDropdownOpen, false);
|
|
7212
7130
|
requestAnimationFrame(() => {
|
|
7213
7131
|
const trigger = $$props.shadow.querySelector(".accessify-trigger");
|
|
7214
7132
|
trigger?.focus();
|
|
@@ -7216,20 +7134,29 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7216
7134
|
}
|
|
7217
7135
|
function toggleOpen() {
|
|
7218
7136
|
if (get(isOpen)) {
|
|
7219
|
-
|
|
7137
|
+
close();
|
|
7220
7138
|
} else {
|
|
7221
7139
|
open();
|
|
7222
7140
|
}
|
|
7223
7141
|
}
|
|
7224
|
-
function
|
|
7225
|
-
set(
|
|
7142
|
+
function handleLangChange(newLang) {
|
|
7143
|
+
set(widgetLang, getSupportedLang(newLang), true);
|
|
7144
|
+
config2().lang = get(widgetLang);
|
|
7145
|
+
set(langDropdownOpen, false);
|
|
7146
|
+
applyLanguage();
|
|
7147
|
+
const pageLang = document.documentElement.lang?.split("-")[0] || "en";
|
|
7148
|
+
if (get(widgetLang) !== pageLang) {
|
|
7149
|
+
textTransformService.translate(get(widgetLang));
|
|
7150
|
+
} else {
|
|
7151
|
+
textTransformService.restore();
|
|
7152
|
+
}
|
|
7153
|
+
}
|
|
7154
|
+
function handlePanelDrag(x) {
|
|
7155
|
+
set(panelX, x, true);
|
|
7226
7156
|
try {
|
|
7227
|
-
localStorage.setItem(
|
|
7157
|
+
localStorage.setItem(PANEL_X_KEY, String(x));
|
|
7228
7158
|
} catch {
|
|
7229
7159
|
}
|
|
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 } }));
|
|
7233
7160
|
}
|
|
7234
7161
|
function handleFeatureToggle(id, enabled) {
|
|
7235
7162
|
get(activeFeatures).set(id, enabled);
|
|
@@ -7245,8 +7172,6 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7245
7172
|
set(activeProfileId, null);
|
|
7246
7173
|
savePrefs();
|
|
7247
7174
|
textTransformService.restore();
|
|
7248
|
-
set(pageTranslateActive, false);
|
|
7249
|
-
set(pageTranslateLang, null);
|
|
7250
7175
|
window.dispatchEvent(new CustomEvent("accessify:reset"));
|
|
7251
7176
|
announce(t("widget.resetConfirm", get(widgetLang)));
|
|
7252
7177
|
}
|
|
@@ -7270,56 +7195,16 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7270
7195
|
savePrefs();
|
|
7271
7196
|
announce(`${t(profile.nameKey, get(widgetLang))} ${t("status.activated", get(widgetLang))}`);
|
|
7272
7197
|
}
|
|
7273
|
-
function handleWidgetLangChange(newLang) {
|
|
7274
|
-
set(widgetLang, getSupportedLang(newLang), true);
|
|
7275
|
-
config2().lang = get(widgetLang);
|
|
7276
|
-
set(widgetLangDropdownOpen, false);
|
|
7277
|
-
applyLanguage();
|
|
7278
|
-
announce(get(widgetLang) === "de" ? `Widget-Sprache: ${get(currentLangOption)?.label}` : `Widget language: ${get(currentLangOption)?.label}`);
|
|
7279
|
-
}
|
|
7280
|
-
function handlePageTranslate(targetLang) {
|
|
7281
|
-
const pageLang = document.documentElement.lang?.split("-")[0] || "en";
|
|
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) {
|
|
7291
|
-
textTransformService.restore();
|
|
7292
|
-
set(pageTranslateActive, false);
|
|
7293
|
-
set(pageTranslateLang, null);
|
|
7294
|
-
return;
|
|
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);
|
|
7307
|
-
}
|
|
7308
7198
|
function handleKeydown(e) {
|
|
7309
7199
|
if (e.key === "Escape") {
|
|
7310
|
-
if (get(
|
|
7311
|
-
set(
|
|
7312
|
-
e.preventDefault();
|
|
7313
|
-
return;
|
|
7314
|
-
}
|
|
7315
|
-
if (get(translateDropdownOpen)) {
|
|
7316
|
-
set(translateDropdownOpen, false);
|
|
7200
|
+
if (get(langDropdownOpen)) {
|
|
7201
|
+
set(langDropdownOpen, false);
|
|
7317
7202
|
e.preventDefault();
|
|
7318
7203
|
return;
|
|
7319
7204
|
}
|
|
7320
7205
|
if (get(isOpen)) {
|
|
7321
7206
|
e.preventDefault();
|
|
7322
|
-
|
|
7207
|
+
close();
|
|
7323
7208
|
return;
|
|
7324
7209
|
}
|
|
7325
7210
|
}
|
|
@@ -7338,6 +7223,7 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7338
7223
|
}
|
|
7339
7224
|
}
|
|
7340
7225
|
}
|
|
7226
|
+
let panelStyle = /* @__PURE__ */ user_derived(() => get(panelX) !== null ? `left: ${get(panelX)}px; right: auto;` : "");
|
|
7341
7227
|
onMount(() => {
|
|
7342
7228
|
set(widgetLang, getSupportedLang(config2().lang || "en"), true);
|
|
7343
7229
|
detectTheme();
|
|
@@ -7349,18 +7235,12 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7349
7235
|
var fragment = root();
|
|
7350
7236
|
event("keydown", $window, handleKeydown);
|
|
7351
7237
|
var div = first_child(fragment);
|
|
7352
|
-
var text
|
|
7238
|
+
var text = child(div);
|
|
7353
7239
|
var node = sibling(div, 2);
|
|
7354
7240
|
TriggerButton(node, {
|
|
7355
7241
|
get isOpen() {
|
|
7356
7242
|
return get(isOpen);
|
|
7357
7243
|
},
|
|
7358
|
-
get isMinimized() {
|
|
7359
|
-
return get(isMinimized);
|
|
7360
|
-
},
|
|
7361
|
-
get activeCount() {
|
|
7362
|
-
return get(activeCount);
|
|
7363
|
-
},
|
|
7364
7244
|
get lang() {
|
|
7365
7245
|
return get(widgetLang);
|
|
7366
7246
|
},
|
|
@@ -7373,7 +7253,6 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7373
7253
|
}
|
|
7374
7254
|
});
|
|
7375
7255
|
var div_1 = sibling(node, 2);
|
|
7376
|
-
let classes;
|
|
7377
7256
|
var node_1 = child(div_1);
|
|
7378
7257
|
PanelHeader(node_1, {
|
|
7379
7258
|
get lang() {
|
|
@@ -7384,34 +7263,30 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7384
7263
|
},
|
|
7385
7264
|
onclose: close,
|
|
7386
7265
|
onreset: resetAll,
|
|
7387
|
-
|
|
7388
|
-
|
|
7389
|
-
|
|
7390
|
-
return get(currentDock);
|
|
7266
|
+
ondrag: handlePanelDrag,
|
|
7267
|
+
get panelEl() {
|
|
7268
|
+
return get(panelEl);
|
|
7391
7269
|
}
|
|
7392
7270
|
});
|
|
7393
7271
|
var div_2 = sibling(node_1, 2);
|
|
7394
7272
|
var div_3 = child(div_2);
|
|
7395
|
-
var
|
|
7396
|
-
var
|
|
7397
|
-
var
|
|
7398
|
-
var button = child(div_4);
|
|
7399
|
-
var span_1 = child(button);
|
|
7400
|
-
var node_2 = child(span_1);
|
|
7273
|
+
var button = child(div_3);
|
|
7274
|
+
var span = child(button);
|
|
7275
|
+
var node_2 = child(span);
|
|
7401
7276
|
html(node_2, iconGlobe);
|
|
7402
|
-
var
|
|
7403
|
-
var
|
|
7404
|
-
var svg = sibling(
|
|
7405
|
-
let
|
|
7277
|
+
var span_1 = sibling(node_2, 2);
|
|
7278
|
+
var text_1 = child(span_1);
|
|
7279
|
+
var svg = sibling(span, 2);
|
|
7280
|
+
let classes;
|
|
7406
7281
|
var node_3 = sibling(button, 2);
|
|
7407
7282
|
{
|
|
7408
7283
|
var consequent_1 = ($$anchor2) => {
|
|
7409
|
-
var
|
|
7410
|
-
each(
|
|
7284
|
+
var div_4 = root_1();
|
|
7285
|
+
each(div_4, 21, () => LANGUAGE_OPTIONS, index, ($$anchor3, option) => {
|
|
7411
7286
|
var button_1 = root_2();
|
|
7412
|
-
var
|
|
7413
|
-
var
|
|
7414
|
-
var node_4 = sibling(
|
|
7287
|
+
var span_2 = child(button_1);
|
|
7288
|
+
var text_2 = child(span_2);
|
|
7289
|
+
var node_4 = sibling(span_2, 2);
|
|
7415
7290
|
{
|
|
7416
7291
|
var consequent = ($$anchor4) => {
|
|
7417
7292
|
var svg_1 = root_3();
|
|
@@ -7424,113 +7299,20 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7424
7299
|
template_effect(() => {
|
|
7425
7300
|
set_attribute(button_1, "aria-selected", get(widgetLang) === get(option).code);
|
|
7426
7301
|
set_attribute(button_1, "data-active", get(widgetLang) === get(option).code);
|
|
7427
|
-
set_text(
|
|
7302
|
+
set_text(text_2, `${(get(option).flag || "") ?? ""} ${get(option).label ?? ""}`);
|
|
7428
7303
|
});
|
|
7429
|
-
delegated("click", button_1, () =>
|
|
7304
|
+
delegated("click", button_1, () => handleLangChange(get(option).code));
|
|
7430
7305
|
append($$anchor3, button_1);
|
|
7431
7306
|
});
|
|
7432
|
-
template_effect(() => set_attribute(
|
|
7433
|
-
append($$anchor2,
|
|
7307
|
+
template_effect(($0) => set_attribute(div_4, "aria-label", $0), [() => t("widget.title", get(widgetLang))]);
|
|
7308
|
+
append($$anchor2, div_4);
|
|
7434
7309
|
};
|
|
7435
7310
|
if_block(node_3, ($$render) => {
|
|
7436
|
-
if (get(
|
|
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);
|
|
7311
|
+
if (get(langDropdownOpen)) $$render(consequent_1);
|
|
7530
7312
|
});
|
|
7531
7313
|
}
|
|
7532
|
-
var
|
|
7533
|
-
ProfileSection(
|
|
7314
|
+
var node_5 = sibling(div_3, 4);
|
|
7315
|
+
ProfileSection(node_5, {
|
|
7534
7316
|
get lang() {
|
|
7535
7317
|
return get(widgetLang);
|
|
7536
7318
|
},
|
|
@@ -7539,10 +7321,10 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7539
7321
|
},
|
|
7540
7322
|
onactivate: handleProfileActivate
|
|
7541
7323
|
});
|
|
7542
|
-
var
|
|
7324
|
+
var node_6 = sibling(node_5, 4);
|
|
7543
7325
|
{
|
|
7544
7326
|
let $0 = /* @__PURE__ */ user_derived(() => ({ ...config2(), lang: get(widgetLang) }));
|
|
7545
|
-
FeatureGrid(
|
|
7327
|
+
FeatureGrid(node_6, {
|
|
7546
7328
|
get config() {
|
|
7547
7329
|
return get($0);
|
|
7548
7330
|
},
|
|
@@ -7552,8 +7334,8 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7552
7334
|
ontoggle: handleFeatureToggle
|
|
7553
7335
|
});
|
|
7554
7336
|
}
|
|
7555
|
-
var
|
|
7556
|
-
PanelFooter(
|
|
7337
|
+
var node_7 = sibling(div_2, 2);
|
|
7338
|
+
PanelFooter(node_7, {
|
|
7557
7339
|
get lang() {
|
|
7558
7340
|
return get(widgetLang);
|
|
7559
7341
|
},
|
|
@@ -7563,29 +7345,19 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7563
7345
|
get dashboardUrl() {
|
|
7564
7346
|
return config2().dashboardUrl;
|
|
7565
7347
|
},
|
|
7566
|
-
onclose: close
|
|
7567
|
-
onminimize: minimize
|
|
7348
|
+
onclose: close
|
|
7568
7349
|
});
|
|
7569
7350
|
bind_this(div_1, ($$value) => set(panelEl, $$value), () => get(panelEl));
|
|
7570
7351
|
template_effect(
|
|
7571
7352
|
($0, $1) => {
|
|
7572
|
-
set_text(text
|
|
7573
|
-
classes = set_class(div_1, 1, "accessify-panel", null, classes, { "accessify-panel--left": get(currentDock) === "left" });
|
|
7353
|
+
set_text(text, get(announcement));
|
|
7574
7354
|
set_attribute(div_1, "aria-label", $0);
|
|
7575
7355
|
set_attribute(div_1, "aria-hidden", !get(isOpen));
|
|
7576
7356
|
set_attribute(div_1, "dir", $1);
|
|
7577
|
-
|
|
7578
|
-
set_attribute(button, "aria-expanded", get(
|
|
7579
|
-
set_text(
|
|
7580
|
-
|
|
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) });
|
|
7357
|
+
set_style(div_1, get(panelStyle));
|
|
7358
|
+
set_attribute(button, "aria-expanded", get(langDropdownOpen));
|
|
7359
|
+
set_text(text_1, `${(get(currentLangOption)?.flag || "") ?? ""} ${(get(currentLangOption)?.label || get(widgetLang)) ?? ""}`);
|
|
7360
|
+
classes = set_class(svg, 0, "accessify-lang-chevron", null, classes, { "accessify-lang-chevron--open": get(langDropdownOpen) });
|
|
7589
7361
|
div_1.dir = div_1.dir;
|
|
7590
7362
|
},
|
|
7591
7363
|
[
|
|
@@ -7594,12 +7366,7 @@ function WidgetApp($$anchor, $$props) {
|
|
|
7594
7366
|
]
|
|
7595
7367
|
);
|
|
7596
7368
|
delegated("click", button, () => {
|
|
7597
|
-
set(
|
|
7598
|
-
set(translateDropdownOpen, false);
|
|
7599
|
-
});
|
|
7600
|
-
delegated("click", button_2, () => {
|
|
7601
|
-
set(translateDropdownOpen, !get(translateDropdownOpen));
|
|
7602
|
-
set(widgetLangDropdownOpen, false);
|
|
7369
|
+
set(langDropdownOpen, !get(langDropdownOpen));
|
|
7603
7370
|
});
|
|
7604
7371
|
append($$anchor, fragment);
|
|
7605
7372
|
return pop($$exports);
|
|
@@ -7684,11 +7451,6 @@ function createWidgetStyles(config2) {
|
|
|
7684
7451
|
.accessify-trigger:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(50,60,100,0.6); }
|
|
7685
7452
|
.accessify-trigger:active { transform: scale(0.96); }
|
|
7686
7453
|
.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; }
|
|
7692
7454
|
.accessify-trigger svg { width: 26px; height: 26px; }
|
|
7693
7455
|
.accessify-trigger--dragging { cursor: grabbing !important; opacity: 0.85; }
|
|
7694
7456
|
|
|
@@ -7714,15 +7476,6 @@ function createWidgetStyles(config2) {
|
|
|
7714
7476
|
box-shadow: var(--shadow);
|
|
7715
7477
|
transition: opacity 200ms ease, transform 200ms ease;
|
|
7716
7478
|
}
|
|
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
|
-
}
|
|
7726
7479
|
.accessify-panel[aria-hidden="true"] { opacity:0; transform:${hiddenTransform}; pointer-events:none; display:none; }
|
|
7727
7480
|
.accessify-panel[aria-hidden="false"] { opacity:1; transform:translateX(0); }
|
|
7728
7481
|
|
|
@@ -7752,30 +7505,12 @@ function createWidgetStyles(config2) {
|
|
|
7752
7505
|
.accessify-header-btn--icon { padding: 0; }
|
|
7753
7506
|
.accessify-header-btn--close { background: transparent; border-color: transparent; }
|
|
7754
7507
|
|
|
7755
|
-
/*
|
|
7756
|
-
.accessify-
|
|
7757
|
-
|
|
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;
|
|
7508
|
+
/* Drag handle */
|
|
7509
|
+
.accessify-drag-handle {
|
|
7510
|
+
cursor: grab; touch-action: none;
|
|
7778
7511
|
}
|
|
7512
|
+
.accessify-drag-handle:active { cursor: grabbing; }
|
|
7513
|
+
.accessify-drag-handle svg { stroke-width: 3; }
|
|
7779
7514
|
|
|
7780
7515
|
/* ─── Shared Accordion (Language + Profiles) ─── */
|
|
7781
7516
|
.accessify-lang-dropdown,
|
|
@@ -7786,7 +7521,6 @@ function createWidgetStyles(config2) {
|
|
|
7786
7521
|
}
|
|
7787
7522
|
|
|
7788
7523
|
.accessify-lang-toggle,
|
|
7789
|
-
.accessify-translate-toggle,
|
|
7790
7524
|
.accessify-accordion-toggle {
|
|
7791
7525
|
display: flex; align-items: center; justify-content: space-between;
|
|
7792
7526
|
width: 100%; padding: 14px 14px;
|
|
@@ -7796,32 +7530,8 @@ function createWidgetStyles(config2) {
|
|
|
7796
7530
|
transition: background var(--fast);
|
|
7797
7531
|
}
|
|
7798
7532
|
.accessify-lang-toggle:hover,
|
|
7799
|
-
.accessify-translate-toggle:hover,
|
|
7800
7533
|
.accessify-accordion-toggle:hover { background: var(--surface-hover); }
|
|
7801
7534
|
|
|
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
|
-
|
|
7825
7535
|
.accessify-lang-toggle-left,
|
|
7826
7536
|
.accessify-accordion-toggle-left {
|
|
7827
7537
|
display: flex; align-items: center; gap: 10px;
|
|
@@ -7858,7 +7568,7 @@ function createWidgetStyles(config2) {
|
|
|
7858
7568
|
color: var(--text); cursor: pointer;
|
|
7859
7569
|
font-size: 14px; font-weight: 500; font-family: inherit;
|
|
7860
7570
|
transition: background var(--fast);
|
|
7861
|
-
min-height: 44px;
|
|
7571
|
+
min-height: 44px;
|
|
7862
7572
|
}
|
|
7863
7573
|
.accessify-lang-option:hover { background: var(--surface-hover); }
|
|
7864
7574
|
.accessify-lang-option[data-active="true"] { color: var(--accent); font-weight: 700; }
|
|
@@ -8037,37 +7747,33 @@ function createWidgetStyles(config2) {
|
|
|
8037
7747
|
flex-shrink: 0;
|
|
8038
7748
|
}
|
|
8039
7749
|
|
|
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
|
-
|
|
8060
7750
|
/* ─── Footer ─── */
|
|
8061
7751
|
.accessify-footer {
|
|
8062
|
-
display: flex; align-items: center; justify-content:
|
|
8063
|
-
padding:
|
|
7752
|
+
display: flex; align-items: center; justify-content: space-between;
|
|
7753
|
+
padding: 10px var(--pad);
|
|
8064
7754
|
border-top: 1px solid var(--border);
|
|
8065
7755
|
color: var(--text-dim); font-size: 11px;
|
|
8066
7756
|
background: var(--surface-dim); flex-shrink: 0;
|
|
7757
|
+
gap: 8px;
|
|
7758
|
+
}
|
|
7759
|
+
.accessify-footer-links {
|
|
7760
|
+
display: flex; align-items: center; gap: 8px;
|
|
8067
7761
|
}
|
|
8068
7762
|
.accessify-footer a { color: var(--accent); text-decoration: none; font-weight: 600; }
|
|
8069
7763
|
.accessify-footer a:hover { text-decoration: underline; }
|
|
8070
7764
|
|
|
7765
|
+
.accessify-footer-close {
|
|
7766
|
+
display: inline-flex; align-items: center; gap: 5px;
|
|
7767
|
+
padding: 6px 14px; min-height: 34px;
|
|
7768
|
+
border: 1px solid var(--border); border-radius: 10px;
|
|
7769
|
+
background: var(--surface); color: var(--text-dim);
|
|
7770
|
+
cursor: pointer; font-size: 12px; font-weight: 600; font-family: inherit;
|
|
7771
|
+
transition: background var(--fast), color var(--fast), border-color var(--fast);
|
|
7772
|
+
flex-shrink: 0;
|
|
7773
|
+
}
|
|
7774
|
+
.accessify-footer-close:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft); }
|
|
7775
|
+
.accessify-footer-close svg { width: 14px; height: 14px; flex-shrink: 0; }
|
|
7776
|
+
|
|
8071
7777
|
/* ─── Reduced Motion ─── */
|
|
8072
7778
|
@media (prefers-reduced-motion: reduce) {
|
|
8073
7779
|
*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
|
|
@@ -8076,7 +7782,6 @@ function createWidgetStyles(config2) {
|
|
|
8076
7782
|
/* ─── Mobile ─── */
|
|
8077
7783
|
@media (max-width: 640px) {
|
|
8078
7784
|
.accessify-panel { width: 100vw; border-radius: 0; }
|
|
8079
|
-
.accessify-panel--left { border-radius: 0; }
|
|
8080
7785
|
.accessify-features { gap: 8px; }
|
|
8081
7786
|
.accessify-body { padding: 8px 12px; }
|
|
8082
7787
|
.accessify-trigger {
|
|
@@ -8084,7 +7789,6 @@ function createWidgetStyles(config2) {
|
|
|
8084
7789
|
${isRight ? "right: 16px" : "left: 16px"};
|
|
8085
7790
|
width: 50px; height: 50px; border-radius: 14px;
|
|
8086
7791
|
}
|
|
8087
|
-
.accessify-dock-group { display: none; }
|
|
8088
7792
|
}
|
|
8089
7793
|
`;
|
|
8090
7794
|
}
|
|
@@ -8464,7 +8168,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8464
8168
|
styleEl = null;
|
|
8465
8169
|
document.getElementById(STYLE_ID)?.remove();
|
|
8466
8170
|
}
|
|
8467
|
-
function showDescribeTooltip(
|
|
8171
|
+
function showDescribeTooltip(text, rect, loading = false) {
|
|
8468
8172
|
hideDescribeTooltip();
|
|
8469
8173
|
const tip = document.createElement("div");
|
|
8470
8174
|
tip.className = "accessify-describe-tooltip";
|
|
@@ -8484,7 +8188,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8484
8188
|
tip.appendChild(loadingEl);
|
|
8485
8189
|
} else {
|
|
8486
8190
|
const textEl = document.createElement("div");
|
|
8487
|
-
textEl.textContent =
|
|
8191
|
+
textEl.textContent = text;
|
|
8488
8192
|
tip.appendChild(textEl);
|
|
8489
8193
|
}
|
|
8490
8194
|
document.body.appendChild(tip);
|
|
@@ -8780,7 +8484,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8780
8484
|
);
|
|
8781
8485
|
}
|
|
8782
8486
|
}
|
|
8783
|
-
function showBadge(
|
|
8487
|
+
function showBadge(text, color, count) {
|
|
8784
8488
|
const badge = document.createElement("div");
|
|
8785
8489
|
badge.className = "accessify-alt-badge";
|
|
8786
8490
|
badge.setAttribute("role", "status");
|
|
@@ -8793,7 +8497,7 @@ function createAltTextModule(aiService, initialLang = "de", serverConfig) {
|
|
|
8793
8497
|
badge.appendChild(c);
|
|
8794
8498
|
}
|
|
8795
8499
|
const label = document.createElement("span");
|
|
8796
|
-
label.textContent =
|
|
8500
|
+
label.textContent = text;
|
|
8797
8501
|
badge.appendChild(label);
|
|
8798
8502
|
document.body.appendChild(badge);
|
|
8799
8503
|
badgeEl = badge;
|
|
@@ -9092,4 +8796,4 @@ export {
|
|
|
9092
8796
|
init as i,
|
|
9093
8797
|
t
|
|
9094
8798
|
};
|
|
9095
|
-
//# sourceMappingURL=index-
|
|
8799
|
+
//# sourceMappingURL=index-CFoky8Ty.js.map
|