@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 0.2.11
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/CHANGELOG.md +1 -1
- package/dist/components/ui/accessibility-demo.esm.js +30 -24
- package/dist/components/ui/accessibility-demo.js +30 -24
- package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
- package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
- package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
- package/dist/components/ui/advanced-transition-system-demo.js +110 -64
- package/dist/components/ui/advanced-transition-system.esm.js +166 -122
- package/dist/components/ui/advanced-transition-system.js +166 -122
- package/dist/components/ui/animation/animated-container.esm.js +52 -29
- package/dist/components/ui/animation/animated-container.js +52 -29
- package/dist/components/ui/animation/staggered-container.esm.js +18 -9
- package/dist/components/ui/animation/staggered-container.js +18 -9
- package/dist/components/ui/animation-demo.esm.js +67 -35
- package/dist/components/ui/animation-demo.js +67 -35
- package/dist/components/ui/badge.esm.js +9 -6
- package/dist/components/ui/badge.js +9 -6
- package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
- package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
- package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
- package/dist/components/ui/border-radius-shadow-demo.js +23 -12
- package/dist/components/ui/button.esm.js +8 -2
- package/dist/components/ui/button.js +8 -2
- package/dist/components/ui/card.esm.js +33 -8
- package/dist/components/ui/card.js +33 -8
- package/dist/components/ui/checkbox.esm.js +3 -3
- package/dist/components/ui/checkbox.js +3 -3
- package/dist/components/ui/color-preview.esm.js +68 -45
- package/dist/components/ui/color-preview.js +68 -45
- package/dist/components/ui/data-display/chart.esm.js +112 -84
- package/dist/components/ui/data-display/chart.js +112 -84
- package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
- package/dist/components/ui/data-display/data-grid-simple.js +1 -1
- package/dist/components/ui/data-display/data-grid.esm.js +80 -67
- package/dist/components/ui/data-display/data-grid.js +80 -67
- package/dist/components/ui/data-display/list.esm.js +53 -45
- package/dist/components/ui/data-display/list.js +53 -45
- package/dist/components/ui/data-display/table.esm.js +62 -54
- package/dist/components/ui/data-display/table.js +62 -54
- package/dist/components/ui/data-display/timeline.esm.js +39 -34
- package/dist/components/ui/data-display/timeline.js +39 -34
- package/dist/components/ui/data-display/tree.esm.js +116 -84
- package/dist/components/ui/data-display/tree.js +116 -84
- package/dist/components/ui/data-display/types.esm.js +389 -364
- package/dist/components/ui/data-display/types.js +389 -364
- package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
- package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
- package/dist/components/ui/enterprise-mobile-experience.js +124 -73
- package/dist/components/ui/feedback/alert.esm.js +22 -15
- package/dist/components/ui/feedback/alert.js +22 -15
- package/dist/components/ui/feedback/progress.esm.js +47 -24
- package/dist/components/ui/feedback/progress.js +47 -24
- package/dist/components/ui/feedback/skeleton.esm.js +39 -29
- package/dist/components/ui/feedback/skeleton.js +39 -29
- package/dist/components/ui/feedback/toast.esm.js +62 -38
- package/dist/components/ui/feedback/toast.js +62 -38
- package/dist/components/ui/feedback/types.esm.js +83 -83
- package/dist/components/ui/feedback/types.js +83 -83
- package/dist/components/ui/font-preview.esm.js +41 -39
- package/dist/components/ui/font-preview.js +41 -39
- package/dist/components/ui/form-demo.esm.js +150 -113
- package/dist/components/ui/form-demo.js +150 -113
- package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
- package/dist/components/ui/hardware-acceleration-demo.js +137 -87
- package/dist/components/ui/input.esm.js +4 -1
- package/dist/components/ui/input.js +4 -1
- package/dist/components/ui/layout-demo.esm.js +81 -56
- package/dist/components/ui/layout-demo.js +81 -56
- package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
- package/dist/components/ui/layouts/adaptive-layout.js +27 -8
- package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
- package/dist/components/ui/layouts/desktop-layout.js +39 -19
- package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
- package/dist/components/ui/layouts/mobile-layout.js +19 -9
- package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
- package/dist/components/ui/layouts/tablet-layout.js +28 -14
- package/dist/components/ui/mobile-form-validation.esm.js +120 -87
- package/dist/components/ui/mobile-form-validation.js +120 -87
- package/dist/components/ui/mobile-input-demo.esm.js +19 -13
- package/dist/components/ui/mobile-input-demo.js +19 -13
- package/dist/components/ui/mobile-input.esm.js +185 -120
- package/dist/components/ui/mobile-input.js +185 -120
- package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
- package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
- package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
- package/dist/components/ui/navigation/breadcrumb.js +17 -14
- package/dist/components/ui/navigation/index.esm.js +0 -1
- package/dist/components/ui/navigation/index.js +0 -1
- package/dist/components/ui/navigation/menu.esm.js +49 -35
- package/dist/components/ui/navigation/menu.js +49 -35
- package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
- package/dist/components/ui/navigation/navigation-demo.js +81 -74
- package/dist/components/ui/navigation/pagination.esm.js +62 -50
- package/dist/components/ui/navigation/pagination.js +62 -50
- package/dist/components/ui/navigation/sidebar.esm.js +56 -42
- package/dist/components/ui/navigation/sidebar.js +56 -42
- package/dist/components/ui/navigation/stepper.esm.js +34 -23
- package/dist/components/ui/navigation/stepper.js +34 -23
- package/dist/components/ui/navigation/tabs.esm.js +32 -21
- package/dist/components/ui/navigation/tabs.js +32 -21
- package/dist/components/ui/navigation/types.esm.js +196 -195
- package/dist/components/ui/navigation/types.js +196 -195
- package/dist/components/ui/overlay/backdrop.esm.js +17 -16
- package/dist/components/ui/overlay/backdrop.js +17 -16
- package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
- package/dist/components/ui/overlay/focus-manager.js +21 -19
- package/dist/components/ui/overlay/index.esm.js +0 -2
- package/dist/components/ui/overlay/index.js +0 -2
- package/dist/components/ui/overlay/modal.esm.js +38 -34
- package/dist/components/ui/overlay/modal.js +38 -34
- package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
- package/dist/components/ui/overlay/overlay-manager.js +25 -20
- package/dist/components/ui/overlay/popover.esm.js +74 -58
- package/dist/components/ui/overlay/popover.js +74 -58
- package/dist/components/ui/overlay/portal.esm.js +7 -7
- package/dist/components/ui/overlay/portal.js +7 -7
- package/dist/components/ui/overlay/tooltip.esm.js +54 -39
- package/dist/components/ui/overlay/tooltip.js +54 -39
- package/dist/components/ui/overlay/types.esm.js +132 -131
- package/dist/components/ui/overlay/types.js +132 -131
- package/dist/components/ui/performance-demo.esm.js +135 -88
- package/dist/components/ui/performance-demo.js +135 -88
- package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
- package/dist/components/ui/semantic-input-system-demo.js +117 -80
- package/dist/components/ui/theme-customizer.esm.js +84 -52
- package/dist/components/ui/theme-customizer.js +84 -52
- package/dist/components/ui/theme-preview.esm.js +95 -43
- package/dist/components/ui/theme-preview.js +95 -43
- package/dist/components/ui/theme-switcher.esm.js +70 -44
- package/dist/components/ui/theme-switcher.js +70 -44
- package/dist/components/ui/theme-toggle.esm.js +3 -3
- package/dist/components/ui/theme-toggle.js +3 -3
- package/dist/components/ui/token-demo.esm.js +33 -21
- package/dist/components/ui/token-demo.js +33 -21
- package/dist/components/ui/touch-demo.esm.js +102 -73
- package/dist/components/ui/touch-demo.js +102 -73
- package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
- package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
- package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
- package/dist/components/ui/touch-friendly-interface.js +85 -61
- package/dist/hooks/use-accessibility-support.esm.js +115 -85
- package/dist/hooks/use-accessibility-support.js +115 -85
- package/dist/hooks/use-adaptive-layout.esm.js +56 -33
- package/dist/hooks/use-adaptive-layout.js +56 -33
- package/dist/hooks/use-advanced-patterns.esm.js +57 -42
- package/dist/hooks/use-advanced-patterns.js +57 -42
- package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
- package/dist/hooks/use-advanced-transition-system.js +112 -71
- package/dist/hooks/use-animation-profile.esm.js +63 -34
- package/dist/hooks/use-animation-profile.js +63 -34
- package/dist/hooks/use-battery-animations.esm.js +80 -55
- package/dist/hooks/use-battery-animations.js +80 -55
- package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
- package/dist/hooks/use-battery-conscious-loading.js +166 -123
- package/dist/hooks/use-battery-optimization.esm.js +78 -55
- package/dist/hooks/use-battery-optimization.js +78 -55
- package/dist/hooks/use-battery-status.esm.js +73 -51
- package/dist/hooks/use-battery-status.js +73 -51
- package/dist/hooks/use-component-performance.esm.js +62 -47
- package/dist/hooks/use-component-performance.js +62 -47
- package/dist/hooks/use-device-loading-states.esm.js +152 -109
- package/dist/hooks/use-device-loading-states.js +152 -109
- package/dist/hooks/use-device.esm.js +25 -14
- package/dist/hooks/use-device.js +25 -14
- package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
- package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
- package/dist/hooks/use-form-feedback.esm.js +124 -81
- package/dist/hooks/use-form-feedback.js +124 -81
- package/dist/hooks/use-form-performance.esm.js +127 -92
- package/dist/hooks/use-form-performance.js +127 -92
- package/dist/hooks/use-frame-rate.esm.js +56 -37
- package/dist/hooks/use-frame-rate.js +56 -37
- package/dist/hooks/use-gestures.esm.js +96 -72
- package/dist/hooks/use-gestures.js +96 -72
- package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
- package/dist/hooks/use-hardware-acceleration.js +65 -37
- package/dist/hooks/use-input-accessibility.esm.js +157 -119
- package/dist/hooks/use-input-accessibility.js +157 -119
- package/dist/hooks/use-input-performance.esm.js +139 -104
- package/dist/hooks/use-input-performance.js +139 -104
- package/dist/hooks/use-layout-performance.esm.js +50 -29
- package/dist/hooks/use-layout-performance.js +50 -29
- package/dist/hooks/use-loading-accessibility.esm.js +209 -169
- package/dist/hooks/use-loading-accessibility.js +209 -169
- package/dist/hooks/use-loading-performance.esm.js +117 -93
- package/dist/hooks/use-loading-performance.js +117 -93
- package/dist/hooks/use-memory-usage.esm.js +57 -38
- package/dist/hooks/use-memory-usage.js +57 -38
- package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
- package/dist/hooks/use-mobile-form-layout.js +111 -74
- package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
- package/dist/hooks/use-mobile-form-validation.js +211 -144
- package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
- package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
- package/dist/hooks/use-mobile-layout.esm.js +73 -51
- package/dist/hooks/use-mobile-layout.js +73 -51
- package/dist/hooks/use-mobile-optimization.esm.js +72 -44
- package/dist/hooks/use-mobile-optimization.js +72 -44
- package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
- package/dist/hooks/use-mobile-skeleton.js +97 -64
- package/dist/hooks/use-mobile-touch.esm.js +128 -93
- package/dist/hooks/use-mobile-touch.js +128 -93
- package/dist/hooks/use-performance-throttling.esm.js +72 -48
- package/dist/hooks/use-performance-throttling.js +72 -48
- package/dist/hooks/use-performance.esm.js +90 -52
- package/dist/hooks/use-performance.js +90 -52
- package/dist/hooks/use-reusable-architecture.esm.js +94 -65
- package/dist/hooks/use-reusable-architecture.js +94 -65
- package/dist/hooks/use-semantic-input-types.esm.js +166 -124
- package/dist/hooks/use-semantic-input-types.js +166 -124
- package/dist/hooks/use-semantic-input.esm.js +178 -126
- package/dist/hooks/use-semantic-input.js +178 -126
- package/dist/hooks/use-tablet-layout.esm.js +67 -38
- package/dist/hooks/use-tablet-layout.js +67 -38
- package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
- package/dist/hooks/use-touch-friendly-input.js +193 -149
- package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
- package/dist/hooks/use-touch-friendly-interface.js +99 -67
- package/dist/hooks/use-touch-optimization.esm.js +99 -72
- package/dist/hooks/use-touch-optimization.js +99 -72
- package/dist/index.esm.js +157 -281
- package/dist/index.js +157 -281
- package/dist/lib/utils.esm.js +1 -1
- package/dist/lib/utils.js +1 -1
- package/dist/plugins/theme-css-generator.esm.js +104 -55
- package/dist/plugins/theme-css-generator.js +104 -55
- package/dist/provider.esm.js +4 -4
- package/dist/provider.js +4 -4
- package/dist/styles.css +1 -1
- package/dist/theme.esm.js +633 -468
- package/dist/theme.js +633 -468
- package/dist/themes/ThemeContext.esm.js +15 -15
- package/dist/themes/ThemeContext.js +15 -15
- package/dist/themes/ThemeProvider.esm.js +25 -22
- package/dist/themes/ThemeProvider.js +25 -22
- package/dist/themes/accessibility.esm.js +147 -108
- package/dist/themes/accessibility.js +147 -108
- package/dist/themes/aria-patterns.esm.js +198 -162
- package/dist/themes/aria-patterns.js +198 -162
- package/dist/themes/base-themes.esm.js +14 -11
- package/dist/themes/base-themes.js +14 -11
- package/dist/themes/colorManager.esm.js +101 -83
- package/dist/themes/colorManager.js +101 -83
- package/dist/themes/examples/dark-theme.esm.js +133 -103
- package/dist/themes/examples/dark-theme.js +133 -103
- package/dist/themes/examples/minimal-theme.esm.js +83 -61
- package/dist/themes/examples/minimal-theme.js +83 -61
- package/dist/themes/focus-management.esm.js +202 -143
- package/dist/themes/focus-management.js +202 -143
- package/dist/themes/fontLoader.esm.js +28 -19
- package/dist/themes/fontLoader.js +28 -19
- package/dist/themes/high-contrast.esm.js +152 -104
- package/dist/themes/high-contrast.js +152 -104
- package/dist/themes/index.esm.js +1 -1
- package/dist/themes/index.js +1 -1
- package/dist/themes/inheritance.esm.js +35 -27
- package/dist/themes/inheritance.js +35 -27
- package/dist/themes/keyboard-navigation.esm.js +152 -123
- package/dist/themes/keyboard-navigation.js +152 -123
- package/dist/themes/motion-reduction.esm.js +193 -133
- package/dist/themes/motion-reduction.js +193 -133
- package/dist/themes/navigation.esm.js +146 -146
- package/dist/themes/navigation.js +146 -146
- package/dist/themes/screen-reader.esm.js +159 -94
- package/dist/themes/screen-reader.js +159 -94
- package/dist/themes/systemThemeDetector.esm.js +42 -34
- package/dist/themes/systemThemeDetector.js +42 -34
- package/dist/themes/themeCSSUpdater.esm.js +21 -9
- package/dist/themes/themeCSSUpdater.js +21 -9
- package/dist/themes/themePersistence.esm.js +68 -47
- package/dist/themes/themePersistence.js +68 -47
- package/dist/themes/themes/stan-design.esm.js +633 -468
- package/dist/themes/themes/stan-design.js +633 -468
- package/dist/themes/types.esm.js +301 -287
- package/dist/themes/types.js +301 -287
- package/dist/themes/useSystemTheme.esm.js +4 -4
- package/dist/themes/useSystemTheme.js +4 -4
- package/dist/themes/useTheme.esm.js +4 -4
- package/dist/themes/useTheme.js +4 -4
- package/dist/themes/validation.esm.js +128 -77
- package/dist/themes/validation.js +128 -77
- package/dist/tokens/index.esm.js +1 -2
- package/dist/tokens/index.js +1 -2
- package/dist/tokens/tokenExporter.esm.js +87 -61
- package/dist/tokens/tokenExporter.js +87 -61
- package/dist/tokens/tokenGenerator.esm.js +86 -77
- package/dist/tokens/tokenGenerator.js +86 -77
- package/dist/tokens/tokenManager.esm.js +64 -51
- package/dist/tokens/tokenManager.js +64 -51
- package/dist/tokens/tokenValidator.esm.js +193 -147
- package/dist/tokens/tokenValidator.js +193 -147
- package/dist/tokens/types.esm.js +49 -35
- package/dist/tokens/types.js +49 -35
- package/dist/utils/bundle-analyzer.esm.js +83 -65
- package/dist/utils/bundle-analyzer.js +83 -65
- package/dist/utils/bundle-splitting.esm.js +142 -117
- package/dist/utils/bundle-splitting.js +142 -117
- package/dist/utils/lazy-loading.esm.js +132 -106
- package/dist/utils/lazy-loading.js +132 -106
- package/dist/utils/performance-monitor.esm.js +170 -129
- package/dist/utils/performance-monitor.js +170 -129
- package/dist/utils/tree-shaking.esm.js +69 -61
- package/dist/utils/tree-shaking.js +69 -61
- package/package.json +1 -1
- package/src/index.ts +146 -146
|
@@ -3,137 +3,143 @@ import { accessibilityManager } from './accessibility';
|
|
|
3
3
|
// ARIA role definitions
|
|
4
4
|
export const ARIA_ROLES = {
|
|
5
5
|
// Landmark roles
|
|
6
|
-
banner,
|
|
7
|
-
complementary,
|
|
8
|
-
contentinfo,
|
|
9
|
-
form,
|
|
10
|
-
main,
|
|
11
|
-
navigation,
|
|
12
|
-
region,
|
|
13
|
-
search,
|
|
6
|
+
banner: 'banner',
|
|
7
|
+
complementary: 'complementary',
|
|
8
|
+
contentinfo: 'contentinfo',
|
|
9
|
+
form: 'form',
|
|
10
|
+
main: 'main',
|
|
11
|
+
navigation: 'navigation',
|
|
12
|
+
region: 'region',
|
|
13
|
+
search: 'search',
|
|
14
14
|
|
|
15
15
|
// Widget roles
|
|
16
|
-
button,
|
|
17
|
-
checkbox,
|
|
18
|
-
gridcell,
|
|
19
|
-
link,
|
|
20
|
-
menuitem,
|
|
21
|
-
menuitemcheckbox,
|
|
22
|
-
menuitemradio,
|
|
23
|
-
option,
|
|
24
|
-
progressbar,
|
|
25
|
-
radio,
|
|
26
|
-
scrollbar,
|
|
27
|
-
searchbox,
|
|
28
|
-
slider,
|
|
29
|
-
spinbutton,
|
|
30
|
-
switch,
|
|
31
|
-
tab,
|
|
32
|
-
tabpanel,
|
|
33
|
-
textbox,
|
|
34
|
-
treeitem,
|
|
16
|
+
button: 'button',
|
|
17
|
+
checkbox: 'checkbox',
|
|
18
|
+
gridcell: 'gridcell',
|
|
19
|
+
link: 'link',
|
|
20
|
+
menuitem: 'menuitem',
|
|
21
|
+
menuitemcheckbox: 'menuitemcheckbox',
|
|
22
|
+
menuitemradio: 'menuitemradio',
|
|
23
|
+
option: 'option',
|
|
24
|
+
progressbar: 'progressbar',
|
|
25
|
+
radio: 'radio',
|
|
26
|
+
scrollbar: 'scrollbar',
|
|
27
|
+
searchbox: 'searchbox',
|
|
28
|
+
slider: 'slider',
|
|
29
|
+
spinbutton: 'spinbutton',
|
|
30
|
+
switch: 'switch',
|
|
31
|
+
tab: 'tab',
|
|
32
|
+
tabpanel: 'tabpanel',
|
|
33
|
+
textbox: 'textbox',
|
|
34
|
+
treeitem: 'treeitem',
|
|
35
35
|
|
|
36
36
|
// Document structure roles
|
|
37
|
-
article,
|
|
38
|
-
cell,
|
|
39
|
-
columnheader,
|
|
40
|
-
definition,
|
|
41
|
-
directory,
|
|
42
|
-
document,
|
|
43
|
-
group,
|
|
44
|
-
heading,
|
|
45
|
-
img,
|
|
46
|
-
list,
|
|
47
|
-
listitem,
|
|
48
|
-
math,
|
|
49
|
-
note,
|
|
50
|
-
presentation,
|
|
51
|
-
row,
|
|
52
|
-
rowgroup,
|
|
53
|
-
rowheader,
|
|
54
|
-
separator,
|
|
55
|
-
table,
|
|
56
|
-
term,
|
|
57
|
-
toolbar,
|
|
58
|
-
tooltip,
|
|
59
|
-
tree,
|
|
60
|
-
treegrid
|
|
37
|
+
article: 'article',
|
|
38
|
+
cell: 'cell',
|
|
39
|
+
columnheader: 'columnheader',
|
|
40
|
+
definition: 'definition',
|
|
41
|
+
directory: 'directory',
|
|
42
|
+
document: 'document',
|
|
43
|
+
group: 'group',
|
|
44
|
+
heading: 'heading',
|
|
45
|
+
img: 'img',
|
|
46
|
+
list: 'list',
|
|
47
|
+
listitem: 'listitem',
|
|
48
|
+
math: 'math',
|
|
49
|
+
note: 'note',
|
|
50
|
+
presentation: 'presentation',
|
|
51
|
+
row: 'row',
|
|
52
|
+
rowgroup: 'rowgroup',
|
|
53
|
+
rowheader: 'rowheader',
|
|
54
|
+
separator: 'separator',
|
|
55
|
+
table: 'table',
|
|
56
|
+
term: 'term',
|
|
57
|
+
toolbar: 'toolbar',
|
|
58
|
+
tooltip: 'tooltip',
|
|
59
|
+
tree: 'tree',
|
|
60
|
+
treegrid: 'treegrid'
|
|
61
|
+
} as const;
|
|
61
62
|
|
|
62
63
|
// ARIA state and property definitions
|
|
63
64
|
export const ARIA_STATES = {
|
|
64
65
|
// Boolean states
|
|
65
|
-
ariaExpanded,
|
|
66
|
-
ariaHidden,
|
|
67
|
-
ariaPressed,
|
|
68
|
-
ariaSelected,
|
|
69
|
-
ariaChecked,
|
|
70
|
-
ariaDisabled,
|
|
71
|
-
ariaReadonly,
|
|
72
|
-
ariaRequired,
|
|
73
|
-
ariaInvalid,
|
|
74
|
-
ariaBusy,
|
|
75
|
-
ariaCurrent,
|
|
76
|
-
ariaLive,
|
|
77
|
-
ariaAtomic,
|
|
78
|
-
ariaRelevant,
|
|
79
|
-
ariaSort,
|
|
80
|
-
ariaGrabbed,
|
|
81
|
-
ariaDropeffect,
|
|
82
|
-
ariaActivedescendant,
|
|
83
|
-
ariaControls,
|
|
84
|
-
ariaDescribedby,
|
|
85
|
-
ariaFlowto,
|
|
86
|
-
ariaLabelledby,
|
|
87
|
-
ariaOwns,
|
|
88
|
-
ariaPosinset,
|
|
89
|
-
ariaSetsize,
|
|
90
|
-
ariaValuemin,
|
|
91
|
-
ariaValuemax,
|
|
92
|
-
ariaValuenow,
|
|
93
|
-
ariaValuetext,
|
|
94
|
-
ariaLevel,
|
|
95
|
-
ariaMultiselectable,
|
|
96
|
-
ariaOrientation,
|
|
97
|
-
ariaColcount,
|
|
98
|
-
ariaColindex,
|
|
99
|
-
ariaRowcount,
|
|
100
|
-
ariaRowindex,
|
|
101
|
-
ariaColspan,
|
|
102
|
-
ariaRowspan
|
|
66
|
+
ariaExpanded: 'aria-expanded',
|
|
67
|
+
ariaHidden: 'aria-hidden',
|
|
68
|
+
ariaPressed: 'aria-pressed',
|
|
69
|
+
ariaSelected: 'aria-selected',
|
|
70
|
+
ariaChecked: 'aria-checked',
|
|
71
|
+
ariaDisabled: 'aria-disabled',
|
|
72
|
+
ariaReadonly: 'aria-readonly',
|
|
73
|
+
ariaRequired: 'aria-required',
|
|
74
|
+
ariaInvalid: 'aria-invalid',
|
|
75
|
+
ariaBusy: 'aria-busy',
|
|
76
|
+
ariaCurrent: 'aria-current',
|
|
77
|
+
ariaLive: 'aria-live',
|
|
78
|
+
ariaAtomic: 'aria-atomic',
|
|
79
|
+
ariaRelevant: 'aria-relevant',
|
|
80
|
+
ariaSort: 'aria-sort',
|
|
81
|
+
ariaGrabbed: 'aria-grabbed',
|
|
82
|
+
ariaDropeffect: 'aria-dropeffect',
|
|
83
|
+
ariaActivedescendant: 'aria-activedescendant',
|
|
84
|
+
ariaControls: 'aria-controls',
|
|
85
|
+
ariaDescribedby: 'aria-describedby',
|
|
86
|
+
ariaFlowto: 'aria-flowto',
|
|
87
|
+
ariaLabelledby: 'aria-labelledby',
|
|
88
|
+
ariaOwns: 'aria-owns',
|
|
89
|
+
ariaPosinset: 'aria-posinset',
|
|
90
|
+
ariaSetsize: 'aria-setsize',
|
|
91
|
+
ariaValuemin: 'aria-valuemin',
|
|
92
|
+
ariaValuemax: 'aria-valuemax',
|
|
93
|
+
ariaValuenow: 'aria-valuenow',
|
|
94
|
+
ariaValuetext: 'aria-valuetext',
|
|
95
|
+
ariaLevel: 'aria-level',
|
|
96
|
+
ariaMultiselectable: 'aria-multiselectable',
|
|
97
|
+
ariaOrientation: 'aria-orientation',
|
|
98
|
+
ariaColcount: 'aria-colcount',
|
|
99
|
+
ariaColindex: 'aria-colindex',
|
|
100
|
+
ariaRowcount: 'aria-rowcount',
|
|
101
|
+
ariaRowindex: 'aria-rowindex',
|
|
102
|
+
ariaColspan: 'aria-colspan',
|
|
103
|
+
ariaRowspan: 'aria-rowspan'
|
|
104
|
+
} as const;
|
|
103
105
|
|
|
104
106
|
// ARIA live region values
|
|
105
107
|
export const ARIA_LIVE_VALUES = {
|
|
106
|
-
off,
|
|
107
|
-
polite,
|
|
108
|
-
assertive
|
|
108
|
+
off: 'off',
|
|
109
|
+
polite: 'polite',
|
|
110
|
+
assertive: 'assertive'
|
|
111
|
+
} as const;
|
|
109
112
|
|
|
110
113
|
// ARIA current values
|
|
111
114
|
export const ARIA_CURRENT_VALUES = {
|
|
112
|
-
page,
|
|
113
|
-
step,
|
|
114
|
-
location,
|
|
115
|
-
date,
|
|
116
|
-
time,
|
|
117
|
-
true,
|
|
118
|
-
false
|
|
115
|
+
page: 'page',
|
|
116
|
+
step: 'step',
|
|
117
|
+
location: 'location',
|
|
118
|
+
date: 'date',
|
|
119
|
+
time: 'time',
|
|
120
|
+
true: 'true',
|
|
121
|
+
false: 'false'
|
|
122
|
+
} as const;
|
|
119
123
|
|
|
120
124
|
// ARIA sort values
|
|
121
125
|
export const ARIA_SORT_VALUES = {
|
|
122
|
-
ascending,
|
|
123
|
-
descending,
|
|
124
|
-
none,
|
|
125
|
-
other
|
|
126
|
+
ascending: 'ascending',
|
|
127
|
+
descending: 'descending',
|
|
128
|
+
none: 'none',
|
|
129
|
+
other: 'other'
|
|
130
|
+
} as const;
|
|
126
131
|
|
|
127
132
|
// ARIA orientation values
|
|
128
133
|
export const ARIA_ORIENTATION_VALUES = {
|
|
129
|
-
horizontal,
|
|
130
|
-
vertical
|
|
134
|
+
horizontal: 'horizontal',
|
|
135
|
+
vertical: 'vertical'
|
|
136
|
+
} as const;
|
|
131
137
|
|
|
132
138
|
// ARIA pattern utilities
|
|
133
139
|
export class ARIAUtils {
|
|
134
140
|
// Generate ARIA attributes object
|
|
135
|
-
static generateAriaAttributes(attributes, any>), any> {
|
|
136
|
-
const ariaAttributes, any> = {};
|
|
141
|
+
static generateAriaAttributes(attributes: Record<string, any>): Record<string, any> {
|
|
142
|
+
const ariaAttributes: Record<string, any> = {};
|
|
137
143
|
|
|
138
144
|
Object.entries(attributes).forEach(([key, value]) => {
|
|
139
145
|
if (key.startsWith('aria') && value !== undefined && value !== null) {
|
|
@@ -145,77 +151,93 @@ export class ARIAUtils {
|
|
|
145
151
|
}
|
|
146
152
|
|
|
147
153
|
// Generate proper ARIA label
|
|
148
|
-
static generateAriaLabel(label
|
|
154
|
+
static generateAriaLabel(label?: string, fallback?: string): string | undefined {
|
|
155
|
+
if (label) return label;
|
|
149
156
|
if (fallback) return accessibilityManager.getAriaLabel(fallback);
|
|
150
157
|
return undefined;
|
|
151
158
|
}
|
|
152
159
|
|
|
153
160
|
// Generate ARIA describedby
|
|
154
|
-
static generateAriaDescribedby(description
|
|
161
|
+
static generateAriaDescribedby(description?: string, id?: string): string | undefined {
|
|
162
|
+
if (description && id) return id;
|
|
155
163
|
return undefined;
|
|
156
164
|
}
|
|
157
165
|
|
|
158
166
|
// Generate ARIA controls
|
|
159
|
-
static generateAriaControls(controlledId
|
|
167
|
+
static generateAriaControls(controlledId?: string): string | undefined {
|
|
168
|
+
return controlledId;
|
|
160
169
|
}
|
|
161
170
|
|
|
162
171
|
// Generate ARIA expanded state
|
|
163
|
-
static generateAriaExpanded(expanded
|
|
172
|
+
static generateAriaExpanded(expanded?: boolean): boolean | undefined {
|
|
173
|
+
return expanded;
|
|
164
174
|
}
|
|
165
175
|
|
|
166
176
|
// Generate ARIA pressed state
|
|
167
|
-
static generateAriaPressed(pressed
|
|
177
|
+
static generateAriaPressed(pressed?: boolean): boolean | undefined {
|
|
178
|
+
return pressed;
|
|
168
179
|
}
|
|
169
180
|
|
|
170
181
|
// Generate ARIA selected state
|
|
171
|
-
static generateAriaSelected(selected
|
|
182
|
+
static generateAriaSelected(selected?: boolean): boolean | undefined {
|
|
183
|
+
return selected;
|
|
172
184
|
}
|
|
173
185
|
|
|
174
186
|
// Generate ARIA checked state
|
|
175
|
-
static generateAriaChecked(checked
|
|
187
|
+
static generateAriaChecked(checked?: boolean, indeterminate?: boolean): string | boolean | undefined {
|
|
188
|
+
if (indeterminate) return 'mixed';
|
|
176
189
|
return checked;
|
|
177
190
|
}
|
|
178
191
|
|
|
179
192
|
// Generate ARIA disabled state
|
|
180
|
-
static generateAriaDisabled(disabled
|
|
193
|
+
static generateAriaDisabled(disabled?: boolean): boolean | undefined {
|
|
194
|
+
return disabled;
|
|
181
195
|
}
|
|
182
196
|
|
|
183
197
|
// Generate ARIA readonly state
|
|
184
|
-
static generateAriaReadonly(readonly
|
|
198
|
+
static generateAriaReadonly(readonly?: boolean): boolean | undefined {
|
|
199
|
+
return readonly;
|
|
185
200
|
}
|
|
186
201
|
|
|
187
202
|
// Generate ARIA required state
|
|
188
|
-
static generateAriaRequired(required
|
|
203
|
+
static generateAriaRequired(required?: boolean): boolean | undefined {
|
|
204
|
+
return required;
|
|
189
205
|
}
|
|
190
206
|
|
|
191
207
|
// Generate ARIA invalid state
|
|
192
|
-
static generateAriaInvalid(invalid
|
|
208
|
+
static generateAriaInvalid(invalid?: boolean, errorMessage?: string): boolean | 'grammar' | 'spelling' | undefined {
|
|
209
|
+
if (errorMessage) return true;
|
|
193
210
|
return invalid;
|
|
194
211
|
}
|
|
195
212
|
|
|
196
213
|
// Generate ARIA live region
|
|
197
|
-
static generateAriaLive(live
|
|
214
|
+
static generateAriaLive(live?: keyof typeof ARIA_LIVE_VALUES, _atomic?: boolean): string | undefined {
|
|
215
|
+
return live;
|
|
198
216
|
}
|
|
199
217
|
|
|
200
218
|
// Generate ARIA current
|
|
201
|
-
static generateAriaCurrent(current
|
|
219
|
+
static generateAriaCurrent(current?: keyof typeof ARIA_CURRENT_VALUES): string | undefined {
|
|
220
|
+
return current;
|
|
202
221
|
}
|
|
203
222
|
|
|
204
223
|
// Generate ARIA sort
|
|
205
|
-
static generateAriaSort(sort
|
|
224
|
+
static generateAriaSort(sort?: keyof typeof ARIA_SORT_VALUES): string | undefined {
|
|
225
|
+
return sort;
|
|
206
226
|
}
|
|
207
227
|
|
|
208
228
|
// Generate ARIA orientation
|
|
209
|
-
static generateAriaOrientation(orientation
|
|
229
|
+
static generateAriaOrientation(orientation?: keyof typeof ARIA_ORIENTATION_VALUES): string | undefined {
|
|
230
|
+
return orientation;
|
|
210
231
|
}
|
|
211
232
|
|
|
212
233
|
// Generate ARIA value attributes for range inputs
|
|
213
234
|
static generateAriaValueAttributes(
|
|
214
|
-
value
|
|
215
|
-
min
|
|
216
|
-
max
|
|
217
|
-
_step
|
|
218
|
-
|
|
235
|
+
value?: number,
|
|
236
|
+
min?: number,
|
|
237
|
+
max?: number,
|
|
238
|
+
_step?: number
|
|
239
|
+
): Record<string, any> {
|
|
240
|
+
const ariaAttributes: Record<string, any> = {};
|
|
219
241
|
|
|
220
242
|
if (value !== undefined) ariaAttributes['aria-valuenow'] = value;
|
|
221
243
|
if (min !== undefined) ariaAttributes['aria-valuemin'] = min;
|
|
@@ -226,32 +248,37 @@ export class ARIAUtils {
|
|
|
226
248
|
|
|
227
249
|
// Generate ARIA position and size attributes for list items
|
|
228
250
|
static generateAriaPositionAttributes(
|
|
229
|
-
position,
|
|
230
|
-
total
|
|
251
|
+
position: number,
|
|
252
|
+
total: number
|
|
253
|
+
): Record<string, any> {
|
|
231
254
|
return {
|
|
232
|
-
'aria-posinset',
|
|
233
|
-
'aria-setsize'
|
|
255
|
+
'aria-posinset': position,
|
|
256
|
+
'aria-setsize': total
|
|
257
|
+
};
|
|
234
258
|
}
|
|
235
259
|
|
|
236
260
|
// Generate ARIA level for headings and tree items
|
|
237
|
-
static generateAriaLevel(level), any> {
|
|
261
|
+
static generateAriaLevel(level: number): Record<string, any> {
|
|
238
262
|
return {
|
|
239
|
-
'aria-level'
|
|
263
|
+
'aria-level': level
|
|
264
|
+
};
|
|
240
265
|
}
|
|
241
266
|
|
|
242
267
|
// Generate ARIA multiselectable for selection components
|
|
243
|
-
static generateAriaMultiselectable(multiselectable), any> {
|
|
268
|
+
static generateAriaMultiselectable(multiselectable: boolean): Record<string, any> {
|
|
244
269
|
return {
|
|
245
|
-
'aria-multiselectable'
|
|
270
|
+
'aria-multiselectable': multiselectable
|
|
271
|
+
};
|
|
246
272
|
}
|
|
247
273
|
|
|
248
274
|
// Generate ARIA col/row attributes for table cells
|
|
249
275
|
static generateAriaTableAttributes(
|
|
250
|
-
colIndex
|
|
251
|
-
rowIndex
|
|
252
|
-
colSpan
|
|
253
|
-
rowSpan
|
|
254
|
-
|
|
276
|
+
colIndex?: number,
|
|
277
|
+
rowIndex?: number,
|
|
278
|
+
colSpan?: number,
|
|
279
|
+
rowSpan?: number
|
|
280
|
+
): Record<string, any> {
|
|
281
|
+
const ariaAttributes: Record<string, any> = {};
|
|
255
282
|
|
|
256
283
|
if (colIndex !== undefined) ariaAttributes['aria-colindex'] = colIndex;
|
|
257
284
|
if (rowIndex !== undefined) ariaAttributes['aria-rowindex'] = rowIndex;
|
|
@@ -263,9 +290,10 @@ export class ARIAUtils {
|
|
|
263
290
|
|
|
264
291
|
// Generate ARIA count attributes for tables
|
|
265
292
|
static generateAriaCountAttributes(
|
|
266
|
-
colCount
|
|
267
|
-
rowCount
|
|
268
|
-
|
|
293
|
+
colCount?: number,
|
|
294
|
+
rowCount?: number
|
|
295
|
+
): Record<string, any> {
|
|
296
|
+
const ariaAttributes: Record<string, any> = {};
|
|
269
297
|
|
|
270
298
|
if (colCount !== undefined) ariaAttributes['aria-colcount'] = colCount;
|
|
271
299
|
if (rowCount !== undefined) ariaAttributes['aria-rowcount'] = rowCount;
|
|
@@ -275,9 +303,10 @@ export class ARIAUtils {
|
|
|
275
303
|
|
|
276
304
|
// Generate ARIA grabbed and dropeffect for drag and drop
|
|
277
305
|
static generateAriaDragDrop(
|
|
278
|
-
grabbed
|
|
279
|
-
dropEffect
|
|
280
|
-
|
|
306
|
+
grabbed?: boolean,
|
|
307
|
+
dropEffect?: string
|
|
308
|
+
): Record<string, any> {
|
|
309
|
+
const ariaAttributes: Record<string, any> = {};
|
|
281
310
|
|
|
282
311
|
if (grabbed !== undefined) ariaAttributes['aria-grabbed'] = grabbed;
|
|
283
312
|
if (dropEffect) ariaAttributes['aria-dropeffect'] = dropEffect;
|
|
@@ -286,64 +315,69 @@ export class ARIAUtils {
|
|
|
286
315
|
}
|
|
287
316
|
|
|
288
317
|
// Generate ARIA active descendant for composite widgets
|
|
289
|
-
static generateAriaActiveDescendant(activeDescendantId
|
|
318
|
+
static generateAriaActiveDescendant(activeDescendantId?: string): Record<string, any> {
|
|
290
319
|
if (!activeDescendantId) return {};
|
|
291
320
|
|
|
292
321
|
return {
|
|
293
|
-
'aria-activedescendant'
|
|
322
|
+
'aria-activedescendant': activeDescendantId
|
|
323
|
+
};
|
|
294
324
|
}
|
|
295
325
|
|
|
296
326
|
// Generate ARIA owns for composite widgets
|
|
297
|
-
static generateAriaOwns(ownedIds
|
|
327
|
+
static generateAriaOwns(ownedIds?: string[]): Record<string, any> {
|
|
298
328
|
if (!ownedIds || ownedIds.length === 0) return {};
|
|
299
329
|
|
|
300
330
|
return {
|
|
301
|
-
'aria-owns')
|
|
331
|
+
'aria-owns': ownedIds.join(' ')
|
|
302
332
|
};
|
|
303
333
|
}
|
|
304
334
|
|
|
305
335
|
// Generate ARIA flowto for composite widgets
|
|
306
|
-
static generateAriaFlowTo(flowToIds
|
|
336
|
+
static generateAriaFlowTo(flowToIds?: string[]): Record<string, any> {
|
|
307
337
|
if (!flowToIds || flowToIds.length === 0) return {};
|
|
308
338
|
|
|
309
339
|
return {
|
|
310
|
-
'aria-flowto')
|
|
340
|
+
'aria-flowto': flowToIds.join(' ')
|
|
311
341
|
};
|
|
312
342
|
}
|
|
313
343
|
|
|
314
344
|
// Generate ARIA controls for composite widgets
|
|
315
|
-
static generateAriaControlsMultiple(controlIds
|
|
345
|
+
static generateAriaControlsMultiple(controlIds?: string[]): Record<string, any> {
|
|
316
346
|
if (!controlIds || controlIds.length === 0) return {};
|
|
317
347
|
|
|
318
348
|
return {
|
|
319
|
-
'aria-controls')
|
|
349
|
+
'aria-controls': controlIds.join(' ')
|
|
320
350
|
};
|
|
321
351
|
}
|
|
322
352
|
|
|
323
353
|
// Generate ARIA describedby for multiple descriptions
|
|
324
|
-
static generateAriaDescribedbyMultiple(descriptionIds
|
|
354
|
+
static generateAriaDescribedbyMultiple(descriptionIds?: string[]): Record<string, any> {
|
|
325
355
|
if (!descriptionIds || descriptionIds.length === 0) return {};
|
|
326
356
|
|
|
327
357
|
return {
|
|
328
|
-
'aria-describedby')
|
|
358
|
+
'aria-describedby': descriptionIds.join(' ')
|
|
329
359
|
};
|
|
330
360
|
}
|
|
331
361
|
|
|
332
362
|
// Generate ARIA labelledby for multiple labels
|
|
333
|
-
static generateAriaLabelledbyMultiple(labelIds
|
|
363
|
+
static generateAriaLabelledbyMultiple(labelIds?: string[]): Record<string, any> {
|
|
334
364
|
if (!labelIds || labelIds.length === 0) return {};
|
|
335
365
|
|
|
336
366
|
return {
|
|
337
|
-
'aria-labelledby')
|
|
367
|
+
'aria-labelledby': labelIds.join(' ')
|
|
338
368
|
};
|
|
339
369
|
}
|
|
340
370
|
|
|
341
371
|
// Validate ARIA attributes
|
|
342
|
-
static validateAriaAttributes(attributes, any>)
|
|
372
|
+
static validateAriaAttributes(attributes: Record<string, any>): boolean {
|
|
373
|
+
// Basic validation - check if required attributes are present
|
|
374
|
+
// This is a simplified validation - in production you might want more comprehensive checks
|
|
375
|
+
|
|
376
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
343
377
|
if (key.startsWith('aria-')) {
|
|
344
378
|
// Check if value is not undefined or null
|
|
345
379
|
if (value === undefined || value === null) {
|
|
346
|
-
console.warn(`ARIA attribute ${key} has invalid value}`);
|
|
380
|
+
console.warn(`ARIA attribute ${key} has invalid value: ${value}`);
|
|
347
381
|
return false;
|
|
348
382
|
}
|
|
349
383
|
}
|
|
@@ -353,7 +387,8 @@ export class ARIAUtils {
|
|
|
353
387
|
}
|
|
354
388
|
|
|
355
389
|
// Get accessible name for an element
|
|
356
|
-
static getAccessibleName(element)
|
|
390
|
+
static getAccessibleName(element: HTMLElement): string {
|
|
391
|
+
// Priority order: aria-labelledby, aria-label, title, text content
|
|
357
392
|
const labelledby = element.getAttribute('aria-labelledby');
|
|
358
393
|
if (labelledby) {
|
|
359
394
|
const labelElement = document.getElementById(labelledby);
|
|
@@ -370,7 +405,8 @@ export class ARIAUtils {
|
|
|
370
405
|
}
|
|
371
406
|
|
|
372
407
|
// Get accessible description for an element
|
|
373
|
-
static getAccessibleDescription(element)
|
|
408
|
+
static getAccessibleDescription(element: HTMLElement): string {
|
|
409
|
+
const describedby = element.getAttribute('aria-describedby');
|
|
374
410
|
if (describedby) {
|
|
375
411
|
const descElement = document.getElementById(describedby);
|
|
376
412
|
if (descElement) return descElement.textContent || '';
|