vision-accessibility 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +225 -0
- package/dist/components/AccessibilityPanel/AccessibilityPanel.d.ts +12 -0
- package/dist/components/AccessibilityPanel/AccessibilityPanel.d.ts.map +1 -0
- package/dist/components/AccessibilityToggle/AccessibilityToggle.d.ts +18 -0
- package/dist/components/AccessibilityToggle/AccessibilityToggle.d.ts.map +1 -0
- package/dist/components/ColorSchemeControl/ColorSchemeControl.d.ts +18 -0
- package/dist/components/ColorSchemeControl/ColorSchemeControl.d.ts.map +1 -0
- package/dist/components/FontSizeControl/FontSizeControl.d.ts +18 -0
- package/dist/components/FontSizeControl/FontSizeControl.d.ts.map +1 -0
- package/dist/components/ImageControl/ImageControl.d.ts +18 -0
- package/dist/components/ImageControl/ImageControl.d.ts.map +1 -0
- package/dist/context/AccessibilityContext.d.ts +25 -0
- package/dist/context/AccessibilityContext.d.ts.map +1 -0
- package/dist/hooks/useAccessibilitySettings.d.ts +25 -0
- package/dist/hooks/useAccessibilitySettings.d.ts.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +1151 -0
- package/dist/index.esm.js.map +1 -0
- package/dist/index.umd.js +11 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/lib/accessibility-storage.d.ts +23 -0
- package/dist/lib/accessibility-storage.d.ts.map +1 -0
- package/dist/lib/css-applier.d.ts +50 -0
- package/dist/lib/css-applier.d.ts.map +1 -0
- package/dist/lib/dom-manipulator.d.ts +29 -0
- package/dist/lib/dom-manipulator.d.ts.map +1 -0
- package/dist/lib/font-size-manager.d.ts +26 -0
- package/dist/lib/font-size-manager.d.ts.map +1 -0
- package/dist/style.css +1 -0
- package/dist/types/index.d.ts +61 -0
- package/dist/types/index.d.ts.map +1 -0
- package/package.json +58 -0
- package/src/components/AccessibilityPanel/AccessibilityPanel.module.scss +214 -0
- package/src/components/AccessibilityPanel/AccessibilityPanel.tsx +151 -0
- package/src/components/AccessibilityToggle/AccessibilityToggle.module.scss +158 -0
- package/src/components/AccessibilityToggle/AccessibilityToggle.tsx +85 -0
- package/src/components/ColorSchemeControl/ColorSchemeControl.module.scss +175 -0
- package/src/components/ColorSchemeControl/ColorSchemeControl.tsx +116 -0
- package/src/components/FontSizeControl/FontSizeControl.module.scss +175 -0
- package/src/components/FontSizeControl/FontSizeControl.tsx +116 -0
- package/src/components/ImageControl/ImageControl.module.scss +163 -0
- package/src/components/ImageControl/ImageControl.tsx +85 -0
- package/src/context/AccessibilityContext.tsx +54 -0
- package/src/hooks/useAccessibilitySettings.ts +228 -0
- package/src/index.ts +80 -0
- package/src/lib/accessibility-storage.ts +82 -0
- package/src/lib/css-applier.ts +168 -0
- package/src/lib/dom-manipulator.ts +75 -0
- package/src/lib/font-size-manager.ts +185 -0
- package/src/styles/global.scss +60 -0
- package/src/styles/variables.scss +80 -0
- package/src/types/index.ts +72 -0
- package/src/types/scss.d.ts +9 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SCSS переменные для компонентов панели доступности
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Цвета
|
|
6
|
+
$white: #ffffff;
|
|
7
|
+
$black: #000000;
|
|
8
|
+
$gray-100: #f8f9fa;
|
|
9
|
+
$gray-200: #e9ecef;
|
|
10
|
+
$gray-300: #dee2e6;
|
|
11
|
+
$gray-400: #ced4da;
|
|
12
|
+
$gray-500: #adb5bd;
|
|
13
|
+
$gray-600: #6c757d;
|
|
14
|
+
$gray-700: #495057;
|
|
15
|
+
$gray-800: #343a40;
|
|
16
|
+
$gray-900: #212529;
|
|
17
|
+
|
|
18
|
+
$primary: #007bff;
|
|
19
|
+
$primary-dark: #0056b3;
|
|
20
|
+
$primary-light: #e3f2fd;
|
|
21
|
+
$primary-lighter: #f8f9ff;
|
|
22
|
+
|
|
23
|
+
$success: #28a745;
|
|
24
|
+
$warning: #ffc107;
|
|
25
|
+
$danger: #dc3545;
|
|
26
|
+
|
|
27
|
+
$yellow: #ffff00;
|
|
28
|
+
$cyan: #00ffff;
|
|
29
|
+
$magenta: #ff00ff;
|
|
30
|
+
|
|
31
|
+
// Размеры
|
|
32
|
+
$border-radius: 6px;
|
|
33
|
+
$border-radius-lg: 8px;
|
|
34
|
+
$border-radius-xl: 12px;
|
|
35
|
+
|
|
36
|
+
$spacing-xs: 4px;
|
|
37
|
+
$spacing-sm: 8px;
|
|
38
|
+
$spacing-md: 12px;
|
|
39
|
+
$spacing-lg: 16px;
|
|
40
|
+
$spacing-xl: 20px;
|
|
41
|
+
$spacing-xxl: 24px;
|
|
42
|
+
|
|
43
|
+
// Тени
|
|
44
|
+
$shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
|
|
45
|
+
$shadow-md: 0 4px 8px rgba(0, 0, 0, 0.12);
|
|
46
|
+
$shadow-lg: 0 8px 32px rgba(0, 0, 0, 0.12);
|
|
47
|
+
|
|
48
|
+
// Переходы
|
|
49
|
+
$transition-fast: 0.2s ease;
|
|
50
|
+
$transition-normal: 0.3s ease;
|
|
51
|
+
|
|
52
|
+
// Точки останова
|
|
53
|
+
$breakpoint-sm: 576px;
|
|
54
|
+
$breakpoint-md: 768px;
|
|
55
|
+
$breakpoint-lg: 992px;
|
|
56
|
+
$breakpoint-xl: 1200px;
|
|
57
|
+
|
|
58
|
+
// Миксины для адаптивности
|
|
59
|
+
@mixin respond-down($breakpoint) {
|
|
60
|
+
@if $breakpoint == sm {
|
|
61
|
+
@media (max-width: #{$breakpoint-sm - 1px}) {
|
|
62
|
+
@content;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
@if $breakpoint == md {
|
|
66
|
+
@media (max-width: #{$breakpoint-md - 1px}) {
|
|
67
|
+
@content;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
@if $breakpoint == lg {
|
|
71
|
+
@media (max-width: #{$breakpoint-lg - 1px}) {
|
|
72
|
+
@content;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
@if $breakpoint == xl {
|
|
76
|
+
@media (max-width: #{$breakpoint-xl - 1px}) {
|
|
77
|
+
@content;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Типы для панели доступности
|
|
3
|
+
* Определяет интерфейсы и типы для настроек доступности
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export type ColorScheme = 'standard' | 'high-contrast' | 'grayscale';
|
|
7
|
+
export type FontSize = 'small' | 'standard' | 'large';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Интерфейс настроек доступности
|
|
11
|
+
*/
|
|
12
|
+
export interface AccessibilitySettings {
|
|
13
|
+
/** Включен ли режим доступности */
|
|
14
|
+
isEnabled: boolean;
|
|
15
|
+
/** Цветовая схема */
|
|
16
|
+
colorScheme: ColorScheme;
|
|
17
|
+
/** Размер шрифта */
|
|
18
|
+
fontSize: FontSize;
|
|
19
|
+
/** Показывать ли изображения */
|
|
20
|
+
showImages: boolean;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Контекст для управления настройками доступности
|
|
25
|
+
*/
|
|
26
|
+
export interface AccessibilityContextType {
|
|
27
|
+
/** Текущие настройки */
|
|
28
|
+
settings: AccessibilitySettings;
|
|
29
|
+
/** Обновление настроек */
|
|
30
|
+
updateSettings: (updates: Partial<AccessibilitySettings>) => void;
|
|
31
|
+
/** Сброс настроек к значениям по умолчанию */
|
|
32
|
+
resetSettings: () => void;
|
|
33
|
+
/** Загружены ли настройки из localStorage */
|
|
34
|
+
isLoaded: boolean;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Свойства основного компонента панели доступности
|
|
39
|
+
*/
|
|
40
|
+
export interface AccessibilityPanelProps {
|
|
41
|
+
/** Открыта ли панель */
|
|
42
|
+
isOpen: boolean;
|
|
43
|
+
/** Обработчик закрытия панели */
|
|
44
|
+
onClose: () => void;
|
|
45
|
+
/** Позиция панели относительно кнопки */
|
|
46
|
+
position?: 'top-right' | 'top-left';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Свойства компонентов управления настройками
|
|
51
|
+
*/
|
|
52
|
+
export interface ControlComponentProps {
|
|
53
|
+
/** Текущие настройки */
|
|
54
|
+
settings: AccessibilitySettings;
|
|
55
|
+
/** Обработчик обновления настроек */
|
|
56
|
+
onUpdate: (updates: Partial<AccessibilitySettings>) => void;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Настройки по умолчанию
|
|
61
|
+
*/
|
|
62
|
+
export const DEFAULT_ACCESSIBILITY_SETTINGS: AccessibilitySettings = {
|
|
63
|
+
isEnabled: false,
|
|
64
|
+
colorScheme: 'standard',
|
|
65
|
+
fontSize: 'standard',
|
|
66
|
+
showImages: true,
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Ключ для сохранения в localStorage
|
|
71
|
+
*/
|
|
72
|
+
export const STORAGE_KEY = 'accessibility-settings';
|