accessify-widget 0.3.40 → 0.3.42
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/{contrast-F7lHj833.js → contrast-BcTWODsK.js} +4 -8
- package/dist/contrast-BcTWODsK.js.map +1 -0
- package/dist/{index-BD3C-sG-.js → index-lQVz5TBk.js} +35 -58
- package/dist/{index-BD3C-sG-.js.map → index-lQVz5TBk.js.map} +1 -1
- package/dist/{keyboard-nav-ohhgkfVh.js → keyboard-nav-BqdopG_-.js} +2 -2
- package/dist/{keyboard-nav-ohhgkfVh.js.map → keyboard-nav-BqdopG_-.js.map} +1 -1
- package/dist/loader.min.js +1 -1
- package/dist/{page-structure-BuecyE3V.js → page-structure-D74Eg0X5.js} +2 -2
- package/dist/{page-structure-BuecyE3V.js.map → page-structure-D74Eg0X5.js.map} +1 -1
- package/dist/widget.js +1 -1
- package/dist/widget.js.map +1 -1
- package/package.json +1 -1
- package/dist/contrast-F7lHj833.js.map +0 -1
package/dist/accessify.mjs
CHANGED
|
@@ -47,7 +47,8 @@ function buildCSS(mode) {
|
|
|
47
47
|
html {
|
|
48
48
|
color-scheme: ${t.colorScheme} !important;
|
|
49
49
|
}
|
|
50
|
-
html, body
|
|
50
|
+
html, body,
|
|
51
|
+
body *${EX} {
|
|
51
52
|
background-color: ${t.pageBg} !important;
|
|
52
53
|
}
|
|
53
54
|
`;
|
|
@@ -116,12 +117,7 @@ function buildCSS(mode) {
|
|
|
116
117
|
color: #000000 !important;
|
|
117
118
|
}
|
|
118
119
|
` : "";
|
|
119
|
-
|
|
120
|
-
body :where(main, article, aside, header, footer, section, nav)${EX} {
|
|
121
|
-
background-color: ${t.pageBg} !important;
|
|
122
|
-
}
|
|
123
|
-
`;
|
|
124
|
-
return base + textColor + links + forms + focus + borders + images + highExtras + sectionBg;
|
|
120
|
+
return base + textColor + links + forms + focus + borders + images + highExtras;
|
|
125
121
|
}
|
|
126
122
|
function createContrastModule() {
|
|
127
123
|
let currentMode = "off";
|
|
@@ -173,4 +169,4 @@ function createContrastModule() {
|
|
|
173
169
|
export {
|
|
174
170
|
createContrastModule as default
|
|
175
171
|
};
|
|
176
|
-
//# sourceMappingURL=contrast-
|
|
172
|
+
//# sourceMappingURL=contrast-BcTWODsK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"contrast-BcTWODsK.js","sources":["../src/features/contrast.ts"],"sourcesContent":["// ---------------------------------------------------------------------------\n// Accessify – Contrast Modes (Accessibility Feature)\n// ---------------------------------------------------------------------------\n//\n// Three modes: light, dark, high — each as a clearly defined token set.\n//\n// Design principles:\n// 1. CONTENT elements (text, headings, links, buttons, form controls) get\n// explicit color overrides — these are what users need to read.\n// 2. STRUCTURAL elements (wrapper divs, sections, nav) get background only\n// via `html` and `body` — not individually. This prevents breaking\n// Framer/CSS-Grid/Flex layouts where divs use fit-content, overflow:hidden,\n// or fixed heights.\n// 3. The widget itself (inside #accessify-root / Shadow DOM) is NEVER touched.\n// 4. Focus indicators are defined in ALL modes, not just high contrast.\n// 5. border-color is NOT globally overridden — only on elements that have\n// visible borders for content separation (tables, fieldsets, hr).\n//\n// Selector strategy:\n// - `:where()` for zero-specificity (site styles can still win if needed,\n// but `!important` ensures accessibility overrides take priority).\n// - `body :where(...)` scopes to page content.\n// - `body *:not(#accessify-root):not(#accessify-root *)` used only where\n// we need broad text color coverage.\n// - Framer-safe: no background-color on generic div/section/article — only\n// on html/body. Content readability comes from text color, not from\n// painting every container.\n//\n// ---------------------------------------------------------------------------\n\nimport type { FeatureModule, FeatureState } from '../types';\n\ntype ContrastMode = 'off' | 'light' | 'dark' | 'high';\n\n// ---------------------------------------------------------------------------\n// Token definitions — each mode is a self-contained color system\n// ---------------------------------------------------------------------------\n\ninterface ContrastTokens {\n colorScheme: string;\n pageBg: string;\n text: string;\n textStrong: string; // headings, bold\n link: string;\n linkVisited: string;\n focusRing: string;\n borderContent: string; // for tables, hr, fieldset — NOT every div\n inputBg: string;\n inputBorder: string;\n imgFilter: string; // empty string = no filter\n}\n\nconst TOKENS: Record<Exclude<ContrastMode, 'off'>, ContrastTokens> = {\n light: {\n colorScheme: 'light',\n pageBg: '#fbf7ef',\n text: '#1a1a1a',\n textStrong: '#0d0d0d',\n link: '#0047b3',\n linkVisited: '#3d2b85',\n focusRing: '#0047b3',\n borderContent:'#888078',\n inputBg: '#ffffff',\n inputBorder: '#6f675d',\n imgFilter: '',\n },\n dark: {\n colorScheme: 'dark',\n pageBg: '#101418',\n text: '#e8e4dc',\n textStrong: '#ffffff',\n link: '#7cc8f5',\n linkVisited: '#b8a0e8',\n focusRing: '#7cc8f5',\n borderContent:'#3a4a58',\n inputBg: '#1a2028',\n inputBorder: '#4a5a68',\n imgFilter: 'brightness(0.90) contrast(1.06)',\n },\n high: {\n colorScheme: 'dark',\n pageBg: '#000000',\n text: '#ffffff',\n textStrong: '#ffffff',\n link: '#ffff00',\n linkVisited: '#ffff00',\n focusRing: '#ffff00',\n borderContent:'#ffffff',\n inputBg: '#000000',\n inputBorder: '#ffffff',\n imgFilter: 'contrast(1.25) brightness(0.95)',\n },\n};\n\n// ---------------------------------------------------------------------------\n// CSS generation — separated into logical layers\n// ---------------------------------------------------------------------------\n\n/** Elements to exclude from page-level contrast (the widget itself) */\nconst EX = ':not(#accessify-root):not(#accessify-root *)';\n\nfunction buildCSS(mode: Exclude<ContrastMode, 'off'>): string {\n const t = TOKENS[mode];\n const isHigh = mode === 'high';\n\n // ── Layer 1: Background on ALL elements ──\n // We must override background-color broadly so dark headers/sections don't\n // keep their original dark bg when text switches to dark (light mode) or\n // vice versa. Key: use `background-color` not `background` to preserve\n // background-images. Don't touch border-color or box-shadow here — those\n // were what broke Framer layouts before.\n const base = `\n html {\n color-scheme: ${t.colorScheme} !important;\n }\n html, body,\n body *${EX} {\n background-color: ${t.pageBg} !important;\n }\n `;\n\n // ── Layer 2: Text color on ALL content elements ──\n // Using body * ensures text inside any container is readable, without\n // painting the container's background (which would break layouts).\n const textColor = `\n body *${EX} {\n color: ${t.text} !important;\n }\n body :where(h1, h2, h3, h4, h5, h6, strong, b, th)${EX} {\n color: ${t.textStrong} !important;\n }\n `;\n\n // ── Layer 3: Links — distinct color + underline for visibility ──\n const links = `\n body :where(a)${EX} {\n color: ${t.link} !important;\n text-decoration: underline !important;\n text-decoration-color: ${t.link} !important;\n ${isHigh ? 'text-decoration-thickness: 2px !important; text-underline-offset: 3px !important;' : ''}\n }\n body :where(a:visited)${EX} {\n color: ${t.linkVisited} !important;\n }\n body :where(a:hover, a:focus)${EX} {\n opacity: 0.85 !important;\n }\n `;\n\n // ── Layer 4: Form controls — explicit bg + border for readability ──\n // These get background because they ARE content, not structural wrappers.\n const forms = `\n body :where(input, textarea, select)${EX} {\n background-color: ${t.inputBg} !important;\n color: ${t.text} !important;\n border: 1px solid ${t.inputBorder} !important;\n box-shadow: none !important;\n }\n body :where(button, [role=\"button\"])${EX} {\n color: ${t.text} !important;\n border-color: ${t.inputBorder} !important;\n ${isHigh ? `background-color: ${t.pageBg} !important; border: 2px solid ${t.inputBorder} !important;` : ''}\n }\n `;\n\n // ── Layer 5: Focus indicators — in ALL modes, stronger in high ──\n const focus = `\n body :where(a, button, input, textarea, select, [tabindex])${EX}:focus-visible {\n outline: ${isHigh ? '3px' : '2px'} solid ${t.focusRing} !important;\n outline-offset: 2px !important;\n }\n `;\n\n // ── Layer 6: Content borders — only on elements that visually separate ──\n // NOT on generic divs — that destroys Framer card layouts.\n const borders = `\n body :where(table, th, td, hr, fieldset)${EX} {\n border-color: ${t.borderContent} !important;\n }\n `;\n\n // ── Layer 7: Images — gentle filter, skip decorative SVG icons ──\n const images = t.imgFilter ? `\n body :where(img, video, picture)${EX} {\n filter: ${t.imgFilter} !important;\n }\n ` : '';\n\n // ── Layer 8: High contrast extras ──\n const highExtras = isHigh ? `\n body :where(::placeholder)${EX} {\n color: #aaaaaa !important;\n opacity: 1 !important;\n }\n body :where(::selection) {\n background: #ffff00 !important;\n color: #000000 !important;\n }\n body :where(mark)${EX} {\n background: #ffff00 !important;\n color: #000000 !important;\n }\n ` : '';\n\n return base + textColor + links + forms + focus + borders + images + highExtras;\n}\n\n// ---------------------------------------------------------------------------\n// Module\n// ---------------------------------------------------------------------------\n\nexport default function createContrastModule(): FeatureModule {\n let currentMode: ContrastMode = 'off';\n const STYLE_ID = 'accessify-contrast';\n const STORAGE_KEY = 'accessify-contrast-mode';\n\n function applyStyles(mode: ContrastMode) {\n let styleEl = document.getElementById(STYLE_ID);\n if (mode === 'off') {\n styleEl?.remove();\n return;\n }\n if (!styleEl) {\n styleEl = document.createElement('style');\n styleEl.id = STYLE_ID;\n document.head.appendChild(styleEl);\n }\n styleEl.textContent = buildCSS(mode);\n }\n\n function activate() {\n const saved = localStorage.getItem(STORAGE_KEY) as ContrastMode;\n currentMode = saved === 'light' || saved === 'dark' || saved === 'high' ? saved : 'dark';\n applyStyles(currentMode);\n }\n\n function deactivate() {\n currentMode = 'off';\n applyStyles('off');\n localStorage.removeItem(STORAGE_KEY);\n }\n\n return {\n id: 'contrast',\n name: () => 'Contrast',\n description: 'Increase contrast for better readability',\n icon: 'contrast',\n category: 'visual',\n activate,\n deactivate,\n getState: (): FeatureState => ({ id: 'contrast', enabled: currentMode !== 'off', value: currentMode }),\n setState: (mode: ContrastMode) => {\n currentMode = mode === 'light' || mode === 'dark' || mode === 'high' ? mode : 'off';\n applyStyles(currentMode);\n if (currentMode === 'off') {\n localStorage.removeItem(STORAGE_KEY);\n } else {\n localStorage.setItem(STORAGE_KEY, currentMode);\n }\n },\n };\n}\n"],"names":[],"mappings":"AAoDA,MAAM,SAA+D;AAAA,EACnE,OAAO;AAAA,IACL,aAAa;AAAA,IACb,QAAc;AAAA,IACd,MAAc;AAAA,IACd,YAAc;AAAA,IACd,MAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,IACd,eAAc;AAAA,IACd,SAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,EAAA;AAAA,EAEhB,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,QAAc;AAAA,IACd,MAAc;AAAA,IACd,YAAc;AAAA,IACd,MAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,IACd,eAAc;AAAA,IACd,SAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,EAAA;AAAA,EAEhB,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,QAAc;AAAA,IACd,MAAc;AAAA,IACd,YAAc;AAAA,IACd,MAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,IACd,eAAc;AAAA,IACd,SAAc;AAAA,IACd,aAAc;AAAA,IACd,WAAc;AAAA,EAAA;AAElB;AAOA,MAAM,KAAK;AAEX,SAAS,SAAS,MAA4C;AAC5D,QAAM,IAAI,OAAO,IAAI;AACrB,QAAM,SAAS,SAAS;AAQxB,QAAM,OAAO;AAAA;AAAA,sBAEO,EAAE,WAAW;AAAA;AAAA;AAAA,YAGvB,EAAE;AAAA,0BACY,EAAE,MAAM;AAAA;AAAA;AAOhC,QAAM,YAAY;AAAA,YACR,EAAE;AAAA,eACC,EAAE,IAAI;AAAA;AAAA,wDAEmC,EAAE;AAAA,eAC3C,EAAE,UAAU;AAAA;AAAA;AAKzB,QAAM,QAAQ;AAAA,oBACI,EAAE;AAAA,eACP,EAAE,IAAI;AAAA;AAAA,+BAEU,EAAE,IAAI;AAAA,QAC7B,SAAS,sFAAsF,EAAE;AAAA;AAAA,4BAE7E,EAAE;AAAA,eACf,EAAE,WAAW;AAAA;AAAA,mCAEO,EAAE;AAAA;AAAA;AAAA;AAOnC,QAAM,QAAQ;AAAA,0CAC0B,EAAE;AAAA,0BAClB,EAAE,OAAO;AAAA,eACpB,EAAE,IAAI;AAAA,0BACK,EAAE,WAAW;AAAA;AAAA;AAAA,0CAGG,EAAE;AAAA,eAC7B,EAAE,IAAI;AAAA,sBACC,EAAE,WAAW;AAAA,QAC3B,SAAS,qBAAqB,EAAE,MAAM,kCAAkC,EAAE,WAAW,iBAAiB,EAAE;AAAA;AAAA;AAK9G,QAAM,QAAQ;AAAA,iEACiD,EAAE;AAAA,iBAClD,SAAS,QAAQ,KAAK,UAAU,EAAE,SAAS;AAAA;AAAA;AAAA;AAO1D,QAAM,UAAU;AAAA,8CAC4B,EAAE;AAAA,sBAC1B,EAAE,aAAa;AAAA;AAAA;AAKnC,QAAM,SAAS,EAAE,YAAY;AAAA,sCACO,EAAE;AAAA,gBACxB,EAAE,SAAS;AAAA;AAAA,MAErB;AAGJ,QAAM,aAAa,SAAS;AAAA,gCACE,EAAE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAQX,EAAE;AAAA;AAAA;AAAA;AAAA,MAInB;AAEJ,SAAO,OAAO,YAAY,QAAQ,QAAQ,QAAQ,UAAU,SAAS;AACvE;AAMA,SAAwB,uBAAsC;AAC5D,MAAI,cAA4B;AAChC,QAAM,WAAW;AACjB,QAAM,cAAc;AAEpB,WAAS,YAAY,MAAoB;AACvC,QAAI,UAAU,SAAS,eAAe,QAAQ;AAC9C,QAAI,SAAS,OAAO;AAClB,eAAS,OAAA;AACT;AAAA,IACF;AACA,QAAI,CAAC,SAAS;AACZ,gBAAU,SAAS,cAAc,OAAO;AACxC,cAAQ,KAAK;AACb,eAAS,KAAK,YAAY,OAAO;AAAA,IACnC;AACA,YAAQ,cAAc,SAAS,IAAI;AAAA,EACrC;AAEA,WAAS,WAAW;AAClB,UAAM,QAAQ,aAAa,QAAQ,WAAW;AAC9C,kBAAc,UAAU,WAAW,UAAU,UAAU,UAAU,SAAS,QAAQ;AAClF,gBAAY,WAAW;AAAA,EACzB;AAEA,WAAS,aAAa;AACpB,kBAAc;AACd,gBAAY,KAAK;AACjB,iBAAa,WAAW,WAAW;AAAA,EACrC;AAEA,SAAO;AAAA,IACL,IAAI;AAAA,IACJ,MAAM,MAAM;AAAA,IACZ,aAAa;AAAA,IACb,MAAM;AAAA,IACN,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,UAAU,OAAqB,EAAE,IAAI,YAAY,SAAS,gBAAgB,OAAO,OAAO;IACxF,UAAU,CAAC,SAAuB;AAChC,oBAAc,SAAS,WAAW,SAAS,UAAU,SAAS,SAAS,OAAO;AAC9E,kBAAY,WAAW;AACvB,UAAI,gBAAgB,OAAO;AACzB,qBAAa,WAAW,WAAW;AAAA,MACrC,OAAO;AACL,qBAAa,QAAQ,aAAa,WAAW;AAAA,MAC/C;AAAA,IACF;AAAA,EAAA;AAEJ;"}
|
|
@@ -6597,15 +6597,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6597
6597
|
iconId: "alt-text"
|
|
6598
6598
|
}
|
|
6599
6599
|
};
|
|
6600
|
-
const
|
|
6601
|
-
"keyboard-nav",
|
|
6602
|
-
"link-highlight",
|
|
6603
|
-
"animation-stop",
|
|
6604
|
-
"hide-images",
|
|
6605
|
-
"big-cursor"
|
|
6606
|
-
];
|
|
6607
|
-
const READING_IDS = ["reading-guide", "reading-mask", "tts"];
|
|
6608
|
-
const AI_IDS = ["text-simplify", "alt-text"];
|
|
6600
|
+
const INLINE_CONTROLS = /* @__PURE__ */ new Set(["contrast", "text-size"]);
|
|
6609
6601
|
const CONTRAST_MODES = [
|
|
6610
6602
|
{
|
|
6611
6603
|
id: "light",
|
|
@@ -6626,16 +6618,16 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6626
6618
|
const AI_FEATURES = /* @__PURE__ */ new Set(["text-simplify", "alt-text"]);
|
|
6627
6619
|
const loadedModules = /* @__PURE__ */ new Map();
|
|
6628
6620
|
const FEATURE_LOADERS = {
|
|
6629
|
-
contrast: () => import("./contrast-
|
|
6621
|
+
contrast: () => import("./contrast-BcTWODsK.js"),
|
|
6630
6622
|
"text-size": () => import("./text-size-m_mHNPWo.js"),
|
|
6631
|
-
"keyboard-nav": () => import("./keyboard-nav-
|
|
6623
|
+
"keyboard-nav": () => import("./keyboard-nav-BqdopG_-.js"),
|
|
6632
6624
|
"link-highlight": () => import("./link-highlight-DBGm067Y.js"),
|
|
6633
6625
|
"reading-guide": () => import("./reading-guide-VT8NciIL.js"),
|
|
6634
6626
|
"reading-mask": () => import("./reading-mask-BABChuCz.js"),
|
|
6635
6627
|
"animation-stop": () => import("./animation-stop-_chC8bg1.js"),
|
|
6636
6628
|
"hide-images": () => import("./hide-images-B_LeCBcd.js"),
|
|
6637
6629
|
"big-cursor": () => import("./big-cursor-B2UKu9dQ.js"),
|
|
6638
|
-
"page-structure": () => import("./page-structure-
|
|
6630
|
+
"page-structure": () => import("./page-structure-D74Eg0X5.js"),
|
|
6639
6631
|
tts: () => import("./tts-CjszLRnb.js"),
|
|
6640
6632
|
"text-simplify": () => import("./text-simplify-CK2GFhq2.js"),
|
|
6641
6633
|
"alt-text": () => Promise.resolve().then(() => altText)
|
|
@@ -6669,9 +6661,6 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6669
6661
|
const iconFn = icons[iconId];
|
|
6670
6662
|
return iconFn ? iconFn() : "";
|
|
6671
6663
|
}
|
|
6672
|
-
function getVisibleFeatures(ids) {
|
|
6673
|
-
return ids.filter((id) => get(visibleFeatureIds).has(id)).map((id) => FEATURE_REGISTRY[id]).filter(Boolean);
|
|
6674
|
-
}
|
|
6675
6664
|
function updateControlState(id, module) {
|
|
6676
6665
|
if (!module) return;
|
|
6677
6666
|
const state2 = module.getState();
|
|
@@ -6774,9 +6763,7 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6774
6763
|
$$props.ontoggle("text-size", true);
|
|
6775
6764
|
$$props.ontextsize?.(value);
|
|
6776
6765
|
}
|
|
6777
|
-
let
|
|
6778
|
-
let readingFeatures = /* @__PURE__ */ user_derived(() => getVisibleFeatures(READING_IDS));
|
|
6779
|
-
let aiFeatures = /* @__PURE__ */ user_derived(() => getVisibleFeatures(AI_IDS));
|
|
6766
|
+
let cardFeatures = /* @__PURE__ */ user_derived(() => $$props.config.features.filter((id) => !INLINE_CONTROLS.has(id) && FEATURE_REGISTRY[id]).map((id) => FEATURE_REGISTRY[id]));
|
|
6780
6767
|
user_effect(() => {
|
|
6781
6768
|
`${$$props.config.features.join("|")}|${get(activeSignature)}`;
|
|
6782
6769
|
void syncActiveModules();
|
|
@@ -6921,48 +6908,38 @@ function FeatureGrid($$anchor, $$props) {
|
|
|
6921
6908
|
{
|
|
6922
6909
|
var consequent_4 = ($$anchor2) => {
|
|
6923
6910
|
var div_6 = root_9();
|
|
6924
|
-
each(
|
|
6925
|
-
|
|
6926
|
-
|
|
6927
|
-
()
|
|
6928
|
-
|
|
6929
|
-
|
|
6930
|
-
|
|
6931
|
-
|
|
6932
|
-
|
|
6933
|
-
(
|
|
6934
|
-
|
|
6935
|
-
|
|
6936
|
-
|
|
6937
|
-
|
|
6938
|
-
|
|
6939
|
-
|
|
6940
|
-
|
|
6941
|
-
|
|
6942
|
-
|
|
6943
|
-
(
|
|
6944
|
-
|
|
6945
|
-
|
|
6946
|
-
|
|
6947
|
-
|
|
6948
|
-
|
|
6949
|
-
|
|
6950
|
-
|
|
6951
|
-
|
|
6952
|
-
() => t(get(feature).nameKey, $$props.config.lang),
|
|
6953
|
-
() => t(get(feature).nameKey, $$props.config.lang),
|
|
6954
|
-
() => t(get(feature).descKey, $$props.config.lang),
|
|
6955
|
-
() => t(get(feature).descKey, $$props.config.lang)
|
|
6956
|
-
]
|
|
6957
|
-
);
|
|
6958
|
-
delegated("click", button_2, () => handleToggle(get(feature).id));
|
|
6959
|
-
append($$anchor3, div_7);
|
|
6960
|
-
}
|
|
6961
|
-
);
|
|
6911
|
+
each(div_6, 21, () => get(cardFeatures), (feature) => feature.id, ($$anchor3, feature) => {
|
|
6912
|
+
const isActive = /* @__PURE__ */ user_derived(() => $$props.activeFeatures.get(get(feature).id) ?? false);
|
|
6913
|
+
var div_7 = root_10();
|
|
6914
|
+
var button_2 = child(div_7);
|
|
6915
|
+
var span_10 = child(button_2);
|
|
6916
|
+
html(span_10, () => getIcon(get(feature).iconId), true);
|
|
6917
|
+
var span_11 = sibling(span_10, 2);
|
|
6918
|
+
var text_4 = child(span_11);
|
|
6919
|
+
var span_12 = sibling(button_2, 2);
|
|
6920
|
+
template_effect(
|
|
6921
|
+
($0, $1, $2, $3) => {
|
|
6922
|
+
set_attribute(button_2, "data-active", get(isActive));
|
|
6923
|
+
set_attribute(button_2, "aria-checked", get(isActive));
|
|
6924
|
+
set_attribute(button_2, "aria-label", $0);
|
|
6925
|
+
set_text(text_4, $1);
|
|
6926
|
+
set_attribute(span_12, "aria-label", $2);
|
|
6927
|
+
set_attribute(span_12, "title", $3);
|
|
6928
|
+
},
|
|
6929
|
+
[
|
|
6930
|
+
() => t(get(feature).nameKey, $$props.config.lang),
|
|
6931
|
+
() => t(get(feature).nameKey, $$props.config.lang),
|
|
6932
|
+
() => t(get(feature).descKey, $$props.config.lang),
|
|
6933
|
+
() => t(get(feature).descKey, $$props.config.lang)
|
|
6934
|
+
]
|
|
6935
|
+
);
|
|
6936
|
+
delegated("click", button_2, () => handleToggle(get(feature).id));
|
|
6937
|
+
append($$anchor3, div_7);
|
|
6938
|
+
});
|
|
6962
6939
|
append($$anchor2, div_6);
|
|
6963
6940
|
};
|
|
6964
6941
|
if_block(node_4, ($$render) => {
|
|
6965
|
-
if (get(
|
|
6942
|
+
if (get(cardFeatures).length > 0) $$render(consequent_4);
|
|
6966
6943
|
});
|
|
6967
6944
|
}
|
|
6968
6945
|
append($$anchor, fragment);
|
|
@@ -8988,4 +8965,4 @@ export {
|
|
|
8988
8965
|
init as i,
|
|
8989
8966
|
t
|
|
8990
8967
|
};
|
|
8991
|
-
//# sourceMappingURL=index-
|
|
8968
|
+
//# sourceMappingURL=index-lQVz5TBk.js.map
|