ngp-accessibility 1.0.6 → 1.0.8
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/README.md +1 -15
- package/dist/AccessibilityContext.d.ts +2 -2
- package/dist/AccessibilityToolbar.d.ts +0 -1
- package/dist/index.esm.js +16 -66
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +16 -66
- package/dist/index.js.map +1 -1
- package/dist/styles.css +40 -0
- package/dist/translations.d.ts +3 -3
- package/package.json +3 -4
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# NGP Accessibility
|
|
2
2
|
|
|
3
|
-
React accessibility package with translation, text sizing, contrast modes, and
|
|
3
|
+
React accessibility package with translation, text sizing, contrast modes, and more.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -12,7 +12,6 @@ React accessibility package with translation, text sizing, contrast modes, and v
|
|
|
12
12
|
- 💡 Light background mode
|
|
13
13
|
- 🔗 Links underline toggle
|
|
14
14
|
- 📖 Readable font mode
|
|
15
|
-
- 🎤 Voice command support
|
|
16
15
|
- ✅ TypeScript & JavaScript compatible
|
|
17
16
|
- 📦 Zero dependencies (peer: React)
|
|
18
17
|
|
|
@@ -65,18 +64,6 @@ function App() {
|
|
|
65
64
|
}
|
|
66
65
|
```
|
|
67
66
|
|
|
68
|
-
## Voice Commands
|
|
69
|
-
|
|
70
|
-
When voice command is enabled, you can use:
|
|
71
|
-
|
|
72
|
-
- "increase text" / "palakihin"
|
|
73
|
-
- "decrease text" / "paliitin"
|
|
74
|
-
- "high contrast" / "mataas"
|
|
75
|
-
- "negative contrast" / "negatibo"
|
|
76
|
-
- "light background" / "maliwanag"
|
|
77
|
-
- "underline" / "guhit"
|
|
78
|
-
- "readable font" / "madaling"
|
|
79
|
-
|
|
80
67
|
## API
|
|
81
68
|
|
|
82
69
|
### AccessibilityProvider
|
|
@@ -185,7 +172,6 @@ Hook that returns:
|
|
|
185
172
|
- `lightBackground`, `toggleLightBackground()`
|
|
186
173
|
- `underlineLinks`, `toggleUnderlineLinks()`
|
|
187
174
|
- `readableFont`, `toggleReadableFont()`
|
|
188
|
-
- `voiceEnabled`, `toggleVoice()`
|
|
189
175
|
- `translate(key)` - Get translated package UI text with English fallback
|
|
190
176
|
- `t(key)` - Get your app-specific manual text for the current language, then fall back to English, then the raw key
|
|
191
177
|
|
|
@@ -10,10 +10,10 @@ interface AccessibilityState {
|
|
|
10
10
|
highContrast: boolean;
|
|
11
11
|
negativeContrast: boolean;
|
|
12
12
|
lightBackground: boolean;
|
|
13
|
+
darkMode: boolean;
|
|
13
14
|
underlineLinks: boolean;
|
|
14
15
|
highlightTitles: boolean;
|
|
15
16
|
readableFont: boolean;
|
|
16
|
-
voiceEnabled: boolean;
|
|
17
17
|
readAloud: boolean;
|
|
18
18
|
colorBlindMode: ColorBlindMode;
|
|
19
19
|
focusIndicator: boolean;
|
|
@@ -28,10 +28,10 @@ interface AccessibilityContextType extends AccessibilityState {
|
|
|
28
28
|
toggleHighContrast: () => void;
|
|
29
29
|
toggleNegativeContrast: () => void;
|
|
30
30
|
toggleLightBackground: () => void;
|
|
31
|
+
toggleDarkMode: () => void;
|
|
31
32
|
toggleUnderlineLinks: () => void;
|
|
32
33
|
toggleHighlightTitles: () => void;
|
|
33
34
|
toggleReadableFont: () => void;
|
|
34
|
-
toggleVoice: () => void;
|
|
35
35
|
toggleReadAloud: () => void;
|
|
36
36
|
setColorBlindMode: (mode: ColorBlindMode) => void;
|
|
37
37
|
toggleFocusIndicator: () => void;
|
package/dist/index.esm.js
CHANGED
|
@@ -9,12 +9,12 @@ const translations = {
|
|
|
9
9
|
highContrast: "High Contrast",
|
|
10
10
|
negativeContrast: "Negative Contrast",
|
|
11
11
|
lightBackground: "Light Background",
|
|
12
|
+
darkMode: "Dark Mode",
|
|
12
13
|
underlineLinks: "Underline Links",
|
|
13
14
|
highlightTitles: "Highlight Titles",
|
|
14
15
|
readableFont: "Readable Font",
|
|
15
16
|
pauseAnimations: "Pause Animations",
|
|
16
17
|
readingGuide: "Reading Guide",
|
|
17
|
-
voiceCommand: "Voice Command",
|
|
18
18
|
readAloud: "Read Aloud",
|
|
19
19
|
colorBlindMode: "Color Blind Mode",
|
|
20
20
|
focusIndicator: "Focus Indicator",
|
|
@@ -27,12 +27,12 @@ const translations = {
|
|
|
27
27
|
highContrast: "Mataas na Contrast",
|
|
28
28
|
negativeContrast: "Negatibong Contrast",
|
|
29
29
|
lightBackground: "Maliwanag na Background",
|
|
30
|
+
darkMode: "Madilim na Mode",
|
|
30
31
|
underlineLinks: "May Guhit na Links",
|
|
31
32
|
highlightTitles: "I-highlight ang Mga Pamagat",
|
|
32
33
|
readableFont: "Madaling Basahin na Font",
|
|
33
34
|
pauseAnimations: "I-pause ang mga Animation",
|
|
34
35
|
readingGuide: "Reading Guide",
|
|
35
|
-
voiceCommand: "Voice Command",
|
|
36
36
|
readAloud: "Basahin nang Malakas",
|
|
37
37
|
colorBlindMode: "Color Blind Mode",
|
|
38
38
|
focusIndicator: "Focus Indicator",
|
|
@@ -45,12 +45,12 @@ const translations = {
|
|
|
45
45
|
highContrast: "Taas nga Contrast",
|
|
46
46
|
negativeContrast: "Negatibo nga Contrast",
|
|
47
47
|
lightBackground: "Hayag nga Background",
|
|
48
|
+
darkMode: "Ngitngit nga Mode",
|
|
48
49
|
underlineLinks: "Linya sa Ubos sa Links",
|
|
49
50
|
highlightTitles: "I-highlight ang mga Ulohan",
|
|
50
51
|
readableFont: "Sayon Basahon nga Font",
|
|
51
52
|
pauseAnimations: "Ihunong ang mga Animation",
|
|
52
53
|
readingGuide: "Reading Guide",
|
|
53
|
-
voiceCommand: "Voice Command",
|
|
54
54
|
readAloud: "Basaha og Kusog",
|
|
55
55
|
colorBlindMode: "Color Blind Mode",
|
|
56
56
|
focusIndicator: "Focus Indicator",
|
|
@@ -114,10 +114,10 @@ const AccessibilityProvider = ({ children, translations: customTranslations, goo
|
|
|
114
114
|
highContrast: false,
|
|
115
115
|
negativeContrast: false,
|
|
116
116
|
lightBackground: false,
|
|
117
|
+
darkMode: false,
|
|
117
118
|
underlineLinks: false,
|
|
118
119
|
highlightTitles: false,
|
|
119
120
|
readableFont: false,
|
|
120
|
-
voiceEnabled: false,
|
|
121
121
|
readAloud: false,
|
|
122
122
|
colorBlindMode: "none",
|
|
123
123
|
focusIndicator: false,
|
|
@@ -167,6 +167,7 @@ const AccessibilityProvider = ({ children, translations: customTranslations, goo
|
|
|
167
167
|
root.classList.toggle("high-contrast", state.highContrast);
|
|
168
168
|
root.classList.toggle("negative-contrast", state.negativeContrast);
|
|
169
169
|
root.classList.toggle("light-background", state.lightBackground);
|
|
170
|
+
root.classList.toggle("dark-mode", state.darkMode);
|
|
170
171
|
root.classList.toggle("underline-links", state.underlineLinks);
|
|
171
172
|
root.classList.toggle("highlight-titles", state.highlightTitles);
|
|
172
173
|
root.classList.toggle("readable-font", state.readableFont);
|
|
@@ -438,54 +439,6 @@ const AccessibilityProvider = ({ children, translations: customTranslations, goo
|
|
|
438
439
|
tooltip.remove();
|
|
439
440
|
};
|
|
440
441
|
}, [state.textMagnifier]);
|
|
441
|
-
useEffect(() => {
|
|
442
|
-
if (!state.voiceEnabled ||
|
|
443
|
-
!("webkitSpeechRecognition" in window || "SpeechRecognition" in window))
|
|
444
|
-
return;
|
|
445
|
-
const SpeechRecognition = window.SpeechRecognition ||
|
|
446
|
-
window.webkitSpeechRecognition;
|
|
447
|
-
const recognition = new SpeechRecognition();
|
|
448
|
-
recognition.continuous = true;
|
|
449
|
-
recognition.lang =
|
|
450
|
-
state.language === "tl"
|
|
451
|
-
? "tl-PH"
|
|
452
|
-
: state.language === "ceb"
|
|
453
|
-
? "ceb-PH"
|
|
454
|
-
: "en-US";
|
|
455
|
-
recognition.onresult = (event) => {
|
|
456
|
-
const transcript = event.results[event.results.length - 1][0].transcript.toLowerCase();
|
|
457
|
-
if (transcript.includes("increase text") ||
|
|
458
|
-
transcript.includes("palakihin"))
|
|
459
|
-
increaseText();
|
|
460
|
-
if (transcript.includes("decrease text") ||
|
|
461
|
-
transcript.includes("paliitin"))
|
|
462
|
-
decreaseText();
|
|
463
|
-
if (transcript.includes("high contrast") || transcript.includes("mataas"))
|
|
464
|
-
toggleHighContrast();
|
|
465
|
-
if (transcript.includes("negative contrast") ||
|
|
466
|
-
transcript.includes("negatibo"))
|
|
467
|
-
toggleNegativeContrast();
|
|
468
|
-
if (transcript.includes("light background") ||
|
|
469
|
-
transcript.includes("maliwanag"))
|
|
470
|
-
toggleLightBackground();
|
|
471
|
-
if (transcript.includes("underline") || transcript.includes("guhit"))
|
|
472
|
-
toggleUnderlineLinks();
|
|
473
|
-
if (transcript.includes("highlight titles") ||
|
|
474
|
-
transcript.includes("title highlight"))
|
|
475
|
-
toggleHighlightTitles();
|
|
476
|
-
if (transcript.includes("pause animations") ||
|
|
477
|
-
transcript.includes("stop animations"))
|
|
478
|
-
togglePauseAnimations();
|
|
479
|
-
if (transcript.includes("reading guide") ||
|
|
480
|
-
transcript.includes("reading line"))
|
|
481
|
-
toggleReadingGuide();
|
|
482
|
-
if (transcript.includes("readable font") ||
|
|
483
|
-
transcript.includes("madaling"))
|
|
484
|
-
toggleReadableFont();
|
|
485
|
-
};
|
|
486
|
-
recognition.start();
|
|
487
|
-
return () => recognition.stop();
|
|
488
|
-
}, [state.voiceEnabled, state.language]);
|
|
489
442
|
const setLanguage = (lang) => setState((s) => (Object.assign(Object.assign({}, s), { language: lang })));
|
|
490
443
|
const increaseText = () => setState((s) => (Object.assign(Object.assign({}, s), { textSize: Math.min(s.textSize + 10, 200) })));
|
|
491
444
|
const decreaseText = () => setState((s) => (Object.assign(Object.assign({}, s), { textSize: Math.max(s.textSize - 10, 80) })));
|
|
@@ -494,11 +447,11 @@ const AccessibilityProvider = ({ children, translations: customTranslations, goo
|
|
|
494
447
|
const toggleReadingGuide = () => setState((s) => (Object.assign(Object.assign({}, s), { readingGuide: !s.readingGuide })));
|
|
495
448
|
const toggleHighContrast = () => setState((s) => (Object.assign(Object.assign({}, s), { highContrast: !s.highContrast, negativeContrast: false })));
|
|
496
449
|
const toggleNegativeContrast = () => setState((s) => (Object.assign(Object.assign({}, s), { negativeContrast: !s.negativeContrast, highContrast: false })));
|
|
497
|
-
const toggleLightBackground = () => setState((s) => (Object.assign(Object.assign({}, s), { lightBackground: !s.lightBackground })));
|
|
450
|
+
const toggleLightBackground = () => setState((s) => (Object.assign(Object.assign({}, s), { lightBackground: !s.lightBackground, darkMode: s.lightBackground ? s.darkMode : false })));
|
|
451
|
+
const toggleDarkMode = () => setState((s) => (Object.assign(Object.assign({}, s), { darkMode: !s.darkMode, lightBackground: s.darkMode ? s.lightBackground : false })));
|
|
498
452
|
const toggleUnderlineLinks = () => setState((s) => (Object.assign(Object.assign({}, s), { underlineLinks: !s.underlineLinks })));
|
|
499
453
|
const toggleHighlightTitles = () => setState((s) => (Object.assign(Object.assign({}, s), { highlightTitles: !s.highlightTitles })));
|
|
500
454
|
const toggleReadableFont = () => setState((s) => (Object.assign(Object.assign({}, s), { readableFont: !s.readableFont })));
|
|
501
|
-
const toggleVoice = () => setState((s) => (Object.assign(Object.assign({}, s), { voiceEnabled: !s.voiceEnabled })));
|
|
502
455
|
const toggleReadAloud = () => setState((s) => (Object.assign(Object.assign({}, s), { readAloud: !s.readAloud })));
|
|
503
456
|
const setColorBlindMode = (mode) => setState((s) => (Object.assign(Object.assign({}, s), { colorBlindMode: mode })));
|
|
504
457
|
const toggleFocusIndicator = () => setState((s) => (Object.assign(Object.assign({}, s), { focusIndicator: !s.focusIndicator })));
|
|
@@ -583,10 +536,10 @@ const AccessibilityProvider = ({ children, translations: customTranslations, goo
|
|
|
583
536
|
toggleHighContrast,
|
|
584
537
|
toggleNegativeContrast,
|
|
585
538
|
toggleLightBackground,
|
|
539
|
+
toggleDarkMode,
|
|
586
540
|
toggleUnderlineLinks,
|
|
587
541
|
toggleHighlightTitles,
|
|
588
542
|
toggleReadableFont,
|
|
589
|
-
toggleVoice,
|
|
590
543
|
toggleReadAloud,
|
|
591
544
|
setColorBlindMode,
|
|
592
545
|
toggleFocusIndicator,
|
|
@@ -603,9 +556,9 @@ const useAccessibility = () => {
|
|
|
603
556
|
|
|
604
557
|
const cn$1 = (...parts) => parts.filter(Boolean).join(" ");
|
|
605
558
|
const AccessibilityToolbar = ({ className, style, classes, }) => {
|
|
606
|
-
const { language, setLanguage, increaseText, decreaseText, toggleTextMagnifier, togglePauseAnimations, toggleReadingGuide, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleHighlightTitles, toggleReadableFont,
|
|
559
|
+
const { language, setLanguage, increaseText, decreaseText, toggleTextMagnifier, togglePauseAnimations, toggleReadingGuide, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleDarkMode, toggleUnderlineLinks, toggleHighlightTitles, toggleReadableFont, toggleReadAloud, setColorBlindMode, toggleFocusIndicator, translate, textMagnifier, pauseAnimations, readingGuide, highContrast, negativeContrast, lightBackground, darkMode, underlineLinks, highlightTitles, readableFont, readAloud, colorBlindMode, focusIndicator, } = useAccessibility();
|
|
607
560
|
return (React.createElement("div", { className: cn$1("accessibility-toolbar notranslate", classes === null || classes === void 0 ? void 0 : classes.root, className), style: style, translate: "no" },
|
|
608
|
-
React.createElement("select", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.select), value: language, onChange: (e) => setLanguage(e.target.value) },
|
|
561
|
+
React.createElement("select", { className: cn$1("notranslate", classes === null || classes === void 0 ? void 0 : classes.select), value: language, onChange: (e) => setLanguage(e.target.value), translate: "no" },
|
|
609
562
|
React.createElement("option", { value: "en" }, "English"),
|
|
610
563
|
React.createElement("option", { value: "tl" }, "Tagalog"),
|
|
611
564
|
React.createElement("option", { value: "ceb" }, "Cebuano")),
|
|
@@ -619,14 +572,12 @@ const AccessibilityToolbar = ({ className, style, classes, }) => {
|
|
|
619
572
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, highContrast && "active", highContrast && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": highContrast, onClick: toggleHighContrast }, translate("highContrast")),
|
|
620
573
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, negativeContrast && "active", negativeContrast && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": negativeContrast, onClick: toggleNegativeContrast }, translate("negativeContrast")),
|
|
621
574
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, lightBackground && "active", lightBackground && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": lightBackground, onClick: toggleLightBackground }, translate("lightBackground")),
|
|
575
|
+
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, darkMode && "active", darkMode && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": darkMode, onClick: toggleDarkMode }, translate("darkMode")),
|
|
622
576
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, underlineLinks && "active", underlineLinks && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": underlineLinks, onClick: toggleUnderlineLinks }, translate("underlineLinks")),
|
|
623
577
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, highlightTitles && "active", highlightTitles && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": highlightTitles, onClick: toggleHighlightTitles }, translate("highlightTitles")),
|
|
624
578
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, readableFont && "active", readableFont && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": readableFont, onClick: toggleReadableFont }, translate("readableFont")),
|
|
625
579
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, pauseAnimations && "active", pauseAnimations && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": pauseAnimations, onClick: togglePauseAnimations }, translate("pauseAnimations")),
|
|
626
580
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, readingGuide && "active", readingGuide && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": readingGuide, onClick: toggleReadingGuide }, translate("readingGuide")),
|
|
627
|
-
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, classes === null || classes === void 0 ? void 0 : classes.voiceButton, voiceEnabled && "active", voiceEnabled && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": voiceEnabled, onClick: toggleVoice },
|
|
628
|
-
"\uD83C\uDFA4 ",
|
|
629
|
-
translate("voiceCommand")),
|
|
630
581
|
React.createElement("button", { className: cn$1(classes === null || classes === void 0 ? void 0 : classes.button, readAloud && "active", readAloud && (classes === null || classes === void 0 ? void 0 : classes.activeButton)), "data-active": readAloud, onClick: toggleReadAloud },
|
|
631
582
|
"\uD83D\uDD0A ",
|
|
632
583
|
translate("readAloud")),
|
|
@@ -641,7 +592,7 @@ const AccessibilityToolbar = ({ className, style, classes, }) => {
|
|
|
641
592
|
const cn = (...parts) => parts.filter(Boolean).join(" ");
|
|
642
593
|
const AccessibilityDropdown = ({ className, style, classes, triggerLabel = "♿ Accessibility", renderTrigger, }) => {
|
|
643
594
|
const [isOpen, setIsOpen] = useState(false);
|
|
644
|
-
const { language, setLanguage, textSize, increaseText, decreaseText, toggleTextMagnifier, togglePauseAnimations, toggleReadingGuide, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleHighlightTitles, toggleReadableFont,
|
|
595
|
+
const { language, setLanguage, textSize, increaseText, decreaseText, toggleTextMagnifier, togglePauseAnimations, toggleReadingGuide, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleDarkMode, toggleUnderlineLinks, toggleHighlightTitles, toggleReadableFont, translate, textMagnifier, pauseAnimations, readingGuide, highContrast, negativeContrast, lightBackground, darkMode, underlineLinks, highlightTitles, readableFont, } = useAccessibility();
|
|
645
596
|
const toggle = () => setIsOpen(!isOpen);
|
|
646
597
|
const closePanel = () => setIsOpen(false);
|
|
647
598
|
const textScaleDelta = textSize - 100;
|
|
@@ -657,12 +608,11 @@ const AccessibilityDropdown = ({ className, style, classes, triggerLabel = "♿
|
|
|
657
608
|
isOpen && (React.createElement("div", { className: cn("a11y-panel", classes === null || classes === void 0 ? void 0 : classes.panel) },
|
|
658
609
|
React.createElement("div", { className: cn("a11y-panel-header", classes === null || classes === void 0 ? void 0 : classes.panelHeader) },
|
|
659
610
|
React.createElement("div", { className: "a11y-panel-heading" },
|
|
660
|
-
React.createElement("span", { className: "a11y-panel-eyebrow" }, "NGP"),
|
|
661
611
|
React.createElement("label", { className: cn("a11y-panel-title", classes === null || classes === void 0 ? void 0 : classes.title) }, "Accessibility Options")),
|
|
662
612
|
React.createElement("button", { type: "button", className: cn("a11y-panel-close", classes === null || classes === void 0 ? void 0 : classes.closeButton), onClick: closePanel, "aria-label": "Close accessibility panel" }, "\u00D7")),
|
|
663
613
|
React.createElement("div", { className: cn("a11y-language", classes === null || classes === void 0 ? void 0 : classes.section) },
|
|
664
614
|
React.createElement("label", { htmlFor: "a11y-language-select", className: cn("a11y-language-label", classes === null || classes === void 0 ? void 0 : classes.title) }, translate("language")),
|
|
665
|
-
React.createElement("select", { id: "a11y-language-select", value: language, onChange: (e) => setLanguage(e.target.value) },
|
|
615
|
+
React.createElement("select", { id: "a11y-language-select", className: "notranslate", value: language, onChange: (e) => setLanguage(e.target.value), translate: "no" },
|
|
666
616
|
React.createElement("option", { value: "en" }, "English"),
|
|
667
617
|
React.createElement("option", { value: "tl" }, "Tagalog"),
|
|
668
618
|
React.createElement("option", { value: "ceb" }, "Cebuano"),
|
|
@@ -690,13 +640,13 @@ const AccessibilityDropdown = ({ className, style, classes, triggerLabel = "♿
|
|
|
690
640
|
React.createElement("div", { className: cn("a11y-grid", classes === null || classes === void 0 ? void 0 : classes.section) },
|
|
691
641
|
React.createElement("button", { className: cn("a11y-card", highContrast && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleHighContrast }, translate("highContrast")),
|
|
692
642
|
React.createElement("button", { className: cn("a11y-card", negativeContrast && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleNegativeContrast }, translate("negativeContrast")),
|
|
693
|
-
React.createElement("button", { className: cn("a11y-card", lightBackground && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleLightBackground }, translate("lightBackground"))
|
|
643
|
+
React.createElement("button", { className: cn("a11y-card", lightBackground && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleLightBackground }, translate("lightBackground")),
|
|
644
|
+
React.createElement("button", { className: cn("a11y-card", darkMode && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleDarkMode }, translate("darkMode")))),
|
|
694
645
|
React.createElement("section", { className: cn("a11y-section", classes === null || classes === void 0 ? void 0 : classes.section) },
|
|
695
646
|
React.createElement("h3", { className: cn("a11y-section-title", classes === null || classes === void 0 ? void 0 : classes.title) }, "Accessibility Tools"),
|
|
696
647
|
React.createElement("div", { className: cn("a11y-grid", classes === null || classes === void 0 ? void 0 : classes.section) },
|
|
697
648
|
React.createElement("button", { className: cn("a11y-card", pauseAnimations && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: togglePauseAnimations }, translate("pauseAnimations")),
|
|
698
|
-
React.createElement("button", { className: cn("a11y-card", readingGuide && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleReadingGuide }, translate("readingGuide"))
|
|
699
|
-
React.createElement("button", { className: cn("a11y-card", voiceEnabled && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleVoice }, translate("voiceCommand"))))))));
|
|
649
|
+
React.createElement("button", { className: cn("a11y-card", readingGuide && "active", classes === null || classes === void 0 ? void 0 : classes.button), onClick: toggleReadingGuide }, translate("readingGuide"))))))));
|
|
700
650
|
};
|
|
701
651
|
|
|
702
652
|
const T = ({ k, children }) => {
|