@bauer-group/accessibility-widget 1.0.3
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/LICENSE +21 -0
- package/README.md +259 -0
- package/dist/accessibility-widget-core.min.js +6 -0
- package/dist/accessibility-widget-core.min.js.map +7 -0
- package/dist/accessibility-widget-loader.min.js +14 -0
- package/dist/accessibility-widget-loader.min.js.map +7 -0
- package/dist/accessibility-widget.min.css +7 -0
- package/dist/accessibility-widget.min.css.map +7 -0
- package/dist/config.d.ts +33 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/core.d.ts +31 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/features/apply.d.ts +3 -0
- package/dist/features/apply.d.ts.map +1 -0
- package/dist/features/profile.d.ts +3 -0
- package/dist/features/profile.d.ts.map +1 -0
- package/dist/features/reading-guide.d.ts +2 -0
- package/dist/features/reading-guide.d.ts.map +1 -0
- package/dist/features/reading-mask.d.ts +2 -0
- package/dist/features/reading-mask.d.ts.map +1 -0
- package/dist/features/structure-nav.d.ts +2 -0
- package/dist/features/structure-nav.d.ts.map +1 -0
- package/dist/features/tts.d.ts +7 -0
- package/dist/features/tts.d.ts.map +1 -0
- package/dist/focus-trap.d.ts +6 -0
- package/dist/focus-trap.d.ts.map +1 -0
- package/dist/i18n/ar.d.ts +3 -0
- package/dist/i18n/ar.d.ts.map +1 -0
- package/dist/i18n/bn.d.ts +3 -0
- package/dist/i18n/bn.d.ts.map +1 -0
- package/dist/i18n/cs.d.ts +3 -0
- package/dist/i18n/cs.d.ts.map +1 -0
- package/dist/i18n/de.d.ts +3 -0
- package/dist/i18n/de.d.ts.map +1 -0
- package/dist/i18n/el.d.ts +3 -0
- package/dist/i18n/el.d.ts.map +1 -0
- package/dist/i18n/en.d.ts +3 -0
- package/dist/i18n/en.d.ts.map +1 -0
- package/dist/i18n/es.d.ts +3 -0
- package/dist/i18n/es.d.ts.map +1 -0
- package/dist/i18n/fa.d.ts +3 -0
- package/dist/i18n/fa.d.ts.map +1 -0
- package/dist/i18n/fr.d.ts +3 -0
- package/dist/i18n/fr.d.ts.map +1 -0
- package/dist/i18n/he.d.ts +3 -0
- package/dist/i18n/he.d.ts.map +1 -0
- package/dist/i18n/hi.d.ts +3 -0
- package/dist/i18n/hi.d.ts.map +1 -0
- package/dist/i18n/hu.d.ts +3 -0
- package/dist/i18n/hu.d.ts.map +1 -0
- package/dist/i18n/id.d.ts +3 -0
- package/dist/i18n/id.d.ts.map +1 -0
- package/dist/i18n/index.d.ts +6 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/it.d.ts +3 -0
- package/dist/i18n/it.d.ts.map +1 -0
- package/dist/i18n/ja.d.ts +3 -0
- package/dist/i18n/ja.d.ts.map +1 -0
- package/dist/i18n/ko.d.ts +3 -0
- package/dist/i18n/ko.d.ts.map +1 -0
- package/dist/i18n/nl.d.ts +3 -0
- package/dist/i18n/nl.d.ts.map +1 -0
- package/dist/i18n/pl.d.ts +3 -0
- package/dist/i18n/pl.d.ts.map +1 -0
- package/dist/i18n/pt.d.ts +3 -0
- package/dist/i18n/pt.d.ts.map +1 -0
- package/dist/i18n/ro.d.ts +3 -0
- package/dist/i18n/ro.d.ts.map +1 -0
- package/dist/i18n/ru.d.ts +3 -0
- package/dist/i18n/ru.d.ts.map +1 -0
- package/dist/i18n/sv.d.ts +3 -0
- package/dist/i18n/sv.d.ts.map +1 -0
- package/dist/i18n/th.d.ts +3 -0
- package/dist/i18n/th.d.ts.map +1 -0
- package/dist/i18n/tr.d.ts +3 -0
- package/dist/i18n/tr.d.ts.map +1 -0
- package/dist/i18n/types.d.ts +44 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/uk.d.ts +3 -0
- package/dist/i18n/uk.d.ts.map +1 -0
- package/dist/i18n/ur.d.ts +3 -0
- package/dist/i18n/ur.d.ts.map +1 -0
- package/dist/i18n/vi.d.ts +3 -0
- package/dist/i18n/vi.d.ts.map +1 -0
- package/dist/i18n/zh.d.ts +3 -0
- package/dist/i18n/zh.d.ts.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/integrity.json +9 -0
- package/dist/integrity.txt +12 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/panel/drag.d.ts +34 -0
- package/dist/panel/drag.d.ts.map +1 -0
- package/dist/panel/panel.d.ts +23 -0
- package/dist/panel/panel.d.ts.map +1 -0
- package/dist/state.d.ts +18 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/styles/critical.d.ts +16 -0
- package/dist/styles/critical.d.ts.map +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/locale.d.ts +11 -0
- package/dist/types/locale.d.ts.map +1 -0
- package/dist/types/widget.d.ts +207 -0
- package/dist/types/widget.d.ts.map +1 -0
- package/dist/util/debug.d.ts +8 -0
- package/dist/util/debug.d.ts.map +1 -0
- package/dist/util/dom.d.ts +19 -0
- package/dist/util/dom.d.ts.map +1 -0
- package/dist/util/events.d.ts +38 -0
- package/dist/util/events.d.ts.map +1 -0
- package/dist/util/feature-icons.d.ts +33 -0
- package/dist/util/feature-icons.d.ts.map +1 -0
- package/dist/util/language-names.d.ts +12 -0
- package/dist/util/language-names.d.ts.map +1 -0
- package/dist/util/svg.d.ts +38 -0
- package/dist/util/svg.d.ts.map +1 -0
- package/package.json +67 -0
- package/src/config.ts +213 -0
- package/src/core.ts +173 -0
- package/src/features/apply.ts +37 -0
- package/src/features/profile.ts +18 -0
- package/src/features/reading-guide.ts +25 -0
- package/src/features/reading-mask.ts +25 -0
- package/src/features/structure-nav.ts +43 -0
- package/src/features/tts.ts +73 -0
- package/src/focus-trap.ts +35 -0
- package/src/globals.d.ts +63 -0
- package/src/i18n/ar.ts +48 -0
- package/src/i18n/bn.ts +48 -0
- package/src/i18n/cs.ts +48 -0
- package/src/i18n/de.ts +65 -0
- package/src/i18n/el.ts +48 -0
- package/src/i18n/en.ts +65 -0
- package/src/i18n/es.ts +48 -0
- package/src/i18n/fa.ts +48 -0
- package/src/i18n/fr.ts +48 -0
- package/src/i18n/he.ts +48 -0
- package/src/i18n/hi.ts +48 -0
- package/src/i18n/hu.ts +48 -0
- package/src/i18n/id.ts +48 -0
- package/src/i18n/index.ts +70 -0
- package/src/i18n/it.ts +48 -0
- package/src/i18n/ja.ts +48 -0
- package/src/i18n/ko.ts +48 -0
- package/src/i18n/nl.ts +48 -0
- package/src/i18n/pl.ts +48 -0
- package/src/i18n/pt.ts +48 -0
- package/src/i18n/ro.ts +48 -0
- package/src/i18n/ru.ts +48 -0
- package/src/i18n/sv.ts +48 -0
- package/src/i18n/th.ts +48 -0
- package/src/i18n/tr.ts +48 -0
- package/src/i18n/types.ts +36 -0
- package/src/i18n/uk.ts +48 -0
- package/src/i18n/ur.ts +48 -0
- package/src/i18n/vi.ts +48 -0
- package/src/i18n/zh.ts +48 -0
- package/src/index.ts +9 -0
- package/src/loader.ts +533 -0
- package/src/panel/drag.ts +210 -0
- package/src/panel/panel.ts +617 -0
- package/src/state.ts +91 -0
- package/src/styles/critical.ts +56 -0
- package/src/styles/widget.css +739 -0
- package/src/types/index.ts +2 -0
- package/src/types/locale.ts +55 -0
- package/src/types/widget.ts +300 -0
- package/src/util/debug.ts +12 -0
- package/src/util/dom.ts +68 -0
- package/src/util/events.ts +54 -0
- package/src/util/feature-icons.ts +163 -0
- package/src/util/language-names.ts +41 -0
- package/src/util/svg.ts +93 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";(()=>{function C(t){let{primaryColor:i,hideOnPrint:e,offsetX:n,offsetY:s,zIndex:u}=t;return`html[data-aw-instant]{--aw-font-scale:1;--aw-line-height:1.5;--aw-letter-spacing:0em}html[data-aw-instant] body,html[data-aw-instant] p,html[data-aw-instant] li,html[data-aw-instant] td,html[data-aw-instant] span,html[data-aw-instant] a,html[data-aw-instant] button,html[data-aw-instant] input,html[data-aw-instant] textarea{font-size:calc(1em * var(--aw-font-scale));line-height:var(--aw-line-height);letter-spacing:var(--aw-letter-spacing)}html[data-aw-contrast="high"]{filter:contrast(1.35)}html[data-aw-contrast="dark"]{filter:invert(1) hue-rotate(180deg)}html[data-aw-contrast="dark"] img,html[data-aw-contrast="dark"] video,html[data-aw-contrast="dark"] picture{filter:invert(1) hue-rotate(180deg)}html[data-aw-contrast="invert"]{filter:invert(1) hue-rotate(180deg)}html[data-aw-grayscale]{filter:grayscale(1)}html[data-aw-invert]{filter:invert(1) hue-rotate(180deg)}html[data-aw-invert] img,html[data-aw-invert] video{filter:invert(1) hue-rotate(180deg)}html[data-aw-dyslexia] *{font-family:"OpenDyslexic","Comic Sans MS",sans-serif!important}html[data-aw-highlight-links] a{text-decoration:underline!important;outline:2px solid #ffeb3b!important;background:#fffde7!important;color:#000!important}html[data-aw-pause-animations] *,html[data-aw-pause-animations] *::before,html[data-aw-pause-animations] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}html[data-aw-big-cursor],html[data-aw-big-cursor] *{cursor:url("data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%2248%22 height=%2248%22 viewBox=%220 0 48 48%22><path d=%22M6 4 L42 24 L26 28 L22 44 Z%22 fill=%22%23000%22 stroke=%22%23fff%22 stroke-width=%222%22/></svg>") 0 0,auto!important}html[data-aw-focus] *:focus,html[data-aw-focus] *:focus-visible{outline:4px solid #ff6a00!important;outline-offset:2px!important}.aw-fab{position:fixed;width:48px;height:48px;border-radius:50%;background:${i};color:#fff;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:${u};padding:0;transition:transform .15s}.aw-fab:hover,.aw-fab:focus-visible{outline:3px solid #ff6a00;outline-offset:2px;transform:scale(1.05)}.aw-fab svg{width:28px;height:28px;fill:currentColor}.aw-fab--bottom-right{bottom:${s}px;right:${n}px}.aw-fab--bottom-left{bottom:${s}px;left:${n}px}.aw-fab--top-right{top:${s}px;right:${n}px}.aw-fab--top-left{top:${s}px;left:${n}px}.aw-fab[data-aw-fab-pos="custom"]{top:var(--aw-fab-y)!important;left:var(--aw-fab-x)!important;right:auto!important;bottom:auto!important}`+(e?"@media print{.aw-fab{display:none!important}}":"")+"@media (prefers-reduced-motion:reduce){.aw-fab{transition:none}}"}var L="accessibility-widget:";function m(t,i){if(typeof document=="undefined")return()=>{};let e=n=>{i(n.detail)};return document.addEventListener(L+t,e),()=>document.removeEventListener(L+t,e)}/*!
|
|
2
|
+
* BAUER GROUP Accessibility Widget — Loader (IIFE, ~4 KB gzip)
|
|
3
|
+
* SPDX-License-Identifier: AGPL-3.0-only · © 2026 BAUER GROUP
|
|
4
|
+
* AGPL-3.0-only or commercial (info@bauer-group.com) — see LICENSE / LICENSING.md
|
|
5
|
+
*
|
|
6
|
+
* Responsibilities:
|
|
7
|
+
* 1. Read persisted preferences and apply them BEFORE first paint (no FOUAC).
|
|
8
|
+
* 2. Inject critical CSS for data-attribute based features.
|
|
9
|
+
* 3. Render the FAB (Floating Action Button).
|
|
10
|
+
* 4. Lazy-load the core bundle on first user intent (click / keyboard shortcut).
|
|
11
|
+
*
|
|
12
|
+
* Does NOT import from /shared — everything must be inlined to keep the bundle tiny.
|
|
13
|
+
*/var E,o=(E=window.AccessibilityWidgetConfig)!=null?E:{},P,k,I,W,M,F,N,K,O,z,B,R,$,_,a={corePath:(P=o.corePath)!=null?P:"/accessibility-widget/accessibility-widget-core.min.js",cssPath:(k=o.cssPath)!=null?k:"/accessibility-widget/accessibility-widget.min.css",position:(I=o.position)!=null?I:"bottom-right",offset:{x:Number.isFinite((W=o.offset)==null?void 0:W.x)?o.offset.x:20,y:Number.isFinite((M=o.offset)==null?void 0:M.y)?o.offset.y:20},zIndex:Number.isFinite(o.zIndex)?o.zIndex:2147483646,storageKey:(F=o.storageKey)!=null?F:"accessibility-widget",draggableFab:!!o.draggableFab,respectReducedMotion:(N=o.respectReducedMotion)!=null?N:!0,primaryColor:(K=o.primaryColor)!=null?K:"#0058a3",hideOnPrint:(O=o.hideOnPrint)!=null?O:!0,debug:!!o.debug,locale:(z=o.locale)!=null?z:"auto",coreIntegrity:(B=o.coreIntegrity)!=null?B:null,cssIntegrity:(R=o.cssIntegrity)!=null?R:null,buttonLabel:($=o.buttonLabel)!=null?$:null,initialFeatures:(_=o.initialFeatures)!=null?_:null,keyboardShortcut:o.keyboardShortcut===void 0?"ctrl+alt+a":o.keyboardShortcut};function H(t){if(!t)return null;let i={alt:!1,ctrl:!1,shift:!1,meta:!1,key:""};for(let e of t.toLowerCase().split("+"))if(e==="alt"||e==="ctrl"||e==="shift"||e==="meta")i[e]=!0;else if(e&&!i.key)i.key=e;else if(e)return null;return i.key?i:null}var D={de:"Barrierefreiheit einstellen",en:"Accessibility settings",fr:"R\xE9glages d\u2019accessibilit\xE9",es:"Ajustes de accesibilidad",it:"Impostazioni di accessibilit\xE0",pl:"Ustawienia dost\u0119pno\u015Bci",tr:"Eri\u015Filebilirlik ayarlar\u0131",ar:"\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0625\u0645\u0643\u0627\u0646\u064A\u0629 \u0627\u0644\u0648\u0635\u0648\u0644",zh:"\u65E0\u969C\u788D\u8BBE\u7F6E",hi:"\u0938\u0941\u0917\u092E\u094D\u092F\u0924\u093E \u0938\u0947\u091F\u093F\u0902\u0917\u094D\u0938",pt:"Defini\xE7\xF5es de acessibilidade",bn:"\u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u09AF\u09CB\u0997\u09CD\u09AF\u09A4\u09BE \u09B8\u09C7\u099F\u09BF\u0982\u09B8",ru:"\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0438",ja:"\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u8A2D\u5B9A",ko:"\uC811\uADFC\uC131 \uC124\uC815",vi:"C\xE0i \u0111\u1EB7t tr\u1EE3 n\u0103ng",fa:"\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u062F\u0633\u062A\u0631\u0633\u200C\u067E\u0630\u06CC\u0631\u06CC",ur:"\u0631\u0633\u0627\u0626\u06CC \u06A9\u06CC \u062A\u0631\u062A\u06CC\u0628\u0627\u062A",th:"\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07",id:"Pengaturan aksesibilitas",he:"\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA",nl:"Toegankelijkheidsinstellingen",sv:"Tillg\xE4nglighetsinst\xE4llningar",cs:"Nastaven\xED p\u0159\xEDstupnosti",el:"\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C0\u03C1\u03BF\u03C3\u03B2\u03B1\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2",hu:"Akad\xE1lymentess\xE9gi be\xE1ll\xEDt\xE1sok",ro:"Set\u0103ri de accesibilitate",uk:"\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0456"};window.__accessibilityWidgetLoaded||(window.__accessibilityWidgetLoaded=!0,document.readyState==="loading"?document.addEventListener("DOMContentLoaded",S,{once:!0}):S());function S(){q(),J(),X(),Y(),T()&&(i=>{let e=window;typeof e.requestIdleCallback=="function"?e.requestIdleCallback(i,{timeout:2e3}):setTimeout(i,1e3)})(()=>{f().catch(()=>{})})}function j(){var n,s;let t=(n=p())==null?void 0:n.locale;if(typeof t=="string"&&A(t))return t;if(a.locale!=="auto")return a.locale;let e=((document.documentElement.lang||"").toLowerCase()||((s=navigator.language)!=null?s:"en").toLowerCase()).split(/[-_]/)[0];return A(e)?e:"de"}function A(t){return!!t&&t in D}function p(){try{let t=localStorage.getItem(a.storageKey);return t?JSON.parse(t):null}catch(t){return a.debug&&console.warn("[aw] loader.readState failed",t),null}}function T(){let t=p();return!!(t!=null&&t.features&&Object.values(t.features).some(Boolean))}function J(){if(!a.initialFeatures)return;let t;try{t=localStorage.getItem(a.storageKey)}catch(n){return}if(t)return;let i={};for(let[n,s]of Object.entries(a.initialFeatures))i[n]=!!s;let e={features:i,fontSizeLevel:1,lineHeightLevel:1.5,letterSpacingLevel:0,contrastMode:"off"};try{localStorage.setItem(a.storageKey,JSON.stringify(e))}catch(n){a.debug&&console.warn("[aw] loader.seedInitialFeatures failed",n)}}function X(){var n;let t=p();if(!(t!=null&&t.features))return;let i=document.documentElement;i.setAttribute("data-aw-instant","1"),typeof t.fontSizeLevel=="number"&&i.style.setProperty("--aw-font-scale",String(t.fontSizeLevel)),typeof t.lineHeightLevel=="number"&&i.style.setProperty("--aw-line-height",String(t.lineHeightLevel)),typeof t.letterSpacingLevel=="number"&&i.style.setProperty("--aw-letter-spacing",`${t.letterSpacingLevel}em`);let e=t.features;e.contrast&&i.setAttribute("data-aw-contrast",(n=t.contrastMode)!=null?n:"high"),e.grayscale&&i.setAttribute("data-aw-grayscale","1"),e.invertColors&&i.setAttribute("data-aw-invert","1"),e.dyslexiaFont&&i.setAttribute("data-aw-dyslexia","1"),e.highlightLinks&&i.setAttribute("data-aw-highlight-links","1"),e.pauseAnimations&&i.setAttribute("data-aw-pause-animations","1"),e.bigCursor&&i.setAttribute("data-aw-big-cursor","1"),e.focusOutline&&i.setAttribute("data-aw-focus","1")}function q(){var e;if(document.getElementById("aw-critical-css"))return;let t=C({primaryColor:a.primaryColor,hideOnPrint:a.hideOnPrint,offsetX:a.offset.x,offsetY:a.offset.y,zIndex:a.zIndex}),i=document.createElement("style");i.id="aw-critical-css",i.textContent=t,((e=document.head)!=null?e:document.documentElement).appendChild(i)}function Y(){var g;let t=j(),i=(g=a.buttonLabel)!=null?g:D[t],e=document.createElement("button");e.type="button",e.className=`aw-fab aw-fab--${a.position}`,e.setAttribute("aria-label",i),e.setAttribute("aria-haspopup","dialog"),e.setAttribute("aria-controls","aw-panel"),e.setAttribute("aria-expanded","false"),e.setAttribute("data-aw-fab","1");let n="http://www.w3.org/2000/svg",s=document.createElementNS(n,"svg");s.setAttribute("viewBox","0 0 24 24"),s.setAttribute("aria-hidden","true"),s.setAttribute("focusable","false");let u=document.createElementNS(n,"path");u.setAttribute("d","M12 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm-6 5 6 2 6-2 .5 1.8L13 10.2v3.2l3.2 7.4-1.7.8L12 15l-2.5 6.6-1.7-.8L11 13.4V10.2L5.5 8.8 6 7z"),u.setAttribute("fill","currentColor"),s.appendChild(u),e.appendChild(s),e.addEventListener("click",r=>{var l;if(r.preventDefault(),e.getAttribute("aria-expanded")==="true"){(l=window.AccessibilityWidgetCore)==null||l.close();return}e.disabled=!0,e.setAttribute("aria-busy","true"),f().then(d=>{e.disabled=!1,e.removeAttribute("aria-busy"),e.setAttribute("aria-expanded","true"),d.open({trigger:e,config:window.AccessibilityWidgetConfig})}).catch(d=>{e.disabled=!1,e.removeAttribute("aria-busy"),a.debug&&console.error("[aw] Core load failed:",d)})}),m("close",()=>{e.setAttribute("aria-expanded","false")}),m("open",()=>{e.setAttribute("aria-expanded","true")});let c=H(a.keyboardShortcut);!c&&a.debug&&a.keyboardShortcut!==!1&&console.warn(`[aw] invalid keyboardShortcut: ${a.keyboardShortcut}`),c&&document.addEventListener("keydown",r=>{r.altKey===c.alt&&r.ctrlKey===c.ctrl&&r.shiftKey===c.shift&&r.metaKey===c.meta&&r.key.toLowerCase()===c.key&&(r.preventDefault(),e.click())}),a.draggableFab&&(V(e),U(e)),document.body.appendChild(e)}function U(t){var e;let i=(e=p())==null?void 0:e.fabPosition;i&&Number.isFinite(i.x)&&Number.isFinite(i.y)&&h(t,i.x,i.y)}function h(t,i,e){let s=Math.min(Math.max(0,i),Math.max(0,window.innerWidth-48)),u=Math.min(Math.max(0,e),Math.max(0,window.innerHeight-48));t.setAttribute("data-aw-fab-pos","custom"),t.style.setProperty("--aw-fab-x",s+"px"),t.style.setProperty("--aw-fab-y",u+"px")}function y(t,i){try{let e=localStorage.getItem(a.storageKey),n=e?JSON.parse(e):{};n.fabPosition={x:t,y:i},localStorage.setItem(a.storageKey,JSON.stringify(n))}catch(e){a.debug&&console.warn("[aw] persistFab failed",e)}}function V(t){t.style.touchAction="none",t.style.cursor="grab";let i=-1,e=0,n=0,s=0,u=0,c=!1;t.addEventListener("pointerdown",r=>{if(r.button!==0&&r.pointerType!=="touch")return;i=r.pointerId,e=r.clientX,n=r.clientY;let l=t.getBoundingClientRect();s=l.left,u=l.top,c=!1;try{t.setPointerCapture(i)}catch(d){}}),t.addEventListener("pointermove",r=>{if(i!==r.pointerId)return;let l=r.clientX-e,d=r.clientY-n;!c&&Math.hypot(l,d)<5||(c=!0,r.preventDefault(),h(t,s+l,u+d))});let g=r=>{if(i===r.pointerId){try{t.releasePointerCapture(i)}catch(l){}if(i=-1,c){let l=t.getBoundingClientRect();y(l.left,l.top),t.addEventListener("click",d=>{d.stopPropagation(),d.preventDefault()},{capture:!0,once:!0})}}};t.addEventListener("pointerup",g),t.addEventListener("pointercancel",g),t.addEventListener("keydown",r=>{if(!r.shiftKey)return;let l=r.key,d=l==="ArrowLeft"?-10:l==="ArrowRight"?10:0,w=l==="ArrowUp"?-10:l==="ArrowDown"?10:0;if(!d&&!w)return;r.preventDefault();let v=t.getBoundingClientRect();h(t,v.left+d,v.top+w);let x=t.getBoundingClientRect();y(x.left,x.top)})}var b=null;function f(){if(b)return b;if(a.cssPath&&!document.querySelector("link[data-aw-css]")){let t=document.createElement("link");t.rel="stylesheet",t.href=a.cssPath,t.setAttribute("data-aw-css","1"),a.cssIntegrity&&(t.integrity=a.cssIntegrity,t.crossOrigin="anonymous"),document.head.appendChild(t)}return b=new Promise((t,i)=>{let e=document.createElement("script");e.src=a.corePath,e.async=!0,e.defer=!0,a.coreIntegrity&&(e.integrity=a.coreIntegrity,e.crossOrigin="anonymous"),e.onload=()=>{window.AccessibilityWidgetCore?t(window.AccessibilityWidgetCore):i(new Error("Core loaded but AccessibilityWidgetCore is undefined"))},e.onerror=()=>i(new Error(`Failed to load ${a.corePath}`)),document.head.appendChild(e)}),b}var Z={open(t){return f().then(i=>i.open(t!=null?t:{}))},close(){var t;(t=window.AccessibilityWidgetCore)==null||t.close()},reset(){try{localStorage.removeItem(a.storageKey)}catch(t){a.debug&&console.warn("[aw] loader.reset clear failed",t)}location.reload()},set(t,i){return f().then(e=>e.set(t,i))},applyProfile(t){return f().then(i=>i.applyProfile(t))},setLocale(t){return f().then(i=>i.setLocale(t))},setPosition(t){let i=document.querySelector("[data-aw-fab]");if(i){if(t===null){i.removeAttribute("data-aw-fab-pos"),i.style.removeProperty("--aw-fab-x"),i.style.removeProperty("--aw-fab-y");try{let e=localStorage.getItem(a.storageKey);if(e){let n=JSON.parse(e);delete n.fabPosition,localStorage.setItem(a.storageKey,JSON.stringify(n))}}catch(e){a.debug&&console.warn("[aw] setPosition(null) clear failed",e)}return}if(!Number.isFinite(t.x)||!Number.isFinite(t.y)){a.debug&&console.warn("[aw] setPosition: x and y must be finite numbers");return}h(i,t.x,t.y),y(t.x,t.y)}},getState(){return p()},on(t,i){return m(t,i)},version:"1.0.3"};window.AccessibilityWidget=Z;})();
|
|
14
|
+
//# sourceMappingURL=accessibility-widget-loader.min.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/styles/critical.ts", "../src/util/events.ts", "../src/loader.ts"],
|
|
4
|
+
"sourcesContent": ["/**\n * Critical CSS inlined by the loader. Kept minimal so the loader stays ~4 KB gzip.\n * Uses only `data-aw-*` attributes on <html>, never touches host DOM.\n *\n * The primaryColor + offset + zIndex are interpolated at runtime so brands\n * can theme and layout without a build step.\n */\nexport interface CriticalCssOptions {\n primaryColor: string;\n hideOnPrint: boolean;\n offsetX: number;\n offsetY: number;\n zIndex: number;\n}\n\nexport function buildCriticalCss(opts: CriticalCssOptions): string {\n const { primaryColor, hideOnPrint, offsetX, offsetY, zIndex } = opts;\n return (\n // base CSS variables\n 'html[data-aw-instant]{--aw-font-scale:1;--aw-line-height:1.5;--aw-letter-spacing:0em}' +\n // typography applied via rem-safe inheritance\n 'html[data-aw-instant] body,html[data-aw-instant] p,html[data-aw-instant] li,html[data-aw-instant] td,html[data-aw-instant] span,html[data-aw-instant] a,html[data-aw-instant] button,html[data-aw-instant] input,html[data-aw-instant] textarea{font-size:calc(1em * var(--aw-font-scale));line-height:var(--aw-line-height);letter-spacing:var(--aw-letter-spacing)}' +\n // contrast modes (filter-only \u2014 no DOM mutation)\n 'html[data-aw-contrast=\"high\"]{filter:contrast(1.35)}' +\n 'html[data-aw-contrast=\"dark\"]{filter:invert(1) hue-rotate(180deg)}' +\n 'html[data-aw-contrast=\"dark\"] img,html[data-aw-contrast=\"dark\"] video,html[data-aw-contrast=\"dark\"] picture{filter:invert(1) hue-rotate(180deg)}' +\n 'html[data-aw-contrast=\"invert\"]{filter:invert(1) hue-rotate(180deg)}' +\n 'html[data-aw-grayscale]{filter:grayscale(1)}' +\n 'html[data-aw-invert]{filter:invert(1) hue-rotate(180deg)}' +\n 'html[data-aw-invert] img,html[data-aw-invert] video{filter:invert(1) hue-rotate(180deg)}' +\n // dyslexia\n 'html[data-aw-dyslexia] *{font-family:\"OpenDyslexic\",\"Comic Sans MS\",sans-serif!important}' +\n // links\n 'html[data-aw-highlight-links] a{text-decoration:underline!important;outline:2px solid #ffeb3b!important;background:#fffde7!important;color:#000!important}' +\n // motion\n 'html[data-aw-pause-animations] *,html[data-aw-pause-animations] *::before,html[data-aw-pause-animations] *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}' +\n // big cursor (embedded SVG \u2014 no extra request)\n 'html[data-aw-big-cursor],html[data-aw-big-cursor] *{cursor:url(\"data:image/svg+xml;utf8,<svg xmlns=%22http://www.w3.org/2000/svg%22 width=%2248%22 height=%2248%22 viewBox=%220 0 48 48%22><path d=%22M6 4 L42 24 L26 28 L22 44 Z%22 fill=%22%23000%22 stroke=%22%23fff%22 stroke-width=%222%22/></svg>\") 0 0,auto!important}' +\n // thick focus\n 'html[data-aw-focus] *:focus,html[data-aw-focus] *:focus-visible{outline:4px solid #ff6a00!important;outline-offset:2px!important}' +\n // FAB\n `.aw-fab{position:fixed;width:48px;height:48px;border-radius:50%;background:${primaryColor};color:#fff;border:2px solid #fff;box-shadow:0 4px 12px rgba(0,0,0,.25);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:${zIndex};padding:0;transition:transform .15s}` +\n '.aw-fab:hover,.aw-fab:focus-visible{outline:3px solid #ff6a00;outline-offset:2px;transform:scale(1.05)}' +\n '.aw-fab svg{width:28px;height:28px;fill:currentColor}' +\n `.aw-fab--bottom-right{bottom:${offsetY}px;right:${offsetX}px}` +\n `.aw-fab--bottom-left{bottom:${offsetY}px;left:${offsetX}px}` +\n `.aw-fab--top-right{top:${offsetY}px;right:${offsetX}px}` +\n `.aw-fab--top-left{top:${offsetY}px;left:${offsetX}px}` +\n // Drag: when data-aw-fab-pos=custom, ignore corner-based anchoring and\n // honor the inline --aw-fab-x / --aw-fab-y custom properties set by\n // the loader. Explicit unsets override the corner-class rules above.\n '.aw-fab[data-aw-fab-pos=\"custom\"]{top:var(--aw-fab-y)!important;left:var(--aw-fab-x)!important;right:auto!important;bottom:auto!important}' +\n (hideOnPrint ? '@media print{.aw-fab{display:none!important}}' : '') +\n '@media (prefers-reduced-motion:reduce){.aw-fab{transition:none}}'\n );\n}\n", "import type { Locale, ProfileId, WidgetState } from '../types/index.js';\n\n/**\n * Public event map. Events are dispatched as `CustomEvent` on `document`\n * under the prefixed type name (`accessibility-widget:<name>`). Using\n * the DOM event system keeps loader and core decoupled \u2014 neither needs\n * to share a listener registry.\n */\nexport interface WidgetEventMap {\n stateChange: { state: WidgetState };\n open: { trigger?: HTMLElement | null };\n close: Record<string, never>;\n profileApplied: { profile: ProfileId; state: WidgetState };\n localeChanged: { locale: Locale };\n reset: Record<string, never>;\n}\n\nexport type WidgetEventName = keyof WidgetEventMap;\n\nconst PREFIX = 'accessibility-widget:';\n\nexport function dispatchWidgetEvent<K extends WidgetEventName>(\n name: K,\n detail: WidgetEventMap[K],\n): void {\n if (typeof document === 'undefined') return;\n try {\n document.dispatchEvent(new CustomEvent(PREFIX + name, { detail }));\n } catch {\n /* CustomEvent not supported on ancient browsers \u2014 widget drops this event */\n }\n}\n\n/**\n * Subscribe to a widget event. Returns an unsubscribe function.\n *\n * @example\n * ```ts\n * const off = onWidgetEvent('stateChange', (e) => analytics.track('a11y', e.state));\n * // later\n * off();\n * ```\n */\nexport function onWidgetEvent<K extends WidgetEventName>(\n name: K,\n handler: (detail: WidgetEventMap[K]) => void,\n): () => void {\n if (typeof document === 'undefined') return () => {};\n const listener = (e: Event): void => {\n handler((e as CustomEvent<WidgetEventMap[K]>).detail);\n };\n document.addEventListener(PREFIX + name, listener);\n return () => document.removeEventListener(PREFIX + name, listener);\n}\n", "/*!\n * BAUER GROUP Accessibility Widget \u2014 Loader (IIFE, ~4 KB gzip)\n * SPDX-License-Identifier: AGPL-3.0-only \u00B7 \u00A9 2026 BAUER GROUP\n * AGPL-3.0-only or commercial (info@bauer-group.com) \u2014 see LICENSE / LICENSING.md\n *\n * Responsibilities:\n * 1. Read persisted preferences and apply them BEFORE first paint (no FOUAC).\n * 2. Inject critical CSS for data-attribute based features.\n * 3. Render the FAB (Floating Action Button).\n * 4. Lazy-load the core bundle on first user intent (click / keyboard shortcut).\n *\n * Does NOT import from /shared \u2014 everything must be inlined to keep the bundle tiny.\n */\nimport type { FeatureId, WidgetConfig, WidgetState, Locale } from './types/index.js';\nimport { buildCriticalCss } from './styles/critical.js';\nimport { onWidgetEvent, type WidgetEventMap, type WidgetEventName } from './util/events.js';\n\ntype CoreApi = NonNullable<Window['AccessibilityWidgetCore']>;\n\nconst userCfg: WidgetConfig = window.AccessibilityWidgetConfig ?? {};\n\nconst cfg = {\n corePath: userCfg.corePath ?? '/accessibility-widget/accessibility-widget-core.min.js',\n cssPath: userCfg.cssPath ?? '/accessibility-widget/accessibility-widget.min.css',\n position: userCfg.position ?? 'bottom-right',\n offset: {\n x: Number.isFinite(userCfg.offset?.x) ? (userCfg.offset!.x as number) : 20,\n y: Number.isFinite(userCfg.offset?.y) ? (userCfg.offset!.y as number) : 20,\n },\n zIndex: Number.isFinite(userCfg.zIndex) ? (userCfg.zIndex as number) : 2_147_483_646,\n storageKey: userCfg.storageKey ?? 'accessibility-widget',\n draggableFab: Boolean(userCfg.draggableFab),\n respectReducedMotion: userCfg.respectReducedMotion ?? true,\n primaryColor: userCfg.primaryColor ?? '#0058a3',\n hideOnPrint: userCfg.hideOnPrint ?? true,\n debug: Boolean(userCfg.debug),\n locale: userCfg.locale ?? 'auto',\n coreIntegrity: userCfg.coreIntegrity ?? null,\n cssIntegrity: userCfg.cssIntegrity ?? null,\n buttonLabel: userCfg.buttonLabel ?? null,\n initialFeatures: userCfg.initialFeatures ?? null,\n keyboardShortcut:\n userCfg.keyboardShortcut === undefined ? 'ctrl+alt+a' : userCfg.keyboardShortcut,\n};\n\ninterface ShortcutSpec {\n alt: boolean;\n ctrl: boolean;\n shift: boolean;\n meta: boolean;\n key: string;\n}\n\n/**\n * Parse an `alt+shift+a`-style shortcut spec into a matchable structure.\n * Returns `null` for `false`, empty specs, duplicate non-modifier keys,\n * or specs missing a non-modifier key. Tokens are case-insensitive.\n */\nfunction parseShortcut(spec: string | false | undefined): ShortcutSpec | null {\n if (!spec) return null;\n const out: ShortcutSpec = { alt: false, ctrl: false, shift: false, meta: false, key: '' };\n for (const p of spec.toLowerCase().split('+')) {\n if (p === 'alt' || p === 'ctrl' || p === 'shift' || p === 'meta') out[p] = true;\n else if (p && !out.key) out.key = p;\n else if (p) return null;\n }\n return out.key ? out : null;\n}\n\nconst LABELS: Record<Locale, string> = {\n de: 'Barrierefreiheit einstellen',\n en: 'Accessibility settings',\n fr: 'R\u00E9glages d\u2019accessibilit\u00E9',\n es: 'Ajustes de accesibilidad',\n it: 'Impostazioni di accessibilit\u00E0',\n pl: 'Ustawienia dost\u0119pno\u015Bci',\n tr: 'Eri\u015Filebilirlik ayarlar\u0131',\n ar: '\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0625\u0645\u0643\u0627\u0646\u064A\u0629 \u0627\u0644\u0648\u0635\u0648\u0644',\n zh: '\u65E0\u969C\u788D\u8BBE\u7F6E',\n hi: '\u0938\u0941\u0917\u092E\u094D\u092F\u0924\u093E \u0938\u0947\u091F\u093F\u0902\u0917\u094D\u0938',\n pt: 'Defini\u00E7\u00F5es de acessibilidade',\n bn: '\u0985\u09CD\u09AF\u09BE\u0995\u09CD\u09B8\u09C7\u09B8\u09AF\u09CB\u0997\u09CD\u09AF\u09A4\u09BE \u09B8\u09C7\u099F\u09BF\u0982\u09B8',\n ru: '\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0438',\n ja: '\u30A2\u30AF\u30BB\u30B7\u30D3\u30EA\u30C6\u30A3\u8A2D\u5B9A',\n ko: '\uC811\uADFC\uC131 \uC124\uC815',\n vi: 'C\u00E0i \u0111\u1EB7t tr\u1EE3 n\u0103ng',\n fa: '\u062A\u0646\u0638\u06CC\u0645\u0627\u062A \u062F\u0633\u062A\u0631\u0633\u200C\u067E\u0630\u06CC\u0631\u06CC',\n ur: '\u0631\u0633\u0627\u0626\u06CC \u06A9\u06CC \u062A\u0631\u062A\u06CC\u0628\u0627\u062A',\n th: '\u0E01\u0E32\u0E23\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E16\u0E36\u0E07',\n id: 'Pengaturan aksesibilitas',\n he: '\u05D4\u05D2\u05D3\u05E8\u05D5\u05EA \u05E0\u05D2\u05D9\u05E9\u05D5\u05EA',\n nl: 'Toegankelijkheidsinstellingen',\n sv: 'Tillg\u00E4nglighetsinst\u00E4llningar',\n cs: 'Nastaven\u00ED p\u0159\u00EDstupnosti',\n el: '\u03A1\u03C5\u03B8\u03BC\u03AF\u03C3\u03B5\u03B9\u03C2 \u03C0\u03C1\u03BF\u03C3\u03B2\u03B1\u03C3\u03B9\u03BC\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2',\n hu: 'Akad\u00E1lymentess\u00E9gi be\u00E1ll\u00EDt\u00E1sok',\n ro: 'Set\u0103ri de accesibilitate',\n uk: '\u041D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u043E\u0441\u0442\u0456',\n};\n\nif (window.__accessibilityWidgetLoaded) {\n // Idempotent: a second loader tag is a no-op.\n} else {\n window.__accessibilityWidgetLoaded = true;\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', boot, { once: true });\n } else {\n boot();\n }\n}\n\nfunction boot(): void {\n injectCriticalCSS();\n seedInitialFeaturesIfEmpty();\n applyPersistedPreferences();\n renderFab();\n if (hasPersistedSettings()) {\n // user has settings \u2192 warm core in idle time so next open is instant\n const idle = (cb: () => void) => {\n const w = window as unknown as {\n requestIdleCallback?: (cb: () => void, o?: { timeout: number }) => number;\n };\n if (typeof w.requestIdleCallback === 'function') w.requestIdleCallback(cb, { timeout: 2000 });\n else setTimeout(cb, 1000);\n };\n idle(() => {\n loadCore().catch(() => {\n /* silent \u2014 user can click FAB to retry */\n });\n });\n }\n}\n\nfunction detectLocale(): Locale {\n // Runtime override wins: setLocale() persists the user choice to\n // state.locale and we must honor it here so the FAB aria-label matches\n // the language the panel will render in.\n const stateLocale = readState()?.locale;\n if (typeof stateLocale === 'string' && isSupportedLocale(stateLocale)) return stateLocale;\n if (cfg.locale !== 'auto') return cfg.locale as Locale;\n const htmlLang = (document.documentElement.lang || '').toLowerCase();\n const candidate = (htmlLang || (navigator.language ?? 'en').toLowerCase()).split(/[-_]/)[0];\n return isSupportedLocale(candidate) ? candidate : 'de';\n}\n\nfunction isSupportedLocale(x: string | undefined): x is Locale {\n return Boolean(x) && x! in LABELS;\n}\n\nfunction readState(): WidgetState | null {\n try {\n const raw = localStorage.getItem(cfg.storageKey);\n return raw ? (JSON.parse(raw) as WidgetState) : null;\n } catch (err) {\n if (cfg.debug) console.warn('[aw] loader.readState failed', err);\n return null;\n }\n}\n\nfunction hasPersistedSettings(): boolean {\n const s = readState();\n return Boolean(s?.features && Object.values(s.features).some(Boolean));\n}\n\n/**\n * If the visitor has no persisted state yet and the host declared\n * `initialFeatures`, write that as the initial state. Next-load\n * behavior is identical to a normal returning user \u2014 once something\n * is persisted, the persisted state takes over.\n */\nfunction seedInitialFeaturesIfEmpty(): void {\n if (!cfg.initialFeatures) return;\n let existing: string | null;\n try {\n existing = localStorage.getItem(cfg.storageKey);\n } catch {\n return;\n }\n if (existing) return;\n const features: Record<string, boolean> = {};\n for (const [id, on] of Object.entries(cfg.initialFeatures)) {\n features[id] = Boolean(on);\n }\n const seed = {\n features,\n fontSizeLevel: 1,\n lineHeightLevel: 1.5,\n letterSpacingLevel: 0,\n contrastMode: 'off',\n };\n try {\n localStorage.setItem(cfg.storageKey, JSON.stringify(seed));\n } catch (err) {\n if (cfg.debug) console.warn('[aw] loader.seedInitialFeatures failed', err);\n }\n}\n\nfunction applyPersistedPreferences(): void {\n const s = readState();\n if (!s?.features) return;\n const html = document.documentElement;\n html.setAttribute('data-aw-instant', '1');\n if (typeof s.fontSizeLevel === 'number')\n html.style.setProperty('--aw-font-scale', String(s.fontSizeLevel));\n if (typeof s.lineHeightLevel === 'number')\n html.style.setProperty('--aw-line-height', String(s.lineHeightLevel));\n if (typeof s.letterSpacingLevel === 'number')\n html.style.setProperty('--aw-letter-spacing', `${s.letterSpacingLevel}em`);\n const f = s.features as Partial<Record<FeatureId, boolean>>;\n if (f.contrast) html.setAttribute('data-aw-contrast', s.contrastMode ?? 'high');\n if (f.grayscale) html.setAttribute('data-aw-grayscale', '1');\n if (f.invertColors) html.setAttribute('data-aw-invert', '1');\n if (f.dyslexiaFont) html.setAttribute('data-aw-dyslexia', '1');\n if (f.highlightLinks) html.setAttribute('data-aw-highlight-links', '1');\n if (f.pauseAnimations) html.setAttribute('data-aw-pause-animations', '1');\n if (f.bigCursor) html.setAttribute('data-aw-big-cursor', '1');\n if (f.focusOutline) html.setAttribute('data-aw-focus', '1');\n}\n\nfunction injectCriticalCSS(): void {\n if (document.getElementById('aw-critical-css')) return;\n const css = buildCriticalCss({\n primaryColor: cfg.primaryColor,\n hideOnPrint: cfg.hideOnPrint,\n offsetX: cfg.offset.x,\n offsetY: cfg.offset.y,\n zIndex: cfg.zIndex,\n });\n const style = document.createElement('style');\n style.id = 'aw-critical-css';\n style.textContent = css;\n (document.head ?? document.documentElement).appendChild(style);\n}\n\nfunction renderFab(): void {\n const locale = detectLocale();\n const label = cfg.buttonLabel ?? LABELS[locale];\n\n const btn = document.createElement('button');\n btn.type = 'button';\n btn.className = `aw-fab aw-fab--${cfg.position}`;\n btn.setAttribute('aria-label', label);\n btn.setAttribute('aria-haspopup', 'dialog');\n btn.setAttribute('aria-controls', 'aw-panel');\n btn.setAttribute('aria-expanded', 'false');\n btn.setAttribute('data-aw-fab', '1');\n\n // Inline SVG person-icon \u2014 programmatic, no innerHTML.\n const svgNs = 'http://www.w3.org/2000/svg';\n const svg = document.createElementNS(svgNs, 'svg');\n svg.setAttribute('viewBox', '0 0 24 24');\n svg.setAttribute('aria-hidden', 'true');\n svg.setAttribute('focusable', 'false');\n const path = document.createElementNS(svgNs, 'path');\n path.setAttribute(\n 'd',\n 'M12 2a2 2 0 1 1 0 4 2 2 0 0 1 0-4zm-6 5 6 2 6-2 .5 1.8L13 10.2v3.2l3.2 7.4-1.7.8L12 15l-2.5 6.6-1.7-.8L11 13.4V10.2L5.5 8.8 6 7z',\n );\n path.setAttribute('fill', 'currentColor');\n svg.appendChild(path);\n btn.appendChild(svg);\n\n btn.addEventListener('click', (e) => {\n e.preventDefault();\n // Toggle: if the panel is already open, second click closes it.\n // We read aria-expanded off the FAB itself \u2014 it's the single source of\n // truth, kept in sync with panel state via the widget's open/close events.\n if (btn.getAttribute('aria-expanded') === 'true') {\n window.AccessibilityWidgetCore?.close();\n return;\n }\n btn.disabled = true;\n btn.setAttribute('aria-busy', 'true');\n loadCore()\n .then((core) => {\n btn.disabled = false;\n btn.removeAttribute('aria-busy');\n btn.setAttribute('aria-expanded', 'true');\n core.open({\n trigger: btn,\n config: window.AccessibilityWidgetConfig,\n });\n })\n .catch((err) => {\n btn.disabled = false;\n btn.removeAttribute('aria-busy');\n if (cfg.debug) console.error('[aw] Core load failed:', err);\n });\n });\n\n // Keep FAB's aria-expanded in sync when the panel closes by any route\n // (ESC key, X button, programmatic close via AccessibilityWidget.close()).\n // Without this, the toggle logic above would think the panel is still open.\n onWidgetEvent('close', () => {\n btn.setAttribute('aria-expanded', 'false');\n });\n onWidgetEvent('open', () => {\n btn.setAttribute('aria-expanded', 'true');\n });\n\n const shortcut = parseShortcut(cfg.keyboardShortcut);\n if (!shortcut && cfg.debug && cfg.keyboardShortcut !== false) {\n console.warn(`[aw] invalid keyboardShortcut: ${cfg.keyboardShortcut}`);\n }\n if (shortcut) {\n document.addEventListener('keydown', (e) => {\n if (\n e.altKey === shortcut.alt &&\n e.ctrlKey === shortcut.ctrl &&\n e.shiftKey === shortcut.shift &&\n e.metaKey === shortcut.meta &&\n e.key.toLowerCase() === shortcut.key\n ) {\n e.preventDefault();\n btn.click();\n }\n });\n }\n\n if (cfg.draggableFab) {\n attachDragHandlers(btn);\n applyPersistedFabPosition(btn);\n }\n\n document.body.appendChild(btn);\n}\n\n// \u2500\u2500\u2500 FAB drag (opt-in via config.draggableFab) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n// Shift+Arrow moves in 10 px steps (WCAG 2.1.1 \u2014 no pointer-only interactions).\n\nfunction applyPersistedFabPosition(btn: HTMLButtonElement): void {\n const p = readState()?.fabPosition;\n if (p && Number.isFinite(p.x) && Number.isFinite(p.y)) setFabPos(btn, p.x, p.y);\n}\n\nfunction setFabPos(btn: HTMLButtonElement, x: number, y: number): void {\n const size = 48;\n const cx = Math.min(Math.max(0, x), Math.max(0, window.innerWidth - size));\n const cy = Math.min(Math.max(0, y), Math.max(0, window.innerHeight - size));\n btn.setAttribute('data-aw-fab-pos', 'custom');\n btn.style.setProperty('--aw-fab-x', cx + 'px');\n btn.style.setProperty('--aw-fab-y', cy + 'px');\n}\n\nfunction persistFab(x: number, y: number): void {\n try {\n const raw = localStorage.getItem(cfg.storageKey);\n const parsed = raw ? (JSON.parse(raw) as Record<string, unknown>) : {};\n parsed.fabPosition = { x, y };\n localStorage.setItem(cfg.storageKey, JSON.stringify(parsed));\n } catch (err) {\n if (cfg.debug) console.warn('[aw] persistFab failed', err);\n }\n}\n\nfunction attachDragHandlers(btn: HTMLButtonElement): void {\n btn.style.touchAction = 'none';\n btn.style.cursor = 'grab';\n let pid = -1;\n let sx = 0;\n let sy = 0;\n let bx = 0;\n let by = 0;\n let moved = false;\n\n btn.addEventListener('pointerdown', (e) => {\n if (e.button !== 0 && e.pointerType !== 'touch') return;\n pid = e.pointerId;\n sx = e.clientX;\n sy = e.clientY;\n const r = btn.getBoundingClientRect();\n bx = r.left;\n by = r.top;\n moved = false;\n try {\n btn.setPointerCapture(pid);\n } catch {\n /* noop */\n }\n });\n\n btn.addEventListener('pointermove', (e) => {\n if (pid !== e.pointerId) return;\n const dx = e.clientX - sx;\n const dy = e.clientY - sy;\n if (!moved && Math.hypot(dx, dy) < 5) return;\n moved = true;\n e.preventDefault();\n setFabPos(btn, bx + dx, by + dy);\n });\n\n const finish = (e: PointerEvent): void => {\n if (pid !== e.pointerId) return;\n try {\n btn.releasePointerCapture(pid);\n } catch {\n /* noop */\n }\n pid = -1;\n if (moved) {\n const r = btn.getBoundingClientRect();\n persistFab(r.left, r.top);\n // Swallow the synthetic click so a drag doesn't open the panel.\n btn.addEventListener(\n 'click',\n (ev) => {\n ev.stopPropagation();\n ev.preventDefault();\n },\n { capture: true, once: true },\n );\n }\n };\n btn.addEventListener('pointerup', finish);\n btn.addEventListener('pointercancel', finish);\n\n btn.addEventListener('keydown', (e) => {\n if (!e.shiftKey) return;\n const k = e.key;\n const dx = k === 'ArrowLeft' ? -10 : k === 'ArrowRight' ? 10 : 0;\n const dy = k === 'ArrowUp' ? -10 : k === 'ArrowDown' ? 10 : 0;\n if (!dx && !dy) return;\n e.preventDefault();\n const r = btn.getBoundingClientRect();\n setFabPos(btn, r.left + dx, r.top + dy);\n const final = btn.getBoundingClientRect();\n persistFab(final.left, final.top);\n });\n}\n\nlet corePromise: Promise<CoreApi> | null = null;\nfunction loadCore(): Promise<CoreApi> {\n if (corePromise) return corePromise;\n if (cfg.cssPath && !document.querySelector('link[data-aw-css]')) {\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = cfg.cssPath;\n link.setAttribute('data-aw-css', '1');\n if (cfg.cssIntegrity) {\n link.integrity = cfg.cssIntegrity;\n link.crossOrigin = 'anonymous';\n }\n document.head.appendChild(link);\n }\n corePromise = new Promise<CoreApi>((resolve, reject) => {\n const s = document.createElement('script');\n s.src = cfg.corePath;\n s.async = true;\n s.defer = true;\n if (cfg.coreIntegrity) {\n s.integrity = cfg.coreIntegrity;\n s.crossOrigin = 'anonymous';\n }\n s.onload = () => {\n if (window.AccessibilityWidgetCore) resolve(window.AccessibilityWidgetCore);\n else reject(new Error('Core loaded but AccessibilityWidgetCore is undefined'));\n };\n s.onerror = () => reject(new Error(`Failed to load ${cfg.corePath}`));\n document.head.appendChild(s);\n });\n return corePromise;\n}\n\nconst publicApi = {\n open(opts?: Parameters<CoreApi['open']>[0]): Promise<void> {\n return loadCore().then((c) => c.open(opts ?? {}));\n },\n close(): void {\n window.AccessibilityWidgetCore?.close();\n },\n reset(): void {\n try {\n localStorage.removeItem(cfg.storageKey);\n } catch (err) {\n if (cfg.debug) console.warn('[aw] loader.reset clear failed', err);\n }\n location.reload();\n },\n set(id: string, value: unknown): Promise<void> {\n return loadCore().then((c) => c.set(id, value));\n },\n applyProfile(id: string): Promise<boolean> {\n return loadCore().then((c) => c.applyProfile(id));\n },\n setLocale(locale: string): Promise<boolean> {\n return loadCore().then((c) => c.setLocale(locale));\n },\n /**\n * Programmatically move the FAB to viewport-pixel coords (from top-left)\n * or reset to the config-anchor via `null`. Works independently of\n * `draggableFab` \u2014 the host is always allowed to set the position.\n */\n setPosition(pos: { x: number; y: number } | null): void {\n const btn = document.querySelector<HTMLButtonElement>('[data-aw-fab]');\n if (!btn) return;\n if (pos === null) {\n btn.removeAttribute('data-aw-fab-pos');\n btn.style.removeProperty('--aw-fab-x');\n btn.style.removeProperty('--aw-fab-y');\n try {\n const raw = localStorage.getItem(cfg.storageKey);\n if (raw) {\n const parsed = JSON.parse(raw) as Record<string, unknown>;\n delete parsed.fabPosition;\n localStorage.setItem(cfg.storageKey, JSON.stringify(parsed));\n }\n } catch (err) {\n if (cfg.debug) console.warn('[aw] setPosition(null) clear failed', err);\n }\n return;\n }\n if (!Number.isFinite(pos.x) || !Number.isFinite(pos.y)) {\n if (cfg.debug) console.warn('[aw] setPosition: x and y must be finite numbers');\n return;\n }\n setFabPos(btn, pos.x, pos.y);\n persistFab(pos.x, pos.y);\n },\n getState(): WidgetState | null {\n return readState();\n },\n /**\n * Subscribe to widget lifecycle events. Returns unsubscribe function.\n * Events dispatch as CustomEvent on document \u2014 consumers can also use\n * `document.addEventListener('accessibility-widget:<name>', \u2026)` directly.\n */\n on<K extends WidgetEventName>(name: K, handler: (detail: WidgetEventMap[K]) => void): () => void {\n return onWidgetEvent(name, handler);\n },\n version: __AW_VERSION__,\n};\n\nwindow.AccessibilityWidget = publicApi;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["buildCriticalCss", "opts", "primaryColor", "hideOnPrint", "offsetX", "offsetY", "zIndex", "PREFIX", "onWidgetEvent", "name", "handler", "listener", "e", "PREFIX", "_a", "userCfg", "_b", "_c", "_d", "_e", "_f", "_g", "_h", "_i", "_j", "_k", "_l", "_m", "_n", "cfg", "parseShortcut", "spec", "out", "p", "LABELS", "boot", "injectCriticalCSS", "seedInitialFeaturesIfEmpty", "applyPersistedPreferences", "renderFab", "hasPersistedSettings", "cb", "w", "loadCore", "detectLocale", "stateLocale", "readState", "isSupportedLocale", "candidate", "x", "raw", "err", "s", "existing", "e", "features", "id", "on", "seed", "html", "f", "css", "buildCriticalCss", "style", "locale", "label", "btn", "svgNs", "svg", "path", "core", "onWidgetEvent", "shortcut", "attachDragHandlers", "applyPersistedFabPosition", "setFabPos", "y", "cx", "cy", "persistFab", "parsed", "pid", "sx", "sy", "bx", "by", "moved", "r", "dx", "dy", "finish", "ev", "k", "final", "corePromise", "link", "resolve", "reject", "publicApi", "opts", "c", "value", "pos", "name", "handler"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
.aw-panel{position:fixed;z-index:2147483647;width:420px;max-width:95vw;max-height:85vh;overflow-y:auto;overflow-x:hidden;background:#fff;color:#111;border-radius:12px;box-shadow:0 16px 48px #0003;font:16px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif;padding:16px 20px 20px}.aw-panel--bottom-right{bottom:80px;right:20px}.aw-panel--bottom-left{bottom:80px;left:20px}.aw-panel--top-right{top:80px;right:20px}.aw-panel--top-left{top:80px;left:20px}.aw-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;border-bottom:1px solid #e0e0e0;padding-bottom:12px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.aw-header.is-dragging{cursor:grabbing}.aw-drag-grip{display:inline-flex;align-items:center;justify-content:center;color:#888;margin-inline-end:8px;flex:0 0 auto}@media(pointer:coarse){.aw-drag-grip{opacity:.5}}.aw-title{font-size:1.25rem;font-weight:700;margin:0;color:#0058a3}.aw-close{background:transparent;border:2px solid transparent;cursor:pointer;color:#444;padding:4px;border-radius:4px}.aw-close:hover,.aw-close:focus-visible{background:#f0f0f0;outline:2px solid #0058a3}.aw-close svg{width:20px;height:20px}.aw-toolbar{display:flex;gap:8px;margin-bottom:12px;align-items:stretch}.aw-tool{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:2px solid #d1e0ee;background:#f7f9fc;color:#0058a3;font:inherit;font-size:.85rem;cursor:pointer}.aw-tool:hover,.aw-tool:focus-within,.aw-tool:focus-visible{border-color:#0058a3;outline:3px solid #ff6a00;outline-offset:1px}.aw-tool--lang{flex:1 1 auto}.aw-tool--lang select.aw-lang{background:transparent;border:0;color:inherit;font:inherit;padding:2px 0;width:100%;cursor:pointer}.aw-tool--lang select.aw-lang:focus{outline:none}.aw-tool--oversize.is-on{background:#0058a3;color:#fff;border-color:#003c73}.aw-panel--xl{width:520px;font-size:1.08rem}.aw-panel--xl .aw-feat-grid{grid-auto-rows:160px}.aw-panel--xl .aw-feat{padding:14px 10px 12px}.aw-panel--xl .aw-feat-icon svg{width:34px;height:34px}.aw-panel--xl .aw-feat-label{font-size:.95rem}.aw-panel--xl .aw-profile-btn{padding:14px 10px;font-size:1rem}.aw-section{margin-bottom:16px}.aw-h3{font-size:.95rem;font-weight:600;margin:0 0 8px;color:#333;text-transform:uppercase;letter-spacing:.03em}.aw-profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.aw-profile-btn{background:#f7f9fc;color:#0058a3;border:2px solid #d1e0ee;padding:10px 8px;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;text-align:center;transition:background .15s,border-color .15s}.aw-profile-btn:hover,.aw-profile-btn:focus-visible{background:#e5efff;border-color:#0058a3;outline:3px solid #ff6a00;outline-offset:1px}.aw-feat-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:136px;gap:8px}.aw-feat{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;justify-items:center;align-items:center;gap:4px;background:#fff;border:2px solid #e0e0e0;border-radius:10px;padding:12px 8px 10px;cursor:pointer;font:inherit;text-align:center;color:#111;overflow:hidden;transition:border-color .15s,background .15s}.aw-feat:hover,.aw-feat:focus-visible{background:#eaf1f9;outline:3px solid #ff6a00;outline-offset:1px}.aw-feat.is-on{background:#eef5ff;border-color:#0058a3;color:#002c57}.aw-feat-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;color:#0058a3}.aw-feat.is-on .aw-feat-icon{color:#003c73}.aw-feat-label{font-size:.85rem;font-weight:600;line-height:1.2;overflow-wrap:anywhere}.aw-feat-badge{display:inline-block;min-width:28px;padding:1px 7px;background:#e9eff7;color:#0058a3;border-radius:999px;font-size:.72rem;font-weight:700;text-align:center;line-height:1.4}.aw-stage-dots{display:inline-flex;gap:3px;align-items:center;justify-content:center;width:100%;margin:2px 0 1px}.aw-stage-dot{flex:1 1 0;max-width:18px;height:4px;border-radius:2px;background:#d1e0ee;transition:background .15s}.aw-stage-dot.is-filled{background:#0058a3}.aw-feat.is-on .aw-stage-dot{background:#b6cce5}.aw-feat.is-on .aw-stage-dot.is-filled{background:#003c73}.aw-feat.is-on .aw-feat-badge{background:#0058a3;color:#fff}.aw-feat-check{position:absolute;top:6px;inset-inline-end:6px;width:20px;height:20px;display:none;align-items:center;justify-content:center;border-radius:50%;background:#0058a3;color:#fff}.aw-feat.is-on .aw-feat-check{display:inline-flex}.aw-feat-info{position:absolute;top:6px;inset-inline-start:6px;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#6b8aac;background:#eef2f7}.aw-feat.is-on .aw-feat-info{color:#0058a3;background:#fff}.aw-feat-wrap{position:relative;display:flex;flex-direction:column}.aw-feat-wrap>.aw-feat{width:100%}.aw-feat-tooltip{position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:10;display:none;width:max-content;min-width:180px;max-width:260px;padding:8px 12px;background:#111;color:#fff;font-size:.78rem;font-weight:400;line-height:1.4;text-align:center;border-radius:6px;box-shadow:0 6px 18px #00000059;pointer-events:none;overflow-wrap:anywhere;word-wrap:break-word;white-space:normal}.aw-feat-wrap:hover>.aw-feat-tooltip,.aw-feat-wrap:focus-within>.aw-feat-tooltip{display:block}.aw-feat-grid>.aw-feat-wrap:nth-child(3n+1)>.aw-feat-tooltip{left:0;right:auto;transform:none}.aw-feat-grid>.aw-feat-wrap:nth-child(3n)>.aw-feat-tooltip{left:auto;right:0;transform:none}@media(max-width:380px){.aw-feat-grid>.aw-feat-wrap:nth-child(odd)>.aw-feat-tooltip{left:0;right:auto;transform:none}.aw-feat-grid>.aw-feat-wrap:nth-child(2n)>.aw-feat-tooltip{left:auto;right:0;transform:none}}.aw-summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;padding:4px 0;margin-bottom:4px}.aw-summary::-webkit-details-marker{display:none}.aw-summary svg{transition:transform .15s}.aw-collapsible[open] .aw-summary svg{transform:rotate(180deg)}.aw-collapsible:not([open]) .aw-h3{margin-bottom:0}@media(max-width:380px){.aw-feat-grid{grid-template-columns:repeat(2,1fr)}}.aw-footer{margin-top:12px;padding-top:12px;border-top:1px solid #e0e0e0}.aw-reset{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#fff;color:#c00;border:2px solid #c00;padding:10px;border-radius:8px;font-weight:600;cursor:pointer}.aw-reset svg{flex:0 0 auto}.aw-reset:hover,.aw-reset:focus-visible{background:#c00;color:#fff;outline:3px solid #ff6a00}.aw-statement-link{display:block;margin-top:10px;text-align:center;color:#0058a3;text-decoration:underline;font-size:.85rem}.aw-disclaimer{font-size:.75rem;color:#666;margin:12px 0 0;line-height:1.4}.aw-poweredby{font-size:10px;font-weight:400;color:#888;margin:10px 0 0;text-align:center;line-height:1.3;letter-spacing:.01em}.aw-poweredby a{color:inherit;text-decoration:underline;text-decoration-color:#bbb;text-underline-offset:2px}.aw-poweredby a:hover,.aw-poweredby a:focus-visible{color:#0058a3;text-decoration-color:currentColor}.aw-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.aw-reading-mask{--aw-mask-y: 50vh;position:fixed;inset:0;z-index:2147483645;pointer-events:none;background:linear-gradient(to bottom,#000000bf 0 calc(var(--aw-mask-y) - 100px),#0000 calc(var(--aw-mask-y) - 80px) calc(var(--aw-mask-y) + 80px),#000000bf calc(var(--aw-mask-y) + 100px) 100%)}.aw-reading-guide{position:fixed;left:0;width:100%;height:32px;background:#ffeb3b59;border-top:2px solid rgba(255,165,0,.8);border-bottom:2px solid rgba(255,165,0,.8);pointer-events:none;z-index:2147483644}#aw-struct-nav{position:fixed;top:20px;right:20px;z-index:2147483647;width:320px;max-height:70vh;overflow-y:auto;background:#fff;color:#111;border-radius:12px;box-shadow:0 16px 48px #0003;padding:12px 16px;font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}#aw-struct-nav .aw-struct-nav__close{position:absolute;top:8px;right:10px;background:transparent;border:0;font-size:22px;cursor:pointer;color:#666}#aw-struct-nav ul{list-style:none;padding:0;margin:8px 0 0}#aw-struct-nav li{margin:0}#aw-struct-nav li[data-level="2"] a{padding-left:16px}#aw-struct-nav li[data-level="3"] a{padding-left:32px}#aw-struct-nav a{display:block;padding:6px 8px;color:#0058a3;text-decoration:none;border-radius:4px}#aw-struct-nav a:hover,#aw-struct-nav a:focus-visible{background:#eaf1f9;outline:2px solid #0058a3}@media(max-width:520px){.aw-panel{width:calc(100vw - 40px);bottom:80px;left:20px;right:20px}.aw-panel--top-right,.aw-panel--top-left{top:20px;bottom:auto}}[dir=rtl] .aw-panel--bottom-right,[dir=rtl] .aw-panel--top-right{right:auto;left:20px}@media(prefers-color-scheme:dark){.aw-panel{background:#1b1b1b;color:#eee}.aw-title{color:#6ea8e6}.aw-h3{color:#bbb}.aw-profile-btn{background:#2a2a2a;color:#6ea8e6;border-color:#3b3b3b}.aw-profile-btn:hover{background:#333}.aw-feat{background:#222;color:#eee;border-color:#3b3b3b}.aw-feat:hover{background:#2c2c2c}.aw-feat.is-on{background:#0f2d4c;border-color:#0a66c2;color:#fff}.aw-feat-icon{color:#6ea8e6}.aw-feat.is-on .aw-feat-icon{color:#cfe1f7}.aw-feat-badge{background:#3b3b3b;color:#6ea8e6}.aw-feat.is-on .aw-feat-badge{background:#0a66c2;color:#fff}.aw-feat-check{background:#0a66c2}.aw-feat-info{background:#2c2c2c;color:#9aa6b3}.aw-feat.is-on .aw-feat-info{background:#0f2d4c;color:#cfe1f7}.aw-feat-tooltip{background:#eee;color:#111;box-shadow:0 4px 14px #00000080}.aw-tool{background:#2a2a2a;border-color:#3b3b3b;color:#6ea8e6}.aw-tool--oversize.is-on{background:#0a66c2;color:#fff;border-color:#064d8f}.aw-stage-dot{background:#3b3b3b}.aw-stage-dot.is-filled{background:#6ea8e6}.aw-feat.is-on .aw-stage-dot{background:#064d8f}.aw-feat.is-on .aw-stage-dot.is-filled{background:#cfe1f7}.aw-footer{border-color:#333}.aw-reset{background:#1b1b1b;color:#ff7676;border-color:#ff7676}.aw-disclaimer{color:#aaa}.aw-poweredby{color:#888}.aw-poweredby a{text-decoration-color:#555}.aw-poweredby a:hover,.aw-poweredby a:focus-visible{color:#6ea8e6}#aw-struct-nav{background:#1b1b1b;color:#eee}#aw-struct-nav a{color:#6ea8e6}}@media(prefers-reduced-motion:reduce){.aw-panel,.aw-feat,.aw-profile-btn,.aw-reset,.aw-close{transition:none!important}}
|
|
2
|
+
/*!
|
|
3
|
+
* BAUER GROUP Accessibility Widget — Panel CSS (loaded on-demand)
|
|
4
|
+
* SPDX-License-Identifier: AGPL-3.0-only · © 2026 BAUER GROUP
|
|
5
|
+
* AGPL-3.0-only or commercial (info@bauer-group.com) — see LICENSE / LICENSING.md
|
|
6
|
+
*/
|
|
7
|
+
/*# sourceMappingURL=accessibility-widget.min.css.map */
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/styles/widget.css"],
|
|
4
|
+
"sourcesContent": ["/*!\n * BAUER GROUP Accessibility Widget \u2014 Panel CSS (loaded on-demand)\n * SPDX-License-Identifier: AGPL-3.0-only \u00B7 \u00A9 2026 BAUER GROUP\n * AGPL-3.0-only or commercial (info@bauer-group.com) \u2014 see LICENSE / LICENSING.md\n */\n\n.aw-panel {\n position: fixed;\n z-index: 2147483647;\n width: 420px;\n max-width: 95vw;\n max-height: 85vh;\n overflow-y: auto;\n /* `overflow-y: auto` silently forces `overflow-x: auto` \u2014 which would\n expose a horizontal scrollbar the moment any tooltip peeks over the\n right edge, causing the widget to \"jump\" as the scrollbar appears.\n `hidden` blocks horizontal scroll while keeping vertical intact. */\n overflow-x: hidden;\n background: #fff;\n color: #111;\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n font:\n 16px / 1.5 -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n 'Helvetica Neue',\n sans-serif;\n padding: 16px 20px 20px;\n}\n.aw-panel--bottom-right {\n bottom: 80px;\n right: 20px;\n}\n.aw-panel--bottom-left {\n bottom: 80px;\n left: 20px;\n}\n.aw-panel--top-right {\n top: 80px;\n right: 20px;\n}\n.aw-panel--top-left {\n top: 80px;\n left: 20px;\n}\n\n.aw-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 12px;\n border-bottom: 1px solid #e0e0e0;\n padding-bottom: 12px;\n cursor: grab;\n touch-action: none;\n -webkit-user-select: none;\n user-select: none;\n}\n.aw-header.is-dragging {\n cursor: grabbing;\n}\n.aw-drag-grip {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: #888;\n margin-inline-end: 8px;\n flex: 0 0 auto;\n}\n@media (pointer: coarse) {\n /* Touch devices: show the grip but don't enable pointer drag on narrow viewports.\n Panel position on mobile is controlled by CSS preset + safe-area insets. */\n .aw-drag-grip {\n opacity: 0.5;\n }\n}\n.aw-title {\n font-size: 1.25rem;\n font-weight: 700;\n margin: 0;\n color: #0058a3;\n}\n.aw-close {\n background: transparent;\n border: 2px solid transparent;\n cursor: pointer;\n color: #444;\n padding: 4px;\n border-radius: 4px;\n}\n.aw-close:hover,\n.aw-close:focus-visible {\n background: #f0f0f0;\n outline: 2px solid #0058a3;\n}\n.aw-close svg {\n width: 20px;\n height: 20px;\n}\n\n.aw-toolbar {\n display: flex;\n gap: 8px;\n margin-bottom: 12px;\n align-items: stretch;\n}\n.aw-tool {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n padding: 6px 10px;\n border-radius: 8px;\n border: 2px solid #d1e0ee;\n background: #f7f9fc;\n color: #0058a3;\n font: inherit;\n font-size: 0.85rem;\n cursor: pointer;\n}\n.aw-tool:hover,\n.aw-tool:focus-within,\n.aw-tool:focus-visible {\n border-color: #0058a3;\n outline: 3px solid #ff6a00;\n outline-offset: 1px;\n}\n.aw-tool--lang {\n flex: 1 1 auto;\n}\n.aw-tool--lang select.aw-lang {\n background: transparent;\n border: 0;\n color: inherit;\n font: inherit;\n padding: 2px 0;\n width: 100%;\n cursor: pointer;\n}\n.aw-tool--lang select.aw-lang:focus {\n outline: none;\n}\n.aw-tool--oversize.is-on {\n background: #0058a3;\n color: #fff;\n border-color: #003c73;\n}\n\n.aw-panel--xl {\n width: 520px;\n font-size: 1.08rem;\n}\n.aw-panel--xl .aw-feat-grid {\n grid-auto-rows: 160px;\n}\n.aw-panel--xl .aw-feat {\n padding: 14px 10px 12px;\n}\n.aw-panel--xl .aw-feat-icon svg {\n width: 34px;\n height: 34px;\n}\n.aw-panel--xl .aw-feat-label {\n font-size: 0.95rem;\n}\n.aw-panel--xl .aw-profile-btn {\n padding: 14px 10px;\n font-size: 1rem;\n}\n\n.aw-section {\n margin-bottom: 16px;\n}\n.aw-h3 {\n font-size: 0.95rem;\n font-weight: 600;\n margin: 0 0 8px;\n color: #333;\n text-transform: uppercase;\n letter-spacing: 0.03em;\n}\n\n.aw-profile-grid {\n display: grid;\n grid-template-columns: 1fr 1fr;\n gap: 8px;\n}\n.aw-profile-btn {\n background: #f7f9fc;\n color: #0058a3;\n border: 2px solid #d1e0ee;\n padding: 10px 8px;\n border-radius: 8px;\n font-size: 0.875rem;\n font-weight: 600;\n cursor: pointer;\n text-align: center;\n transition:\n background 0.15s,\n border-color 0.15s;\n}\n.aw-profile-btn:hover,\n.aw-profile-btn:focus-visible {\n background: #e5efff;\n border-color: #0058a3;\n outline: 3px solid #ff6a00;\n outline-offset: 1px;\n}\n\n.aw-feat-grid {\n display: grid;\n grid-template-columns: repeat(3, 1fr);\n /* Every row is locked to the same height so cards look identical\n regardless of label length / language. 136px fits 3-line labels plus\n icon, stage-dots and status badge across every supported translation. */\n grid-auto-rows: 136px;\n gap: 8px;\n}\n.aw-feat {\n position: relative;\n display: grid;\n grid-template-rows: auto minmax(0, 1fr) auto;\n justify-items: center;\n align-items: center;\n gap: 4px;\n background: #fff;\n border: 2px solid #e0e0e0;\n border-radius: 10px;\n padding: 12px 8px 10px;\n cursor: pointer;\n font: inherit;\n text-align: center;\n color: #111;\n overflow: hidden;\n transition:\n border-color 0.15s,\n background 0.15s;\n}\n.aw-feat:hover,\n.aw-feat:focus-visible {\n background: #eaf1f9;\n outline: 3px solid #ff6a00;\n outline-offset: 1px;\n}\n.aw-feat.is-on {\n background: #eef5ff;\n border-color: #0058a3;\n color: #002c57;\n}\n.aw-feat-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n color: #0058a3;\n}\n.aw-feat.is-on .aw-feat-icon {\n color: #003c73;\n}\n.aw-feat-label {\n font-size: 0.85rem;\n font-weight: 600;\n line-height: 1.2;\n overflow-wrap: anywhere;\n}\n.aw-feat-badge {\n display: inline-block;\n min-width: 28px;\n padding: 1px 7px;\n background: #e9eff7;\n color: #0058a3;\n border-radius: 999px;\n font-size: 0.72rem;\n font-weight: 700;\n text-align: center;\n line-height: 1.4;\n}\n.aw-stage-dots {\n display: inline-flex;\n gap: 3px;\n align-items: center;\n justify-content: center;\n width: 100%;\n margin: 2px 0 1px;\n}\n.aw-stage-dot {\n flex: 1 1 0;\n max-width: 18px;\n height: 4px;\n border-radius: 2px;\n background: #d1e0ee;\n transition: background 0.15s;\n}\n.aw-stage-dot.is-filled {\n background: #0058a3;\n}\n.aw-feat.is-on .aw-stage-dot {\n background: #b6cce5;\n}\n.aw-feat.is-on .aw-stage-dot.is-filled {\n background: #003c73;\n}\n.aw-feat.is-on .aw-feat-badge {\n background: #0058a3;\n color: #fff;\n}\n.aw-feat-check {\n position: absolute;\n top: 6px;\n inset-inline-end: 6px;\n width: 20px;\n height: 20px;\n display: none;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n background: #0058a3;\n color: #fff;\n}\n.aw-feat.is-on .aw-feat-check {\n display: inline-flex;\n}\n.aw-feat-info {\n position: absolute;\n top: 6px;\n inset-inline-start: 6px;\n width: 18px;\n height: 18px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n color: #6b8aac;\n background: #eef2f7;\n}\n.aw-feat.is-on .aw-feat-info {\n color: #0058a3;\n background: #fff;\n}\n\n.aw-feat-wrap {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.aw-feat-wrap > .aw-feat {\n width: 100%;\n}\n.aw-feat-tooltip {\n position: absolute;\n top: calc(100% + 6px);\n /* Default: centered on card (middle column in 3-col layout). Left/right\n columns get their tooltip pinned to the corresponding edge via the\n nth-child rules below, so the overlay never escapes the panel. */\n left: 50%;\n transform: translateX(-50%);\n z-index: 10;\n display: none;\n width: max-content;\n min-width: 180px;\n max-width: 260px;\n padding: 8px 12px;\n background: #111;\n color: #fff;\n font-size: 0.78rem;\n font-weight: 400;\n line-height: 1.4;\n text-align: center;\n border-radius: 6px;\n box-shadow: 0 6px 18px rgba(0, 0, 0, 0.35);\n pointer-events: none;\n overflow-wrap: anywhere;\n word-wrap: break-word;\n white-space: normal;\n}\n.aw-feat-wrap:hover > .aw-feat-tooltip,\n.aw-feat-wrap:focus-within > .aw-feat-tooltip {\n display: block;\n}\n/* 3-column grid: left-column tiles anchor their tooltip to the card's\n left edge, right-column tiles to the right edge. Middle column keeps\n the default centered position. Without these rules, edge tooltips slid\n past the panel boundary and triggered a horizontal scroll. */\n.aw-feat-grid > .aw-feat-wrap:nth-child(3n + 1) > .aw-feat-tooltip {\n left: 0;\n right: auto;\n transform: none;\n}\n.aw-feat-grid > .aw-feat-wrap:nth-child(3n) > .aw-feat-tooltip {\n left: auto;\n right: 0;\n transform: none;\n}\n@media (max-width: 380px) {\n /* 2-column fallback: odd columns anchor-left, even anchor-right. */\n .aw-feat-grid > .aw-feat-wrap:nth-child(odd) > .aw-feat-tooltip {\n left: 0;\n right: auto;\n transform: none;\n }\n .aw-feat-grid > .aw-feat-wrap:nth-child(even) > .aw-feat-tooltip {\n left: auto;\n right: 0;\n transform: none;\n }\n}\n\n.aw-summary {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n list-style: none;\n padding: 4px 0;\n margin-bottom: 4px;\n}\n.aw-summary::-webkit-details-marker {\n display: none;\n}\n.aw-summary svg {\n transition: transform 0.15s;\n}\n.aw-collapsible[open] .aw-summary svg {\n transform: rotate(180deg);\n}\n.aw-collapsible:not([open]) .aw-h3 {\n margin-bottom: 0;\n}\n\n@media (max-width: 380px) {\n .aw-feat-grid {\n grid-template-columns: repeat(2, 1fr);\n }\n}\n\n.aw-footer {\n margin-top: 12px;\n padding-top: 12px;\n border-top: 1px solid #e0e0e0;\n}\n.aw-reset {\n width: 100%;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 8px;\n background: #fff;\n color: #c00;\n border: 2px solid #c00;\n padding: 10px;\n border-radius: 8px;\n font-weight: 600;\n cursor: pointer;\n}\n.aw-reset svg {\n flex: 0 0 auto;\n}\n.aw-reset:hover,\n.aw-reset:focus-visible {\n background: #c00;\n color: #fff;\n outline: 3px solid #ff6a00;\n}\n.aw-statement-link {\n display: block;\n margin-top: 10px;\n text-align: center;\n color: #0058a3;\n text-decoration: underline;\n font-size: 0.85rem;\n}\n.aw-disclaimer {\n font-size: 0.75rem;\n color: #666;\n margin: 12px 0 0;\n line-height: 1.4;\n}\n.aw-poweredby {\n font-size: 10px;\n font-weight: 400;\n color: #888;\n margin: 10px 0 0;\n text-align: center;\n line-height: 1.3;\n letter-spacing: 0.01em;\n}\n.aw-poweredby a {\n color: inherit;\n text-decoration: underline;\n text-decoration-color: #bbb;\n text-underline-offset: 2px;\n}\n.aw-poweredby a:hover,\n.aw-poweredby a:focus-visible {\n color: #0058a3;\n text-decoration-color: currentColor;\n}\n.aw-live {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.aw-reading-mask {\n --aw-mask-y: 50vh;\n position: fixed;\n inset: 0;\n z-index: 2147483645;\n pointer-events: none;\n background: linear-gradient(\n to bottom,\n rgba(0, 0, 0, 0.75) 0,\n rgba(0, 0, 0, 0.75) calc(var(--aw-mask-y) - 100px),\n rgba(0, 0, 0, 0) calc(var(--aw-mask-y) - 80px),\n rgba(0, 0, 0, 0) calc(var(--aw-mask-y) + 80px),\n rgba(0, 0, 0, 0.75) calc(var(--aw-mask-y) + 100px),\n rgba(0, 0, 0, 0.75) 100%\n );\n}\n\n.aw-reading-guide {\n position: fixed;\n left: 0;\n width: 100%;\n height: 32px;\n background: rgba(255, 235, 59, 0.35);\n border-top: 2px solid rgba(255, 165, 0, 0.8);\n border-bottom: 2px solid rgba(255, 165, 0, 0.8);\n pointer-events: none;\n z-index: 2147483644;\n}\n\n#aw-struct-nav {\n position: fixed;\n top: 20px;\n right: 20px;\n z-index: 2147483647;\n width: 320px;\n max-height: 70vh;\n overflow-y: auto;\n background: #fff;\n color: #111;\n border-radius: 12px;\n box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);\n padding: 12px 16px;\n font:\n 15px / 1.4 -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n sans-serif;\n}\n#aw-struct-nav .aw-struct-nav__close {\n position: absolute;\n top: 8px;\n right: 10px;\n background: transparent;\n border: 0;\n font-size: 22px;\n cursor: pointer;\n color: #666;\n}\n#aw-struct-nav ul {\n list-style: none;\n padding: 0;\n margin: 8px 0 0;\n}\n#aw-struct-nav li {\n margin: 0;\n}\n#aw-struct-nav li[data-level='2'] a {\n padding-left: 16px;\n}\n#aw-struct-nav li[data-level='3'] a {\n padding-left: 32px;\n}\n#aw-struct-nav a {\n display: block;\n padding: 6px 8px;\n color: #0058a3;\n text-decoration: none;\n border-radius: 4px;\n}\n#aw-struct-nav a:hover,\n#aw-struct-nav a:focus-visible {\n background: #eaf1f9;\n outline: 2px solid #0058a3;\n}\n\n@media (max-width: 520px) {\n .aw-panel {\n width: calc(100vw - 40px);\n bottom: 80px;\n left: 20px;\n right: 20px;\n }\n .aw-panel--top-right,\n .aw-panel--top-left {\n top: 20px;\n bottom: auto;\n }\n}\n\n[dir='rtl'] .aw-panel--bottom-right,\n[dir='rtl'] .aw-panel--top-right {\n right: auto;\n left: 20px;\n}\n\n@media (prefers-color-scheme: dark) {\n .aw-panel {\n background: #1b1b1b;\n color: #eee;\n }\n .aw-title {\n color: #6ea8e6;\n }\n .aw-h3 {\n color: #bbb;\n }\n .aw-profile-btn {\n background: #2a2a2a;\n color: #6ea8e6;\n border-color: #3b3b3b;\n }\n .aw-profile-btn:hover {\n background: #333;\n }\n .aw-feat {\n background: #222;\n color: #eee;\n border-color: #3b3b3b;\n }\n .aw-feat:hover {\n background: #2c2c2c;\n }\n .aw-feat.is-on {\n background: #0f2d4c;\n border-color: #0a66c2;\n color: #fff;\n }\n .aw-feat-icon {\n color: #6ea8e6;\n }\n .aw-feat.is-on .aw-feat-icon {\n color: #cfe1f7;\n }\n .aw-feat-badge {\n background: #3b3b3b;\n color: #6ea8e6;\n }\n .aw-feat.is-on .aw-feat-badge {\n background: #0a66c2;\n color: #fff;\n }\n .aw-feat-check {\n background: #0a66c2;\n }\n .aw-feat-info {\n background: #2c2c2c;\n color: #9aa6b3;\n }\n .aw-feat.is-on .aw-feat-info {\n background: #0f2d4c;\n color: #cfe1f7;\n }\n .aw-feat-tooltip {\n background: #eee;\n color: #111;\n box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);\n }\n .aw-tool {\n background: #2a2a2a;\n border-color: #3b3b3b;\n color: #6ea8e6;\n }\n .aw-tool--oversize.is-on {\n background: #0a66c2;\n color: #fff;\n border-color: #064d8f;\n }\n .aw-stage-dot {\n background: #3b3b3b;\n }\n .aw-stage-dot.is-filled {\n background: #6ea8e6;\n }\n .aw-feat.is-on .aw-stage-dot {\n background: #064d8f;\n }\n .aw-feat.is-on .aw-stage-dot.is-filled {\n background: #cfe1f7;\n }\n .aw-footer {\n border-color: #333;\n }\n .aw-reset {\n background: #1b1b1b;\n color: #ff7676;\n border-color: #ff7676;\n }\n .aw-disclaimer {\n color: #aaa;\n }\n .aw-poweredby {\n color: #888;\n }\n .aw-poweredby a {\n text-decoration-color: #555;\n }\n .aw-poweredby a:hover,\n .aw-poweredby a:focus-visible {\n color: #6ea8e6;\n }\n #aw-struct-nav {\n background: #1b1b1b;\n color: #eee;\n }\n #aw-struct-nav a {\n color: #6ea8e6;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .aw-panel,\n .aw-feat,\n .aw-profile-btn,\n .aw-reset,\n .aw-close {\n transition: none !important;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type FeatureId, type WidgetConfig, type Position } from './types/widget.js';
|
|
2
|
+
import type { Locale } from './types/locale.js';
|
|
3
|
+
/**
|
|
4
|
+
* Fully-resolved config with no optional fields — every loader / panel /
|
|
5
|
+
* feature call site can rely on the presence of every key.
|
|
6
|
+
*/
|
|
7
|
+
export interface ResolvedConfig {
|
|
8
|
+
corePath: string;
|
|
9
|
+
cssPath: string;
|
|
10
|
+
coreIntegrity: string | null;
|
|
11
|
+
cssIntegrity: string | null;
|
|
12
|
+
locale: Locale;
|
|
13
|
+
position: Position;
|
|
14
|
+
offset: {
|
|
15
|
+
x: number;
|
|
16
|
+
y: number;
|
|
17
|
+
};
|
|
18
|
+
zIndex: number;
|
|
19
|
+
primaryColor: string;
|
|
20
|
+
buttonLabel: string | null;
|
|
21
|
+
storageKey: string;
|
|
22
|
+
initialFeatures: Readonly<Partial<Record<FeatureId, boolean>>>;
|
|
23
|
+
disabledFeatures: ReadonlySet<FeatureId>;
|
|
24
|
+
statementUrl: string | null;
|
|
25
|
+
disclaimer: string | null;
|
|
26
|
+
hidePoweredBy: boolean;
|
|
27
|
+
draggableFab: boolean;
|
|
28
|
+
respectReducedMotion: boolean;
|
|
29
|
+
hideOnPrint: boolean;
|
|
30
|
+
debug: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare function resolveConfig(input: WidgetConfig | undefined, navLang: string): ResolvedConfig;
|
|
33
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAIhD;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,gBAAgB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB;AAsBD,wBAAgB,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,cAAc,CA0B9F"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* BAUER GROUP Accessibility Widget — Core (on-demand bundle)
|
|
3
|
+
* SPDX-License-Identifier: AGPL-3.0-only · © 2026 BAUER GROUP
|
|
4
|
+
* AGPL-3.0-only or commercial (info@bauer-group.com) — see LICENSE / LICENSING.md
|
|
5
|
+
*/
|
|
6
|
+
import { type Locale, type WidgetConfig, type WidgetState } from './types/index.js';
|
|
7
|
+
export interface CoreOpenOptions {
|
|
8
|
+
trigger?: HTMLElement;
|
|
9
|
+
config?: WidgetConfig;
|
|
10
|
+
locale?: Locale | 'auto';
|
|
11
|
+
statementUrl?: string;
|
|
12
|
+
}
|
|
13
|
+
declare function open(opts?: CoreOpenOptions): void;
|
|
14
|
+
declare function close(): void;
|
|
15
|
+
declare function set(id: string, value: unknown): void;
|
|
16
|
+
declare function applyProfileById(id: string): boolean;
|
|
17
|
+
declare function setLocale(next: string): boolean;
|
|
18
|
+
declare function reset(): void;
|
|
19
|
+
declare function getState(): WidgetState;
|
|
20
|
+
declare const api: {
|
|
21
|
+
open: typeof open;
|
|
22
|
+
close: typeof close;
|
|
23
|
+
set: typeof set;
|
|
24
|
+
applyProfile: typeof applyProfileById;
|
|
25
|
+
setLocale: typeof setLocale;
|
|
26
|
+
reset: typeof reset;
|
|
27
|
+
getState: typeof getState;
|
|
28
|
+
version: string;
|
|
29
|
+
};
|
|
30
|
+
export default api;
|
|
31
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAGL,KAAK,MAAM,EAEX,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAQ1B,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAyBD,iBAAS,IAAI,CAAC,IAAI,GAAE,eAAoB,GAAG,IAAI,CA2B9C;AAED,iBAAS,KAAK,IAAI,IAAI,CAMrB;AAED,iBAAS,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI,CAgB7C;AAED,iBAAS,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAkB7C;AAED,iBAAS,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAexC;AAED,iBAAS,KAAK,IAAI,IAAI,CAQrB;AAED,iBAAS,QAAQ,IAAI,WAAW,CAG/B;AAED,QAAA,MAAM,GAAG;;;;;;;;;CASR,CAAC;AAMF,eAAe,GAAG,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/features/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAgBrD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAoBnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../src/features/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/E,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,WAAW,CAelF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reading-guide.d.ts","sourceRoot":"","sources":["../../src/features/reading-guide.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAqBnD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reading-mask.d.ts","sourceRoot":"","sources":["../../src/features/reading-mask.ts"],"names":[],"mappings":"AAGA,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAqBlD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"structure-nav.d.ts","sourceRoot":"","sources":["../../src/features/structure-nav.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAwCzD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Locale } from '../types/index.js';
|
|
2
|
+
export declare function ttsSupported(): boolean;
|
|
3
|
+
export declare function ttsActive(): boolean;
|
|
4
|
+
export declare function ttsStart(text: string, locale: Locale, rate?: number): boolean;
|
|
5
|
+
export declare function ttsStop(): void;
|
|
6
|
+
export declare function collectReadableText(root?: Element, limit?: number): string;
|
|
7
|
+
//# sourceMappingURL=tts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../src/features/tts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAoChD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,SAAM,GAAG,OAAO,CAe1E;AAED,wBAAgB,OAAO,IAAI,IAAI,CAI9B;AAED,wBAAgB,mBAAmB,CAAC,IAAI,GAAE,OAAuB,EAAE,KAAK,SAAO,GAAG,MAAM,CAKvF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"focus-trap.d.ts","sourceRoot":"","sources":["../src/focus-trap.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,SAAS;IACxB,QAAQ,IAAI,IAAI,CAAC;IACjB,UAAU,IAAI,IAAI,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,WAAW,GAAG,SAAS,CA0B5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ar.d.ts","sourceRoot":"","sources":["../../src/i18n/ar.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bn.d.ts","sourceRoot":"","sources":["../../src/i18n/bn.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cs.d.ts","sourceRoot":"","sources":["../../src/i18n/cs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"de.d.ts","sourceRoot":"","sources":["../../src/i18n/de.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA8DhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"el.d.ts","sourceRoot":"","sources":["../../src/i18n/el.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/i18n/en.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA8DhB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"es.d.ts","sourceRoot":"","sources":["../../src/i18n/es.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fa.d.ts","sourceRoot":"","sources":["../../src/i18n/fa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fr.d.ts","sourceRoot":"","sources":["../../src/i18n/fr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"he.d.ts","sourceRoot":"","sources":["../../src/i18n/he.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hi.d.ts","sourceRoot":"","sources":["../../src/i18n/hi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hu.d.ts","sourceRoot":"","sources":["../../src/i18n/hu.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/i18n/id.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Locale } from '../types/index.js';
|
|
2
|
+
import type { Translation } from './types.js';
|
|
3
|
+
export declare const translations: Record<Locale, Translation>;
|
|
4
|
+
export declare function t(locale: Locale): Translation;
|
|
5
|
+
export type { Translation };
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/i18n/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAiC9C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA6BpD,CAAC;AAEF,wBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAE7C;AAED,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"it.d.ts","sourceRoot":"","sources":["../../src/i18n/it.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ja.d.ts","sourceRoot":"","sources":["../../src/i18n/ja.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ko.d.ts","sourceRoot":"","sources":["../../src/i18n/ko.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nl.d.ts","sourceRoot":"","sources":["../../src/i18n/nl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pl.d.ts","sourceRoot":"","sources":["../../src/i18n/pl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pt.d.ts","sourceRoot":"","sources":["../../src/i18n/pt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ro.d.ts","sourceRoot":"","sources":["../../src/i18n/ro.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ru.d.ts","sourceRoot":"","sources":["../../src/i18n/ru.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,eAAO,MAAM,EAAE,EAAE,WA6ChB,CAAC"}
|