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.
Files changed (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +225 -0
  3. package/dist/components/AccessibilityPanel/AccessibilityPanel.d.ts +12 -0
  4. package/dist/components/AccessibilityPanel/AccessibilityPanel.d.ts.map +1 -0
  5. package/dist/components/AccessibilityToggle/AccessibilityToggle.d.ts +18 -0
  6. package/dist/components/AccessibilityToggle/AccessibilityToggle.d.ts.map +1 -0
  7. package/dist/components/ColorSchemeControl/ColorSchemeControl.d.ts +18 -0
  8. package/dist/components/ColorSchemeControl/ColorSchemeControl.d.ts.map +1 -0
  9. package/dist/components/FontSizeControl/FontSizeControl.d.ts +18 -0
  10. package/dist/components/FontSizeControl/FontSizeControl.d.ts.map +1 -0
  11. package/dist/components/ImageControl/ImageControl.d.ts +18 -0
  12. package/dist/components/ImageControl/ImageControl.d.ts.map +1 -0
  13. package/dist/context/AccessibilityContext.d.ts +25 -0
  14. package/dist/context/AccessibilityContext.d.ts.map +1 -0
  15. package/dist/hooks/useAccessibilitySettings.d.ts +25 -0
  16. package/dist/hooks/useAccessibilitySettings.d.ts.map +1 -0
  17. package/dist/index.d.ts +17 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.esm.js +1151 -0
  20. package/dist/index.esm.js.map +1 -0
  21. package/dist/index.umd.js +11 -0
  22. package/dist/index.umd.js.map +1 -0
  23. package/dist/lib/accessibility-storage.d.ts +23 -0
  24. package/dist/lib/accessibility-storage.d.ts.map +1 -0
  25. package/dist/lib/css-applier.d.ts +50 -0
  26. package/dist/lib/css-applier.d.ts.map +1 -0
  27. package/dist/lib/dom-manipulator.d.ts +29 -0
  28. package/dist/lib/dom-manipulator.d.ts.map +1 -0
  29. package/dist/lib/font-size-manager.d.ts +26 -0
  30. package/dist/lib/font-size-manager.d.ts.map +1 -0
  31. package/dist/style.css +1 -0
  32. package/dist/types/index.d.ts +61 -0
  33. package/dist/types/index.d.ts.map +1 -0
  34. package/package.json +58 -0
  35. package/src/components/AccessibilityPanel/AccessibilityPanel.module.scss +214 -0
  36. package/src/components/AccessibilityPanel/AccessibilityPanel.tsx +151 -0
  37. package/src/components/AccessibilityToggle/AccessibilityToggle.module.scss +158 -0
  38. package/src/components/AccessibilityToggle/AccessibilityToggle.tsx +85 -0
  39. package/src/components/ColorSchemeControl/ColorSchemeControl.module.scss +175 -0
  40. package/src/components/ColorSchemeControl/ColorSchemeControl.tsx +116 -0
  41. package/src/components/FontSizeControl/FontSizeControl.module.scss +175 -0
  42. package/src/components/FontSizeControl/FontSizeControl.tsx +116 -0
  43. package/src/components/ImageControl/ImageControl.module.scss +163 -0
  44. package/src/components/ImageControl/ImageControl.tsx +85 -0
  45. package/src/context/AccessibilityContext.tsx +54 -0
  46. package/src/hooks/useAccessibilitySettings.ts +228 -0
  47. package/src/index.ts +80 -0
  48. package/src/lib/accessibility-storage.ts +82 -0
  49. package/src/lib/css-applier.ts +168 -0
  50. package/src/lib/dom-manipulator.ts +75 -0
  51. package/src/lib/font-size-manager.ts +185 -0
  52. package/src/styles/global.scss +60 -0
  53. package/src/styles/variables.scss +80 -0
  54. package/src/types/index.ts +72 -0
  55. 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';
@@ -0,0 +1,9 @@
1
+ declare module '*.module.scss' {
2
+ const classes: { [key: string]: string };
3
+ export default classes;
4
+ }
5
+
6
+ declare module '*.scss' {
7
+ const content: string;
8
+ export default content;
9
+ }