ngp-accessibility 1.0.1 → 1.0.2

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.
@@ -0,0 +1,32 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { Language, TranslationKey } from './translations';
3
+ interface AccessibilityState {
4
+ language: Language;
5
+ textSize: number;
6
+ highContrast: boolean;
7
+ negativeContrast: boolean;
8
+ lightBackground: boolean;
9
+ underlineLinks: boolean;
10
+ readableFont: boolean;
11
+ voiceEnabled: boolean;
12
+ }
13
+ interface AccessibilityContextType extends AccessibilityState {
14
+ setLanguage: (lang: Language) => void;
15
+ increaseText: () => void;
16
+ decreaseText: () => void;
17
+ toggleHighContrast: () => void;
18
+ toggleNegativeContrast: () => void;
19
+ toggleLightBackground: () => void;
20
+ toggleUnderlineLinks: () => void;
21
+ toggleReadableFont: () => void;
22
+ toggleVoice: () => void;
23
+ translate: (key: TranslationKey) => string;
24
+ t: (key: string) => string;
25
+ }
26
+ interface AccessibilityProviderProps {
27
+ children: ReactNode;
28
+ translations?: Record<string, Record<string, any>>;
29
+ }
30
+ export declare const AccessibilityProvider: React.FC<AccessibilityProviderProps>;
31
+ export declare const useAccessibility: () => AccessibilityContextType;
32
+ export {};
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const AccessibilityDropdown: React.FC;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const AccessibilityToolbar: React.FC;
package/dist/T.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { TranslationKey } from './translations';
3
+ interface TProps {
4
+ k: TranslationKey | string;
5
+ children?: React.ReactNode;
6
+ }
7
+ export declare const T: React.FC<TProps>;
8
+ export {};
@@ -0,0 +1,6 @@
1
+ export { AccessibilityProvider, useAccessibility } from './AccessibilityContext';
2
+ export { AccessibilityToolbar } from './AccessibilityToolbar';
3
+ export { AccessibilityDropdown } from './AccessibilityDropdown';
4
+ export { T } from './T';
5
+ export { translations, type Language, type TranslationKey } from './translations';
6
+ export type { default as React } from 'react';
@@ -0,0 +1,177 @@
1
+ import React, { createContext, useState, useEffect, useContext } from 'react';
2
+
3
+ const translations = {
4
+ en: {
5
+ increaseText: 'Increase Text',
6
+ decreaseText: 'Decrease Text',
7
+ highContrast: 'High Contrast',
8
+ negativeContrast: 'Negative Contrast',
9
+ lightBackground: 'Light Background',
10
+ underlineLinks: 'Underline Links',
11
+ readableFont: 'Readable Font',
12
+ voiceCommand: 'Voice Command',
13
+ },
14
+ tl: {
15
+ increaseText: 'Palakihin ang Teksto',
16
+ decreaseText: 'Paliitin ang Teksto',
17
+ highContrast: 'Mataas na Contrast',
18
+ negativeContrast: 'Negatibong Contrast',
19
+ lightBackground: 'Maliwanag na Background',
20
+ underlineLinks: 'May Guhit na Links',
21
+ readableFont: 'Madaling Basahin na Font',
22
+ voiceCommand: 'Voice Command',
23
+ },
24
+ ceb: {
25
+ increaseText: 'Padak-on ang Teksto',
26
+ decreaseText: 'Pagamay-on ang Teksto',
27
+ highContrast: 'Taas nga Contrast',
28
+ negativeContrast: 'Negatibo nga Contrast',
29
+ lightBackground: 'Hayag nga Background',
30
+ underlineLinks: 'Linya sa Ubos sa Links',
31
+ readableFont: 'Sayon Basahon nga Font',
32
+ voiceCommand: 'Voice Command',
33
+ },
34
+ };
35
+
36
+ const AccessibilityContext = createContext(undefined);
37
+ const AccessibilityProvider = ({ children, translations: customTranslations }) => {
38
+ const [state, setState] = useState({
39
+ language: 'en',
40
+ textSize: 100,
41
+ highContrast: false,
42
+ negativeContrast: false,
43
+ lightBackground: false,
44
+ underlineLinks: false,
45
+ readableFont: false,
46
+ voiceEnabled: false,
47
+ });
48
+ const allTranslations = customTranslations || translations;
49
+ useEffect(() => {
50
+ const root = document.documentElement;
51
+ root.style.fontSize = `${state.textSize}%`;
52
+ root.classList.toggle('high-contrast', state.highContrast);
53
+ root.classList.toggle('negative-contrast', state.negativeContrast);
54
+ root.classList.toggle('light-background', state.lightBackground);
55
+ root.classList.toggle('underline-links', state.underlineLinks);
56
+ root.classList.toggle('readable-font', state.readableFont);
57
+ }, [state]);
58
+ useEffect(() => {
59
+ if (!state.voiceEnabled || !('webkitSpeechRecognition' in window || 'SpeechRecognition' in window))
60
+ return;
61
+ const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
62
+ const recognition = new SpeechRecognition();
63
+ recognition.continuous = true;
64
+ recognition.lang = state.language === 'tl' ? 'tl-PH' : state.language === 'ceb' ? 'ceb-PH' : 'en-US';
65
+ recognition.onresult = (event) => {
66
+ const transcript = event.results[event.results.length - 1][0].transcript.toLowerCase();
67
+ if (transcript.includes('increase text') || transcript.includes('palakihin'))
68
+ increaseText();
69
+ if (transcript.includes('decrease text') || transcript.includes('paliitin'))
70
+ decreaseText();
71
+ if (transcript.includes('high contrast') || transcript.includes('mataas'))
72
+ toggleHighContrast();
73
+ if (transcript.includes('negative contrast') || transcript.includes('negatibo'))
74
+ toggleNegativeContrast();
75
+ if (transcript.includes('light background') || transcript.includes('maliwanag'))
76
+ toggleLightBackground();
77
+ if (transcript.includes('underline') || transcript.includes('guhit'))
78
+ toggleUnderlineLinks();
79
+ if (transcript.includes('readable font') || transcript.includes('madaling'))
80
+ toggleReadableFont();
81
+ };
82
+ recognition.start();
83
+ return () => recognition.stop();
84
+ }, [state.voiceEnabled, state.language]);
85
+ const setLanguage = (lang) => setState(s => (Object.assign(Object.assign({}, s), { language: lang })));
86
+ const increaseText = () => setState(s => (Object.assign(Object.assign({}, s), { textSize: Math.min(s.textSize + 10, 200) })));
87
+ const decreaseText = () => setState(s => (Object.assign(Object.assign({}, s), { textSize: Math.max(s.textSize - 10, 80) })));
88
+ const toggleHighContrast = () => setState(s => (Object.assign(Object.assign({}, s), { highContrast: !s.highContrast, negativeContrast: false })));
89
+ const toggleNegativeContrast = () => setState(s => (Object.assign(Object.assign({}, s), { negativeContrast: !s.negativeContrast, highContrast: false })));
90
+ const toggleLightBackground = () => setState(s => (Object.assign(Object.assign({}, s), { lightBackground: !s.lightBackground })));
91
+ const toggleUnderlineLinks = () => setState(s => (Object.assign(Object.assign({}, s), { underlineLinks: !s.underlineLinks })));
92
+ const toggleReadableFont = () => setState(s => (Object.assign(Object.assign({}, s), { readableFont: !s.readableFont })));
93
+ const toggleVoice = () => setState(s => (Object.assign(Object.assign({}, s), { voiceEnabled: !s.voiceEnabled })));
94
+ const translate = (key) => translations[state.language][key];
95
+ const t = (key) => { var _a; return ((_a = allTranslations[state.language]) === null || _a === void 0 ? void 0 : _a[key]) || key; };
96
+ return (React.createElement(AccessibilityContext.Provider, { value: Object.assign(Object.assign({}, state), { setLanguage,
97
+ increaseText,
98
+ decreaseText,
99
+ toggleHighContrast,
100
+ toggleNegativeContrast,
101
+ toggleLightBackground,
102
+ toggleUnderlineLinks,
103
+ toggleReadableFont,
104
+ toggleVoice,
105
+ translate,
106
+ t }) }, children));
107
+ };
108
+ const useAccessibility = () => {
109
+ const context = useContext(AccessibilityContext);
110
+ if (!context)
111
+ throw new Error('useAccessibility must be used within AccessibilityProvider');
112
+ return context;
113
+ };
114
+
115
+ const AccessibilityToolbar = () => {
116
+ const { language, setLanguage, increaseText, decreaseText, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleReadableFont, toggleVoice, translate, highContrast, negativeContrast, lightBackground, underlineLinks, readableFont, voiceEnabled, } = useAccessibility();
117
+ return (React.createElement("div", { className: "accessibility-toolbar" },
118
+ React.createElement("select", { value: language, onChange: (e) => setLanguage(e.target.value) },
119
+ React.createElement("option", { value: "en" }, "English"),
120
+ React.createElement("option", { value: "tl" }, "Tagalog"),
121
+ React.createElement("option", { value: "ceb" }, "Cebuano")),
122
+ React.createElement("button", { onClick: increaseText },
123
+ "+ ",
124
+ translate('increaseText')),
125
+ React.createElement("button", { onClick: decreaseText },
126
+ "- ",
127
+ translate('decreaseText')),
128
+ React.createElement("button", { onClick: toggleHighContrast, className: highContrast ? 'active' : '' }, translate('highContrast')),
129
+ React.createElement("button", { onClick: toggleNegativeContrast, className: negativeContrast ? 'active' : '' }, translate('negativeContrast')),
130
+ React.createElement("button", { onClick: toggleLightBackground, className: lightBackground ? 'active' : '' }, translate('lightBackground')),
131
+ React.createElement("button", { onClick: toggleUnderlineLinks, className: underlineLinks ? 'active' : '' }, translate('underlineLinks')),
132
+ React.createElement("button", { onClick: toggleReadableFont, className: readableFont ? 'active' : '' }, translate('readableFont')),
133
+ React.createElement("button", { onClick: toggleVoice, className: voiceEnabled ? 'active' : '' },
134
+ "\uD83C\uDFA4 ",
135
+ translate('voiceCommand'))));
136
+ };
137
+
138
+ const AccessibilityDropdown = () => {
139
+ const [isOpen, setIsOpen] = useState(false);
140
+ const { language, setLanguage, increaseText, decreaseText, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleReadableFont, toggleVoice, translate, highContrast, negativeContrast, lightBackground, underlineLinks, readableFont, voiceEnabled, } = useAccessibility();
141
+ return (React.createElement("div", { className: "accessibility-dropdown" },
142
+ React.createElement("button", { className: "accessibility-dropdown-toggle", onClick: () => setIsOpen(!isOpen) }, "\u267F Accessibility"),
143
+ isOpen && (React.createElement("div", { className: "accessibility-dropdown-menu" },
144
+ React.createElement("div", { className: "accessibility-dropdown-section" },
145
+ React.createElement("label", null, "Language:"),
146
+ React.createElement("select", { value: language, onChange: (e) => setLanguage(e.target.value) },
147
+ React.createElement("option", { value: "en" }, "English"),
148
+ React.createElement("option", { value: "tl" }, "Tagalog"),
149
+ React.createElement("option", { value: "ceb" }, "Cebuano"))),
150
+ React.createElement("div", { className: "accessibility-dropdown-section" },
151
+ React.createElement("button", { onClick: increaseText },
152
+ "+ ",
153
+ translate('increaseText')),
154
+ React.createElement("button", { onClick: decreaseText },
155
+ "- ",
156
+ translate('decreaseText'))),
157
+ React.createElement("div", { className: "accessibility-dropdown-section" },
158
+ React.createElement("button", { onClick: toggleHighContrast, className: highContrast ? 'active' : '' }, translate('highContrast')),
159
+ React.createElement("button", { onClick: toggleNegativeContrast, className: negativeContrast ? 'active' : '' }, translate('negativeContrast')),
160
+ React.createElement("button", { onClick: toggleLightBackground, className: lightBackground ? 'active' : '' }, translate('lightBackground')),
161
+ React.createElement("button", { onClick: toggleUnderlineLinks, className: underlineLinks ? 'active' : '' }, translate('underlineLinks')),
162
+ React.createElement("button", { onClick: toggleReadableFont, className: readableFont ? 'active' : '' }, translate('readableFont')),
163
+ React.createElement("button", { onClick: toggleVoice, className: voiceEnabled ? 'active' : '' },
164
+ "\uD83C\uDFA4 ",
165
+ translate('voiceCommand')))))));
166
+ };
167
+
168
+ const T = ({ k, children }) => {
169
+ const { translate, language } = useAccessibility();
170
+ if (children && typeof children === 'string') {
171
+ return React.createElement(React.Fragment, null, children);
172
+ }
173
+ return React.createElement(React.Fragment, null, translate(k));
174
+ };
175
+
176
+ export { AccessibilityDropdown, AccessibilityProvider, AccessibilityToolbar, T, translations, useAccessibility };
177
+ //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.esm.js","sources":["../src/translations.ts","../src/AccessibilityContext.tsx","../src/AccessibilityToolbar.tsx","../src/AccessibilityDropdown.tsx","../src/T.tsx"],"sourcesContent":["export const translations = {\n en: {\n increaseText: 'Increase Text',\n decreaseText: 'Decrease Text',\n highContrast: 'High Contrast',\n negativeContrast: 'Negative Contrast',\n lightBackground: 'Light Background',\n underlineLinks: 'Underline Links',\n readableFont: 'Readable Font',\n voiceCommand: 'Voice Command',\n },\n tl: {\n increaseText: 'Palakihin ang Teksto',\n decreaseText: 'Paliitin ang Teksto',\n highContrast: 'Mataas na Contrast',\n negativeContrast: 'Negatibong Contrast',\n lightBackground: 'Maliwanag na Background',\n underlineLinks: 'May Guhit na Links',\n readableFont: 'Madaling Basahin na Font',\n voiceCommand: 'Voice Command',\n },\n ceb: {\n increaseText: 'Padak-on ang Teksto',\n decreaseText: 'Pagamay-on ang Teksto',\n highContrast: 'Taas nga Contrast',\n negativeContrast: 'Negatibo nga Contrast',\n lightBackground: 'Hayag nga Background',\n underlineLinks: 'Linya sa Ubos sa Links',\n readableFont: 'Sayon Basahon nga Font',\n voiceCommand: 'Voice Command',\n },\n};\n\nexport type Language = keyof typeof translations;\nexport type TranslationKey = keyof typeof translations.en;\n","import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\nimport { Language, translations, TranslationKey } from './translations';\n\ninterface AccessibilityState {\n language: Language;\n textSize: number;\n highContrast: boolean;\n negativeContrast: boolean;\n lightBackground: boolean;\n underlineLinks: boolean;\n readableFont: boolean;\n voiceEnabled: boolean;\n}\n\ninterface AccessibilityContextType extends AccessibilityState {\n setLanguage: (lang: Language) => void;\n increaseText: () => void;\n decreaseText: () => void;\n toggleHighContrast: () => void;\n toggleNegativeContrast: () => void;\n toggleLightBackground: () => void;\n toggleUnderlineLinks: () => void;\n toggleReadableFont: () => void;\n toggleVoice: () => void;\n translate: (key: TranslationKey) => string;\n t: (key: string) => string;\n}\n\nconst AccessibilityContext = createContext<AccessibilityContextType | undefined>(undefined);\n\ninterface AccessibilityProviderProps {\n children: ReactNode;\n translations?: Record<string, Record<string, any>>;\n}\n\nexport const AccessibilityProvider: React.FC<AccessibilityProviderProps> = ({ children, translations: customTranslations }) => {\n const [state, setState] = useState<AccessibilityState>({\n language: 'en',\n textSize: 100,\n highContrast: false,\n negativeContrast: false,\n lightBackground: false,\n underlineLinks: false,\n readableFont: false,\n voiceEnabled: false,\n });\n\n const allTranslations = customTranslations || translations;\n\n useEffect(() => {\n const root = document.documentElement;\n root.style.fontSize = `${state.textSize}%`;\n \n root.classList.toggle('high-contrast', state.highContrast);\n root.classList.toggle('negative-contrast', state.negativeContrast);\n root.classList.toggle('light-background', state.lightBackground);\n root.classList.toggle('underline-links', state.underlineLinks);\n root.classList.toggle('readable-font', state.readableFont);\n }, [state]);\n\n useEffect(() => {\n if (!state.voiceEnabled || !('webkitSpeechRecognition' in window || 'SpeechRecognition' in window)) return;\n\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n const recognition = new SpeechRecognition();\n recognition.continuous = true;\n recognition.lang = state.language === 'tl' ? 'tl-PH' : state.language === 'ceb' ? 'ceb-PH' : 'en-US';\n\n recognition.onresult = (event: any) => {\n const transcript = event.results[event.results.length - 1][0].transcript.toLowerCase();\n \n if (transcript.includes('increase text') || transcript.includes('palakihin')) increaseText();\n if (transcript.includes('decrease text') || transcript.includes('paliitin')) decreaseText();\n if (transcript.includes('high contrast') || transcript.includes('mataas')) toggleHighContrast();\n if (transcript.includes('negative contrast') || transcript.includes('negatibo')) toggleNegativeContrast();\n if (transcript.includes('light background') || transcript.includes('maliwanag')) toggleLightBackground();\n if (transcript.includes('underline') || transcript.includes('guhit')) toggleUnderlineLinks();\n if (transcript.includes('readable font') || transcript.includes('madaling')) toggleReadableFont();\n };\n\n recognition.start();\n return () => recognition.stop();\n }, [state.voiceEnabled, state.language]);\n\n const setLanguage = (lang: Language) => setState(s => ({ ...s, language: lang }));\n const increaseText = () => setState(s => ({ ...s, textSize: Math.min(s.textSize + 10, 200) }));\n const decreaseText = () => setState(s => ({ ...s, textSize: Math.max(s.textSize - 10, 80) }));\n const toggleHighContrast = () => setState(s => ({ ...s, highContrast: !s.highContrast, negativeContrast: false }));\n const toggleNegativeContrast = () => setState(s => ({ ...s, negativeContrast: !s.negativeContrast, highContrast: false }));\n const toggleLightBackground = () => setState(s => ({ ...s, lightBackground: !s.lightBackground }));\n const toggleUnderlineLinks = () => setState(s => ({ ...s, underlineLinks: !s.underlineLinks }));\n const toggleReadableFont = () => setState(s => ({ ...s, readableFont: !s.readableFont }));\n const toggleVoice = () => setState(s => ({ ...s, voiceEnabled: !s.voiceEnabled }));\n const translate = (key: TranslationKey) => translations[state.language][key];\n const t = (key: string) => allTranslations[state.language]?.[key] || key;\n\n return (\n <AccessibilityContext.Provider value={{\n ...state,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n t,\n }}>\n {children}\n </AccessibilityContext.Provider>\n );\n};\n\nexport const useAccessibility = () => {\n const context = useContext(AccessibilityContext);\n if (!context) throw new Error('useAccessibility must be used within AccessibilityProvider');\n return context;\n};\n","import React from 'react';\nimport { useAccessibility } from './AccessibilityContext';\n\nexport const AccessibilityToolbar: React.FC = () => {\n const {\n language,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n highContrast,\n negativeContrast,\n lightBackground,\n underlineLinks,\n readableFont,\n voiceEnabled,\n } = useAccessibility();\n\n return (\n <div className=\"accessibility-toolbar\">\n <select value={language} onChange={(e) => setLanguage(e.target.value as any)}>\n <option value=\"en\">English</option>\n <option value=\"tl\">Tagalog</option>\n <option value=\"ceb\">Cebuano</option>\n </select>\n <button onClick={increaseText}>+ {translate('increaseText')}</button>\n <button onClick={decreaseText}>- {translate('decreaseText')}</button>\n <button onClick={toggleHighContrast} className={highContrast ? 'active' : ''}>\n {translate('highContrast')}\n </button>\n <button onClick={toggleNegativeContrast} className={negativeContrast ? 'active' : ''}>\n {translate('negativeContrast')}\n </button>\n <button onClick={toggleLightBackground} className={lightBackground ? 'active' : ''}>\n {translate('lightBackground')}\n </button>\n <button onClick={toggleUnderlineLinks} className={underlineLinks ? 'active' : ''}>\n {translate('underlineLinks')}\n </button>\n <button onClick={toggleReadableFont} className={readableFont ? 'active' : ''}>\n {translate('readableFont')}\n </button>\n <button onClick={toggleVoice} className={voiceEnabled ? 'active' : ''}>\n 🎤 {translate('voiceCommand')}\n </button>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useAccessibility } from './AccessibilityContext';\n\nexport const AccessibilityDropdown: React.FC = () => {\n const [isOpen, setIsOpen] = useState(false);\n const {\n language,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n highContrast,\n negativeContrast,\n lightBackground,\n underlineLinks,\n readableFont,\n voiceEnabled,\n } = useAccessibility();\n\n return (\n <div className=\"accessibility-dropdown\">\n <button \n className=\"accessibility-dropdown-toggle\"\n onClick={() => setIsOpen(!isOpen)}\n >\n ♿ Accessibility\n </button>\n \n {isOpen && (\n <div className=\"accessibility-dropdown-menu\">\n <div className=\"accessibility-dropdown-section\">\n <label>Language:</label>\n <select value={language} onChange={(e) => setLanguage(e.target.value as any)}>\n <option value=\"en\">English</option>\n <option value=\"tl\">Tagalog</option>\n <option value=\"ceb\">Cebuano</option>\n </select>\n </div>\n\n <div className=\"accessibility-dropdown-section\">\n <button onClick={increaseText}>+ {translate('increaseText')}</button>\n <button onClick={decreaseText}>- {translate('decreaseText')}</button>\n </div>\n\n <div className=\"accessibility-dropdown-section\">\n <button onClick={toggleHighContrast} className={highContrast ? 'active' : ''}>\n {translate('highContrast')}\n </button>\n <button onClick={toggleNegativeContrast} className={negativeContrast ? 'active' : ''}>\n {translate('negativeContrast')}\n </button>\n <button onClick={toggleLightBackground} className={lightBackground ? 'active' : ''}>\n {translate('lightBackground')}\n </button>\n <button onClick={toggleUnderlineLinks} className={underlineLinks ? 'active' : ''}>\n {translate('underlineLinks')}\n </button>\n <button onClick={toggleReadableFont} className={readableFont ? 'active' : ''}>\n {translate('readableFont')}\n </button>\n <button onClick={toggleVoice} className={voiceEnabled ? 'active' : ''}>\n 🎤 {translate('voiceCommand')}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useAccessibility } from './AccessibilityContext';\nimport { TranslationKey } from './translations';\n\ninterface TProps {\n k: TranslationKey | string;\n children?: React.ReactNode;\n}\n\nexport const T: React.FC<TProps> = ({ k, children }) => {\n const { translate, language } = useAccessibility();\n \n if (children && typeof children === 'string') {\n return <>{children}</>;\n }\n \n return <>{translate(k as TranslationKey)}</>;\n};\n"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,184 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ const translations = {
6
+ en: {
7
+ increaseText: 'Increase Text',
8
+ decreaseText: 'Decrease Text',
9
+ highContrast: 'High Contrast',
10
+ negativeContrast: 'Negative Contrast',
11
+ lightBackground: 'Light Background',
12
+ underlineLinks: 'Underline Links',
13
+ readableFont: 'Readable Font',
14
+ voiceCommand: 'Voice Command',
15
+ },
16
+ tl: {
17
+ increaseText: 'Palakihin ang Teksto',
18
+ decreaseText: 'Paliitin ang Teksto',
19
+ highContrast: 'Mataas na Contrast',
20
+ negativeContrast: 'Negatibong Contrast',
21
+ lightBackground: 'Maliwanag na Background',
22
+ underlineLinks: 'May Guhit na Links',
23
+ readableFont: 'Madaling Basahin na Font',
24
+ voiceCommand: 'Voice Command',
25
+ },
26
+ ceb: {
27
+ increaseText: 'Padak-on ang Teksto',
28
+ decreaseText: 'Pagamay-on ang Teksto',
29
+ highContrast: 'Taas nga Contrast',
30
+ negativeContrast: 'Negatibo nga Contrast',
31
+ lightBackground: 'Hayag nga Background',
32
+ underlineLinks: 'Linya sa Ubos sa Links',
33
+ readableFont: 'Sayon Basahon nga Font',
34
+ voiceCommand: 'Voice Command',
35
+ },
36
+ };
37
+
38
+ const AccessibilityContext = React.createContext(undefined);
39
+ const AccessibilityProvider = ({ children, translations: customTranslations }) => {
40
+ const [state, setState] = React.useState({
41
+ language: 'en',
42
+ textSize: 100,
43
+ highContrast: false,
44
+ negativeContrast: false,
45
+ lightBackground: false,
46
+ underlineLinks: false,
47
+ readableFont: false,
48
+ voiceEnabled: false,
49
+ });
50
+ const allTranslations = customTranslations || translations;
51
+ React.useEffect(() => {
52
+ const root = document.documentElement;
53
+ root.style.fontSize = `${state.textSize}%`;
54
+ root.classList.toggle('high-contrast', state.highContrast);
55
+ root.classList.toggle('negative-contrast', state.negativeContrast);
56
+ root.classList.toggle('light-background', state.lightBackground);
57
+ root.classList.toggle('underline-links', state.underlineLinks);
58
+ root.classList.toggle('readable-font', state.readableFont);
59
+ }, [state]);
60
+ React.useEffect(() => {
61
+ if (!state.voiceEnabled || !('webkitSpeechRecognition' in window || 'SpeechRecognition' in window))
62
+ return;
63
+ const SpeechRecognition = window.SpeechRecognition || window.webkitSpeechRecognition;
64
+ const recognition = new SpeechRecognition();
65
+ recognition.continuous = true;
66
+ recognition.lang = state.language === 'tl' ? 'tl-PH' : state.language === 'ceb' ? 'ceb-PH' : 'en-US';
67
+ recognition.onresult = (event) => {
68
+ const transcript = event.results[event.results.length - 1][0].transcript.toLowerCase();
69
+ if (transcript.includes('increase text') || transcript.includes('palakihin'))
70
+ increaseText();
71
+ if (transcript.includes('decrease text') || transcript.includes('paliitin'))
72
+ decreaseText();
73
+ if (transcript.includes('high contrast') || transcript.includes('mataas'))
74
+ toggleHighContrast();
75
+ if (transcript.includes('negative contrast') || transcript.includes('negatibo'))
76
+ toggleNegativeContrast();
77
+ if (transcript.includes('light background') || transcript.includes('maliwanag'))
78
+ toggleLightBackground();
79
+ if (transcript.includes('underline') || transcript.includes('guhit'))
80
+ toggleUnderlineLinks();
81
+ if (transcript.includes('readable font') || transcript.includes('madaling'))
82
+ toggleReadableFont();
83
+ };
84
+ recognition.start();
85
+ return () => recognition.stop();
86
+ }, [state.voiceEnabled, state.language]);
87
+ const setLanguage = (lang) => setState(s => (Object.assign(Object.assign({}, s), { language: lang })));
88
+ const increaseText = () => setState(s => (Object.assign(Object.assign({}, s), { textSize: Math.min(s.textSize + 10, 200) })));
89
+ const decreaseText = () => setState(s => (Object.assign(Object.assign({}, s), { textSize: Math.max(s.textSize - 10, 80) })));
90
+ const toggleHighContrast = () => setState(s => (Object.assign(Object.assign({}, s), { highContrast: !s.highContrast, negativeContrast: false })));
91
+ const toggleNegativeContrast = () => setState(s => (Object.assign(Object.assign({}, s), { negativeContrast: !s.negativeContrast, highContrast: false })));
92
+ const toggleLightBackground = () => setState(s => (Object.assign(Object.assign({}, s), { lightBackground: !s.lightBackground })));
93
+ const toggleUnderlineLinks = () => setState(s => (Object.assign(Object.assign({}, s), { underlineLinks: !s.underlineLinks })));
94
+ const toggleReadableFont = () => setState(s => (Object.assign(Object.assign({}, s), { readableFont: !s.readableFont })));
95
+ const toggleVoice = () => setState(s => (Object.assign(Object.assign({}, s), { voiceEnabled: !s.voiceEnabled })));
96
+ const translate = (key) => translations[state.language][key];
97
+ const t = (key) => { var _a; return ((_a = allTranslations[state.language]) === null || _a === void 0 ? void 0 : _a[key]) || key; };
98
+ return (React.createElement(AccessibilityContext.Provider, { value: Object.assign(Object.assign({}, state), { setLanguage,
99
+ increaseText,
100
+ decreaseText,
101
+ toggleHighContrast,
102
+ toggleNegativeContrast,
103
+ toggleLightBackground,
104
+ toggleUnderlineLinks,
105
+ toggleReadableFont,
106
+ toggleVoice,
107
+ translate,
108
+ t }) }, children));
109
+ };
110
+ const useAccessibility = () => {
111
+ const context = React.useContext(AccessibilityContext);
112
+ if (!context)
113
+ throw new Error('useAccessibility must be used within AccessibilityProvider');
114
+ return context;
115
+ };
116
+
117
+ const AccessibilityToolbar = () => {
118
+ const { language, setLanguage, increaseText, decreaseText, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleReadableFont, toggleVoice, translate, highContrast, negativeContrast, lightBackground, underlineLinks, readableFont, voiceEnabled, } = useAccessibility();
119
+ return (React.createElement("div", { className: "accessibility-toolbar" },
120
+ React.createElement("select", { value: language, onChange: (e) => setLanguage(e.target.value) },
121
+ React.createElement("option", { value: "en" }, "English"),
122
+ React.createElement("option", { value: "tl" }, "Tagalog"),
123
+ React.createElement("option", { value: "ceb" }, "Cebuano")),
124
+ React.createElement("button", { onClick: increaseText },
125
+ "+ ",
126
+ translate('increaseText')),
127
+ React.createElement("button", { onClick: decreaseText },
128
+ "- ",
129
+ translate('decreaseText')),
130
+ React.createElement("button", { onClick: toggleHighContrast, className: highContrast ? 'active' : '' }, translate('highContrast')),
131
+ React.createElement("button", { onClick: toggleNegativeContrast, className: negativeContrast ? 'active' : '' }, translate('negativeContrast')),
132
+ React.createElement("button", { onClick: toggleLightBackground, className: lightBackground ? 'active' : '' }, translate('lightBackground')),
133
+ React.createElement("button", { onClick: toggleUnderlineLinks, className: underlineLinks ? 'active' : '' }, translate('underlineLinks')),
134
+ React.createElement("button", { onClick: toggleReadableFont, className: readableFont ? 'active' : '' }, translate('readableFont')),
135
+ React.createElement("button", { onClick: toggleVoice, className: voiceEnabled ? 'active' : '' },
136
+ "\uD83C\uDFA4 ",
137
+ translate('voiceCommand'))));
138
+ };
139
+
140
+ const AccessibilityDropdown = () => {
141
+ const [isOpen, setIsOpen] = React.useState(false);
142
+ const { language, setLanguage, increaseText, decreaseText, toggleHighContrast, toggleNegativeContrast, toggleLightBackground, toggleUnderlineLinks, toggleReadableFont, toggleVoice, translate, highContrast, negativeContrast, lightBackground, underlineLinks, readableFont, voiceEnabled, } = useAccessibility();
143
+ return (React.createElement("div", { className: "accessibility-dropdown" },
144
+ React.createElement("button", { className: "accessibility-dropdown-toggle", onClick: () => setIsOpen(!isOpen) }, "\u267F Accessibility"),
145
+ isOpen && (React.createElement("div", { className: "accessibility-dropdown-menu" },
146
+ React.createElement("div", { className: "accessibility-dropdown-section" },
147
+ React.createElement("label", null, "Language:"),
148
+ React.createElement("select", { value: language, onChange: (e) => setLanguage(e.target.value) },
149
+ React.createElement("option", { value: "en" }, "English"),
150
+ React.createElement("option", { value: "tl" }, "Tagalog"),
151
+ React.createElement("option", { value: "ceb" }, "Cebuano"))),
152
+ React.createElement("div", { className: "accessibility-dropdown-section" },
153
+ React.createElement("button", { onClick: increaseText },
154
+ "+ ",
155
+ translate('increaseText')),
156
+ React.createElement("button", { onClick: decreaseText },
157
+ "- ",
158
+ translate('decreaseText'))),
159
+ React.createElement("div", { className: "accessibility-dropdown-section" },
160
+ React.createElement("button", { onClick: toggleHighContrast, className: highContrast ? 'active' : '' }, translate('highContrast')),
161
+ React.createElement("button", { onClick: toggleNegativeContrast, className: negativeContrast ? 'active' : '' }, translate('negativeContrast')),
162
+ React.createElement("button", { onClick: toggleLightBackground, className: lightBackground ? 'active' : '' }, translate('lightBackground')),
163
+ React.createElement("button", { onClick: toggleUnderlineLinks, className: underlineLinks ? 'active' : '' }, translate('underlineLinks')),
164
+ React.createElement("button", { onClick: toggleReadableFont, className: readableFont ? 'active' : '' }, translate('readableFont')),
165
+ React.createElement("button", { onClick: toggleVoice, className: voiceEnabled ? 'active' : '' },
166
+ "\uD83C\uDFA4 ",
167
+ translate('voiceCommand')))))));
168
+ };
169
+
170
+ const T = ({ k, children }) => {
171
+ const { translate, language } = useAccessibility();
172
+ if (children && typeof children === 'string') {
173
+ return React.createElement(React.Fragment, null, children);
174
+ }
175
+ return React.createElement(React.Fragment, null, translate(k));
176
+ };
177
+
178
+ exports.AccessibilityDropdown = AccessibilityDropdown;
179
+ exports.AccessibilityProvider = AccessibilityProvider;
180
+ exports.AccessibilityToolbar = AccessibilityToolbar;
181
+ exports.T = T;
182
+ exports.translations = translations;
183
+ exports.useAccessibility = useAccessibility;
184
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/translations.ts","../src/AccessibilityContext.tsx","../src/AccessibilityToolbar.tsx","../src/AccessibilityDropdown.tsx","../src/T.tsx"],"sourcesContent":["export const translations = {\n en: {\n increaseText: 'Increase Text',\n decreaseText: 'Decrease Text',\n highContrast: 'High Contrast',\n negativeContrast: 'Negative Contrast',\n lightBackground: 'Light Background',\n underlineLinks: 'Underline Links',\n readableFont: 'Readable Font',\n voiceCommand: 'Voice Command',\n },\n tl: {\n increaseText: 'Palakihin ang Teksto',\n decreaseText: 'Paliitin ang Teksto',\n highContrast: 'Mataas na Contrast',\n negativeContrast: 'Negatibong Contrast',\n lightBackground: 'Maliwanag na Background',\n underlineLinks: 'May Guhit na Links',\n readableFont: 'Madaling Basahin na Font',\n voiceCommand: 'Voice Command',\n },\n ceb: {\n increaseText: 'Padak-on ang Teksto',\n decreaseText: 'Pagamay-on ang Teksto',\n highContrast: 'Taas nga Contrast',\n negativeContrast: 'Negatibo nga Contrast',\n lightBackground: 'Hayag nga Background',\n underlineLinks: 'Linya sa Ubos sa Links',\n readableFont: 'Sayon Basahon nga Font',\n voiceCommand: 'Voice Command',\n },\n};\n\nexport type Language = keyof typeof translations;\nexport type TranslationKey = keyof typeof translations.en;\n","import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\nimport { Language, translations, TranslationKey } from './translations';\n\ninterface AccessibilityState {\n language: Language;\n textSize: number;\n highContrast: boolean;\n negativeContrast: boolean;\n lightBackground: boolean;\n underlineLinks: boolean;\n readableFont: boolean;\n voiceEnabled: boolean;\n}\n\ninterface AccessibilityContextType extends AccessibilityState {\n setLanguage: (lang: Language) => void;\n increaseText: () => void;\n decreaseText: () => void;\n toggleHighContrast: () => void;\n toggleNegativeContrast: () => void;\n toggleLightBackground: () => void;\n toggleUnderlineLinks: () => void;\n toggleReadableFont: () => void;\n toggleVoice: () => void;\n translate: (key: TranslationKey) => string;\n t: (key: string) => string;\n}\n\nconst AccessibilityContext = createContext<AccessibilityContextType | undefined>(undefined);\n\ninterface AccessibilityProviderProps {\n children: ReactNode;\n translations?: Record<string, Record<string, any>>;\n}\n\nexport const AccessibilityProvider: React.FC<AccessibilityProviderProps> = ({ children, translations: customTranslations }) => {\n const [state, setState] = useState<AccessibilityState>({\n language: 'en',\n textSize: 100,\n highContrast: false,\n negativeContrast: false,\n lightBackground: false,\n underlineLinks: false,\n readableFont: false,\n voiceEnabled: false,\n });\n\n const allTranslations = customTranslations || translations;\n\n useEffect(() => {\n const root = document.documentElement;\n root.style.fontSize = `${state.textSize}%`;\n \n root.classList.toggle('high-contrast', state.highContrast);\n root.classList.toggle('negative-contrast', state.negativeContrast);\n root.classList.toggle('light-background', state.lightBackground);\n root.classList.toggle('underline-links', state.underlineLinks);\n root.classList.toggle('readable-font', state.readableFont);\n }, [state]);\n\n useEffect(() => {\n if (!state.voiceEnabled || !('webkitSpeechRecognition' in window || 'SpeechRecognition' in window)) return;\n\n const SpeechRecognition = (window as any).SpeechRecognition || (window as any).webkitSpeechRecognition;\n const recognition = new SpeechRecognition();\n recognition.continuous = true;\n recognition.lang = state.language === 'tl' ? 'tl-PH' : state.language === 'ceb' ? 'ceb-PH' : 'en-US';\n\n recognition.onresult = (event: any) => {\n const transcript = event.results[event.results.length - 1][0].transcript.toLowerCase();\n \n if (transcript.includes('increase text') || transcript.includes('palakihin')) increaseText();\n if (transcript.includes('decrease text') || transcript.includes('paliitin')) decreaseText();\n if (transcript.includes('high contrast') || transcript.includes('mataas')) toggleHighContrast();\n if (transcript.includes('negative contrast') || transcript.includes('negatibo')) toggleNegativeContrast();\n if (transcript.includes('light background') || transcript.includes('maliwanag')) toggleLightBackground();\n if (transcript.includes('underline') || transcript.includes('guhit')) toggleUnderlineLinks();\n if (transcript.includes('readable font') || transcript.includes('madaling')) toggleReadableFont();\n };\n\n recognition.start();\n return () => recognition.stop();\n }, [state.voiceEnabled, state.language]);\n\n const setLanguage = (lang: Language) => setState(s => ({ ...s, language: lang }));\n const increaseText = () => setState(s => ({ ...s, textSize: Math.min(s.textSize + 10, 200) }));\n const decreaseText = () => setState(s => ({ ...s, textSize: Math.max(s.textSize - 10, 80) }));\n const toggleHighContrast = () => setState(s => ({ ...s, highContrast: !s.highContrast, negativeContrast: false }));\n const toggleNegativeContrast = () => setState(s => ({ ...s, negativeContrast: !s.negativeContrast, highContrast: false }));\n const toggleLightBackground = () => setState(s => ({ ...s, lightBackground: !s.lightBackground }));\n const toggleUnderlineLinks = () => setState(s => ({ ...s, underlineLinks: !s.underlineLinks }));\n const toggleReadableFont = () => setState(s => ({ ...s, readableFont: !s.readableFont }));\n const toggleVoice = () => setState(s => ({ ...s, voiceEnabled: !s.voiceEnabled }));\n const translate = (key: TranslationKey) => translations[state.language][key];\n const t = (key: string) => allTranslations[state.language]?.[key] || key;\n\n return (\n <AccessibilityContext.Provider value={{\n ...state,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n t,\n }}>\n {children}\n </AccessibilityContext.Provider>\n );\n};\n\nexport const useAccessibility = () => {\n const context = useContext(AccessibilityContext);\n if (!context) throw new Error('useAccessibility must be used within AccessibilityProvider');\n return context;\n};\n","import React from 'react';\nimport { useAccessibility } from './AccessibilityContext';\n\nexport const AccessibilityToolbar: React.FC = () => {\n const {\n language,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n highContrast,\n negativeContrast,\n lightBackground,\n underlineLinks,\n readableFont,\n voiceEnabled,\n } = useAccessibility();\n\n return (\n <div className=\"accessibility-toolbar\">\n <select value={language} onChange={(e) => setLanguage(e.target.value as any)}>\n <option value=\"en\">English</option>\n <option value=\"tl\">Tagalog</option>\n <option value=\"ceb\">Cebuano</option>\n </select>\n <button onClick={increaseText}>+ {translate('increaseText')}</button>\n <button onClick={decreaseText}>- {translate('decreaseText')}</button>\n <button onClick={toggleHighContrast} className={highContrast ? 'active' : ''}>\n {translate('highContrast')}\n </button>\n <button onClick={toggleNegativeContrast} className={negativeContrast ? 'active' : ''}>\n {translate('negativeContrast')}\n </button>\n <button onClick={toggleLightBackground} className={lightBackground ? 'active' : ''}>\n {translate('lightBackground')}\n </button>\n <button onClick={toggleUnderlineLinks} className={underlineLinks ? 'active' : ''}>\n {translate('underlineLinks')}\n </button>\n <button onClick={toggleReadableFont} className={readableFont ? 'active' : ''}>\n {translate('readableFont')}\n </button>\n <button onClick={toggleVoice} className={voiceEnabled ? 'active' : ''}>\n 🎤 {translate('voiceCommand')}\n </button>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport { useAccessibility } from './AccessibilityContext';\n\nexport const AccessibilityDropdown: React.FC = () => {\n const [isOpen, setIsOpen] = useState(false);\n const {\n language,\n setLanguage,\n increaseText,\n decreaseText,\n toggleHighContrast,\n toggleNegativeContrast,\n toggleLightBackground,\n toggleUnderlineLinks,\n toggleReadableFont,\n toggleVoice,\n translate,\n highContrast,\n negativeContrast,\n lightBackground,\n underlineLinks,\n readableFont,\n voiceEnabled,\n } = useAccessibility();\n\n return (\n <div className=\"accessibility-dropdown\">\n <button \n className=\"accessibility-dropdown-toggle\"\n onClick={() => setIsOpen(!isOpen)}\n >\n ♿ Accessibility\n </button>\n \n {isOpen && (\n <div className=\"accessibility-dropdown-menu\">\n <div className=\"accessibility-dropdown-section\">\n <label>Language:</label>\n <select value={language} onChange={(e) => setLanguage(e.target.value as any)}>\n <option value=\"en\">English</option>\n <option value=\"tl\">Tagalog</option>\n <option value=\"ceb\">Cebuano</option>\n </select>\n </div>\n\n <div className=\"accessibility-dropdown-section\">\n <button onClick={increaseText}>+ {translate('increaseText')}</button>\n <button onClick={decreaseText}>- {translate('decreaseText')}</button>\n </div>\n\n <div className=\"accessibility-dropdown-section\">\n <button onClick={toggleHighContrast} className={highContrast ? 'active' : ''}>\n {translate('highContrast')}\n </button>\n <button onClick={toggleNegativeContrast} className={negativeContrast ? 'active' : ''}>\n {translate('negativeContrast')}\n </button>\n <button onClick={toggleLightBackground} className={lightBackground ? 'active' : ''}>\n {translate('lightBackground')}\n </button>\n <button onClick={toggleUnderlineLinks} className={underlineLinks ? 'active' : ''}>\n {translate('underlineLinks')}\n </button>\n <button onClick={toggleReadableFont} className={readableFont ? 'active' : ''}>\n {translate('readableFont')}\n </button>\n <button onClick={toggleVoice} className={voiceEnabled ? 'active' : ''}>\n 🎤 {translate('voiceCommand')}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { useAccessibility } from './AccessibilityContext';\nimport { TranslationKey } from './translations';\n\ninterface TProps {\n k: TranslationKey | string;\n children?: React.ReactNode;\n}\n\nexport const T: React.FC<TProps> = ({ k, children }) => {\n const { translate, language } = useAccessibility();\n \n if (children && typeof children === 'string') {\n return <>{children}</>;\n }\n \n return <>{translate(k as TranslationKey)}</>;\n};\n"],"names":["createContext","useState","useEffect","useContext"],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ .accessibility-toolbar {
2
+ display: flex;
3
+ gap: 8px;
4
+ padding: 12px;
5
+ background: #f5f5f5;
6
+ border-bottom: 1px solid #ddd;
7
+ flex-wrap: wrap;
8
+ }
9
+
10
+ .accessibility-toolbar button,
11
+ .accessibility-toolbar select {
12
+ padding: 8px 12px;
13
+ border: 1px solid #ccc;
14
+ background: white;
15
+ cursor: pointer;
16
+ border-radius: 4px;
17
+ font-size: 14px;
18
+ }
19
+
20
+ .accessibility-toolbar button:hover {
21
+ background: #e9e9e9;
22
+ }
23
+
24
+ .accessibility-toolbar button.active {
25
+ background: #007bff;
26
+ color: white;
27
+ border-color: #007bff;
28
+ }
29
+
30
+ /* Dropdown Styles */
31
+ .accessibility-dropdown {
32
+ position: relative;
33
+ display: inline-block;
34
+ }
35
+
36
+ .accessibility-dropdown-toggle {
37
+ padding: 10px 16px;
38
+ background: #007bff;
39
+ color: white;
40
+ border: none;
41
+ border-radius: 4px;
42
+ cursor: pointer;
43
+ font-size: 16px;
44
+ font-weight: 500;
45
+ }
46
+
47
+ .accessibility-dropdown-toggle:hover {
48
+ background: #0056b3;
49
+ }
50
+
51
+ .accessibility-dropdown-menu {
52
+ position: absolute;
53
+ top: 100%;
54
+ right: 0;
55
+ margin-top: 8px;
56
+ background: white;
57
+ border: 1px solid #ddd;
58
+ border-radius: 4px;
59
+ box-shadow: 0 4px 12px rgba(0,0,0,0.15);
60
+ min-width: 280px;
61
+ z-index: 1000;
62
+ padding: 12px;
63
+ }
64
+
65
+ .accessibility-dropdown-section {
66
+ display: flex;
67
+ flex-direction: column;
68
+ gap: 8px;
69
+ padding: 8px 0;
70
+ border-bottom: 1px solid #eee;
71
+ }
72
+
73
+ .accessibility-dropdown-section:last-child {
74
+ border-bottom: none;
75
+ }
76
+
77
+ .accessibility-dropdown-section label {
78
+ font-weight: 500;
79
+ font-size: 14px;
80
+ margin-bottom: 4px;
81
+ }
82
+
83
+ .accessibility-dropdown-section button,
84
+ .accessibility-dropdown-section select {
85
+ padding: 8px 12px;
86
+ border: 1px solid #ccc;
87
+ background: white;
88
+ cursor: pointer;
89
+ border-radius: 4px;
90
+ font-size: 14px;
91
+ text-align: left;
92
+ }
93
+
94
+ .accessibility-dropdown-section button:hover {
95
+ background: #f5f5f5;
96
+ }
97
+
98
+ .accessibility-dropdown-section button.active {
99
+ background: #007bff;
100
+ color: white;
101
+ border-color: #007bff;
102
+ }
103
+
104
+ .high-contrast {
105
+ filter: contrast(2);
106
+ }
107
+
108
+ .negative-contrast {
109
+ filter: invert(1) hue-rotate(180deg);
110
+ }
111
+
112
+ .light-background,
113
+ .light-background body {
114
+ background: #ffffff !important;
115
+ color: #000000 !important;
116
+ }
117
+
118
+ .underline-links a {
119
+ text-decoration: underline !important;
120
+ }
121
+
122
+ .readable-font,
123
+ .readable-font * {
124
+ font-family: 'Arial', 'Helvetica', sans-serif !important;
125
+ letter-spacing: 0.05em !important;
126
+ line-height: 1.6 !important;
127
+ }
@@ -0,0 +1,34 @@
1
+ export declare const translations: {
2
+ en: {
3
+ increaseText: string;
4
+ decreaseText: string;
5
+ highContrast: string;
6
+ negativeContrast: string;
7
+ lightBackground: string;
8
+ underlineLinks: string;
9
+ readableFont: string;
10
+ voiceCommand: string;
11
+ };
12
+ tl: {
13
+ increaseText: string;
14
+ decreaseText: string;
15
+ highContrast: string;
16
+ negativeContrast: string;
17
+ lightBackground: string;
18
+ underlineLinks: string;
19
+ readableFont: string;
20
+ voiceCommand: string;
21
+ };
22
+ ceb: {
23
+ increaseText: string;
24
+ decreaseText: string;
25
+ highContrast: string;
26
+ negativeContrast: string;
27
+ lightBackground: string;
28
+ underlineLinks: string;
29
+ readableFont: string;
30
+ voiceCommand: string;
31
+ };
32
+ };
33
+ export type Language = keyof typeof translations;
34
+ export type TranslationKey = keyof typeof translations.en;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngp-accessibility",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "React accessibility package with translation, text sizing, contrast modes, and voice commands",
5
5
  "author": {
6
6
  "name": "Rodolfo Miclat Jr."
@@ -12,7 +12,7 @@
12
12
  "dist"
13
13
  ],
14
14
  "scripts": {
15
- "build": "rollup -c",
15
+ "build": "rollup -c && cp src/styles.css dist/styles.css",
16
16
  "dev": "rollup -c -w"
17
17
  },
18
18
  "keywords": [
@@ -32,6 +32,7 @@
32
32
  "@rollup/plugin-typescript": "^11.0.0",
33
33
  "@types/react": "^18.0.0",
34
34
  "rollup": "^3.0.0",
35
+ "tslib": "^2.6.0",
35
36
  "typescript": "^5.0.0"
36
37
  },
37
38
  "license": "MIT"