@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.8 → 0.2.10
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 +23 -1
- package/dist/components/ui/navigation/index.js +23 -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 +22 -2
- package/dist/components/ui/overlay/index.js +22 -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 +289 -280
- package/dist/index.js +289 -280
- 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/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 +15 -4
- package/dist/tokens/index.js +15 -4
- 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
|
@@ -5,9 +5,9 @@ import { Badge } from './badge'
|
|
|
5
5
|
import { useGestures, useTouchOptimization, useMobileTouch } from '../../hooks'
|
|
6
6
|
import { useDevice } from '../../hooks/use-device'
|
|
7
7
|
|
|
8
|
-
export const TouchDemo= () => {
|
|
8
|
+
export const TouchDemo: React.FC = () => {
|
|
9
9
|
const [activeTab, setActiveTab] = useState<'overview' | 'gestures' | 'optimization' | 'mobile'>('overview')
|
|
10
|
-
const [gestureHistory, setGestureHistory] = useState<Array<{ type; details; timestamp}>>([])
|
|
10
|
+
const [gestureHistory, setGestureHistory] = useState<Array<{ type: string; details: any; timestamp: Date }>>([])
|
|
11
11
|
const [touchFeedback, setTouchFeedback] = useState<string>('')
|
|
12
12
|
|
|
13
13
|
const gestureElementRef = useRef<HTMLDivElement>(null)
|
|
@@ -22,35 +22,35 @@ export const TouchDemo= () => {
|
|
|
22
22
|
currentGestureType,
|
|
23
23
|
resetGestureState
|
|
24
24
|
} = useGestures(gestureElementRef, {
|
|
25
|
-
onSwipe) => {
|
|
25
|
+
onSwipe: (gesture: any) => {
|
|
26
26
|
const gestureInfo = {
|
|
27
|
-
type,
|
|
28
|
-
details} - ${gesture.distance.toFixed(0)}px, ${gesture.velocity.toFixed(1)}px/ms`,
|
|
29
|
-
timestamp)
|
|
27
|
+
type: 'Swipe',
|
|
28
|
+
details: `${gesture.direction} - ${gesture.distance.toFixed(0)}px, ${gesture.velocity.toFixed(1)}px/ms`,
|
|
29
|
+
timestamp: new Date()
|
|
30
30
|
}
|
|
31
31
|
setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
|
|
32
32
|
},
|
|
33
|
-
onPinch) => {
|
|
33
|
+
onPinch: (gesture: any) => {
|
|
34
34
|
const gestureInfo = {
|
|
35
|
-
type,
|
|
36
|
-
details)}, Distance)}px`,
|
|
37
|
-
timestamp)
|
|
35
|
+
type: 'Pinch',
|
|
36
|
+
details: `Scale: ${gesture.scale.toFixed(2)}, Distance: ${gesture.distance.toFixed(0)}px`,
|
|
37
|
+
timestamp: new Date()
|
|
38
38
|
}
|
|
39
39
|
setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
|
|
40
40
|
},
|
|
41
|
-
onTap) => {
|
|
41
|
+
onTap: (position: any) => {
|
|
42
42
|
const gestureInfo = {
|
|
43
|
-
type,
|
|
44
|
-
details}, ${position.y})`,
|
|
45
|
-
timestamp)
|
|
43
|
+
type: 'Tap',
|
|
44
|
+
details: `Position: (${position.x}, ${position.y})`,
|
|
45
|
+
timestamp: new Date()
|
|
46
46
|
}
|
|
47
47
|
setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
|
|
48
48
|
},
|
|
49
|
-
onLongPress) => {
|
|
49
|
+
onLongPress: (position: any) => {
|
|
50
50
|
const gestureInfo = {
|
|
51
|
-
type,
|
|
52
|
-
details}, ${position.y})`,
|
|
53
|
-
timestamp)
|
|
51
|
+
type: 'Long Press',
|
|
52
|
+
details: `Position: (${position.x}, ${position.y})`,
|
|
53
|
+
timestamp: new Date()
|
|
54
54
|
}
|
|
55
55
|
setGestureHistory(prev => [gestureInfo, ...prev.slice(0, 9)])
|
|
56
56
|
}
|
|
@@ -63,11 +63,11 @@ export const TouchDemo= () => {
|
|
|
63
63
|
applyOptimizations,
|
|
64
64
|
resetOptimizations
|
|
65
65
|
} = useTouchOptimization(optimizationElementRef, {
|
|
66
|
-
onTouchPerformanceWarning) => {
|
|
67
|
-
console.warn('Touch performance warning, metrics)
|
|
66
|
+
onTouchPerformanceWarning: (metrics: any) => {
|
|
67
|
+
console.warn('Touch performance warning:', metrics)
|
|
68
68
|
},
|
|
69
|
-
onBatteryOptimization) => {
|
|
70
|
-
console.log('Battery optimization, enabled ? 'enabled' )
|
|
69
|
+
onBatteryOptimization: (enabled: any) => {
|
|
70
|
+
console.log('Battery optimization:', enabled ? 'enabled' : 'disabled')
|
|
71
71
|
}
|
|
72
72
|
})
|
|
73
73
|
|
|
@@ -77,11 +77,11 @@ export const TouchDemo= () => {
|
|
|
77
77
|
clearAllGestureHints,
|
|
78
78
|
getTouchFeedbackClasses
|
|
79
79
|
} = useMobileTouch(mobileTouchElementRef, {
|
|
80
|
-
onTouchFeedback) => {
|
|
80
|
+
onTouchFeedback: (state: any) => {
|
|
81
81
|
setTouchFeedback(`${state.feedbackType} feedback - ${state.feedbackIntensity} intensity`)
|
|
82
82
|
},
|
|
83
|
-
onGestureHint) => {
|
|
84
|
-
console.log('Gesture hint, hint)
|
|
83
|
+
onGestureHint: (hint: any) => {
|
|
84
|
+
console.log('Gesture hint:', hint)
|
|
85
85
|
}
|
|
86
86
|
})
|
|
87
87
|
|
|
@@ -90,14 +90,23 @@ export const TouchDemo= () => {
|
|
|
90
90
|
resetGestureState()
|
|
91
91
|
}
|
|
92
92
|
|
|
93
|
-
const getPerformanceScoreColor = (score) => {
|
|
93
|
+
const getPerformanceScoreColor = (score: string) => {
|
|
94
94
|
switch (score) {
|
|
95
|
-
case 'excellent'
|
|
95
|
+
case 'excellent': return 'text-green-600'
|
|
96
|
+
case 'good': return 'text-blue-600'
|
|
97
|
+
case 'fair': return 'text-yellow-600'
|
|
98
|
+
case 'poor': return 'text-red-600'
|
|
99
|
+
default: return 'text-gray-600'
|
|
100
|
+
}
|
|
96
101
|
}
|
|
97
102
|
|
|
98
|
-
const getBatteryImpactColor = (impact) => {
|
|
103
|
+
const getBatteryImpactColor = (impact: string) => {
|
|
99
104
|
switch (impact) {
|
|
100
|
-
case 'low'
|
|
105
|
+
case 'low': return 'text-green-600'
|
|
106
|
+
case 'medium': return 'text-yellow-600'
|
|
107
|
+
case 'high': return 'text-red-600'
|
|
108
|
+
default: return 'text-gray-600'
|
|
109
|
+
}
|
|
101
110
|
}
|
|
102
111
|
|
|
103
112
|
return (
|
|
@@ -105,14 +114,14 @@ export const TouchDemo= () => {
|
|
|
105
114
|
{/* Tab Navigation */}
|
|
106
115
|
<div className="flex flex-wrap gap-2">
|
|
107
116
|
{[
|
|
108
|
-
{ id, label, icon},
|
|
109
|
-
{ id, label, icon},
|
|
110
|
-
{ id, label, icon},
|
|
111
|
-
{ id, label, icon}
|
|
117
|
+
{ id: 'overview', label: 'Overview', icon: '📱' },
|
|
118
|
+
{ id: 'gestures', label: 'Gesture Recognition', icon: '👆' },
|
|
119
|
+
{ id: 'optimization', label: 'Touch Optimization', icon: '⚡' },
|
|
120
|
+
{ id: 'mobile', label: 'Mobile Touch', icon: '📱' }
|
|
112
121
|
].map((tab) => (
|
|
113
122
|
<Button
|
|
114
123
|
key={tab.id}
|
|
115
|
-
variant={activeTab === tab.id ? 'default' }
|
|
124
|
+
variant={activeTab === tab.id ? 'default' : 'outline'}
|
|
116
125
|
size="sm"
|
|
117
126
|
onClick={() => setActiveTab(tab.id as any)}
|
|
118
127
|
className="touch-button"
|
|
@@ -136,25 +145,27 @@ export const TouchDemo= () => {
|
|
|
136
145
|
</CardDescription>
|
|
137
146
|
</CardHeader>
|
|
138
147
|
<CardContent className="space-y-4">
|
|
139
|
-
<div className="grid grid-cols-1 md
|
|
148
|
+
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
149
|
+
<div className="space-y-2">
|
|
140
150
|
<h4 className="font-semibold">Device Information</h4>
|
|
141
151
|
<div className="text-sm space-y-1">
|
|
142
|
-
<p>Screen Size="secondary">{device.screenSize}</Badge></p>
|
|
143
|
-
<p>Touch Device="secondary">{device.touchDevice ? 'Yes' }</Badge></p>
|
|
144
|
-
<p>Orientation="secondary">{device.orientation}</Badge></p>
|
|
152
|
+
<p>Screen Size: <Badge variant="secondary">{device.screenSize}</Badge></p>
|
|
153
|
+
<p>Touch Device: <Badge variant="secondary">{device.touchDevice ? 'Yes' : 'No'}</Badge></p>
|
|
154
|
+
<p>Orientation: <Badge variant="secondary">{device.orientation}</Badge></p>
|
|
145
155
|
</div>
|
|
146
156
|
</div>
|
|
147
157
|
<div className="space-y-2">
|
|
148
158
|
<h4 className="font-semibold">Touch Capabilities</h4>
|
|
149
159
|
<div className="text-sm space-y-1">
|
|
150
|
-
<p>Max Touch Points="secondary">{mobileTouchState.deviceCapabilities.maxTouchPoints}</Badge></p>
|
|
151
|
-
<p>Haptic Support="secondary">{mobileTouchState.deviceCapabilities.supportsHaptics ? 'Yes' }</Badge></p>
|
|
152
|
-
<p>Audio Support="secondary">{mobileTouchState.deviceCapabilities.supportsAudio ? 'Yes' }</Badge></p>
|
|
160
|
+
<p>Max Touch Points: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.maxTouchPoints}</Badge></p>
|
|
161
|
+
<p>Haptic Support: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.supportsHaptics ? 'Yes' : 'No'}</Badge></p>
|
|
162
|
+
<p>Audio Support: <Badge variant="secondary">{mobileTouchState.deviceCapabilities.supportsAudio ? 'Yes' : 'No'}</Badge></p>
|
|
153
163
|
</div>
|
|
154
164
|
</div>
|
|
155
165
|
</div>
|
|
156
166
|
|
|
157
|
-
<div className="grid grid-cols-1 md
|
|
167
|
+
<div className="grid grid-cols-1 md:grid-cols-3 gap-4">
|
|
168
|
+
<div className="text-center p-4 bg-gray-50 rounded-lg">
|
|
158
169
|
<div className="text-2xl mb-2">👆</div>
|
|
159
170
|
<h4 className="font-semibold">Gesture Recognition</h4>
|
|
160
171
|
<p className="text-sm text-gray-600">Swipe, pinch, tap, and long press detection</p>
|
|
@@ -182,8 +193,8 @@ export const TouchDemo= () => {
|
|
|
182
193
|
<CardHeader>
|
|
183
194
|
<CardTitle className="flex items-center gap-2">
|
|
184
195
|
👆 Gesture Recognition
|
|
185
|
-
<Badge variant={isGestureActive ? 'default' }>
|
|
186
|
-
{isGestureActive ? 'Active' }
|
|
196
|
+
<Badge variant={isGestureActive ? 'default' : 'secondary'}>
|
|
197
|
+
{isGestureActive ? 'Active' : 'Inactive'}
|
|
187
198
|
</Badge>
|
|
188
199
|
</CardTitle>
|
|
189
200
|
<CardDescription>
|
|
@@ -200,17 +211,18 @@ export const TouchDemo= () => {
|
|
|
200
211
|
</Button>
|
|
201
212
|
</div>
|
|
202
213
|
|
|
203
|
-
<div className="grid grid-cols-1 lg
|
|
214
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
|
215
|
+
{/* Interactive Gesture Area */}
|
|
204
216
|
<div
|
|
205
217
|
ref={gestureElementRef}
|
|
206
218
|
className="min-h-[300px] border-2 border-dashed border-gray-300 rounded-lg p-4 flex items-center justify-center bg-gray-50 touch-target"
|
|
207
|
-
style={{ touchAction}}
|
|
219
|
+
style={{ touchAction: 'manipulation' }}
|
|
208
220
|
>
|
|
209
221
|
<div className="text-center">
|
|
210
222
|
<div className="text-4xl mb-2">👆</div>
|
|
211
223
|
<p className="font-medium">Gesture Test Area</p>
|
|
212
224
|
<p className="text-sm text-gray-600">
|
|
213
|
-
{currentGestureType !== 'none' ? `Current}` }
|
|
225
|
+
{currentGestureType !== 'none' ? `Current: ${currentGestureType}` : 'Touch to start'}
|
|
214
226
|
</p>
|
|
215
227
|
<p className="text-xs text-gray-500 mt-2">
|
|
216
228
|
Swipe, pinch, tap, or long press here
|
|
@@ -224,7 +236,8 @@ export const TouchDemo= () => {
|
|
|
224
236
|
<div className="max-h-[300px] overflow-y-auto space-y-2">
|
|
225
237
|
{gestureHistory.length === 0 ? (
|
|
226
238
|
<p className="text-gray-500 text-sm">No gestures detected yet</p>
|
|
227
|
-
)
|
|
239
|
+
) : (
|
|
240
|
+
gestureHistory.map((gesture, index) => (
|
|
228
241
|
<div key={index} className="p-2 bg-gray-50 rounded text-sm">
|
|
229
242
|
<div className="flex justify-between items-start">
|
|
230
243
|
<span className="font-medium">{gesture.type}</span>
|
|
@@ -251,8 +264,8 @@ export const TouchDemo= () => {
|
|
|
251
264
|
<CardHeader>
|
|
252
265
|
<CardTitle className="flex items-center gap-2">
|
|
253
266
|
⚡ Touch Optimization
|
|
254
|
-
<Badge variant={optimizationState.isOptimized ? 'default' }>
|
|
255
|
-
{optimizationState.isOptimized ? 'Optimized' }
|
|
267
|
+
<Badge variant={optimizationState.isOptimized ? 'default' : 'secondary'}>
|
|
268
|
+
{optimizationState.isOptimized ? 'Optimized' : 'Not Optimized'}
|
|
256
269
|
</Badge>
|
|
257
270
|
</CardTitle>
|
|
258
271
|
<CardDescription>
|
|
@@ -269,26 +282,31 @@ export const TouchDemo= () => {
|
|
|
269
282
|
</Button>
|
|
270
283
|
</div>
|
|
271
284
|
|
|
272
|
-
<div className="grid grid-cols-1 lg
|
|
285
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
|
286
|
+
{/* Optimization Status */}
|
|
273
287
|
<div className="space-y-3">
|
|
274
288
|
<h4 className="font-semibold">Optimization Status</h4>
|
|
275
289
|
<div className="space-y-2 text-sm">
|
|
276
290
|
<div className="flex justify-between">
|
|
277
|
-
<span>Touch Action
|
|
291
|
+
<span>Touch Action:</span>
|
|
292
|
+
<Badge variant="outline">{optimizationState.currentTouchAction}</Badge>
|
|
278
293
|
</div>
|
|
279
294
|
<div className="flex justify-between">
|
|
280
|
-
<span>Passive Listeners
|
|
281
|
-
|
|
295
|
+
<span>Passive Listeners:</span>
|
|
296
|
+
<Badge variant={optimizationState.passiveListenersEnabled ? 'default' : 'secondary'}>
|
|
297
|
+
{optimizationState.passiveListenersEnabled ? 'Enabled' : 'Disabled'}
|
|
282
298
|
</Badge>
|
|
283
299
|
</div>
|
|
284
300
|
<div className="flex justify-between">
|
|
285
|
-
<span>Battery Optimization
|
|
286
|
-
|
|
301
|
+
<span>Battery Optimization:</span>
|
|
302
|
+
<Badge variant={optimizationState.batteryOptimizationEnabled ? 'default' : 'secondary'}>
|
|
303
|
+
{optimizationState.batteryOptimizationEnabled ? 'Enabled' : 'Disabled'}
|
|
287
304
|
</Badge>
|
|
288
305
|
</div>
|
|
289
306
|
<div className="flex justify-between">
|
|
290
|
-
<span>Throttling
|
|
291
|
-
|
|
307
|
+
<span>Throttling:</span>
|
|
308
|
+
<Badge variant={optimizationState.throttlingEnabled ? 'default' : 'secondary'}>
|
|
309
|
+
{optimizationState.throttlingEnabled ? 'Enabled' : 'Disabled'}
|
|
292
310
|
</Badge>
|
|
293
311
|
</div>
|
|
294
312
|
</div>
|
|
@@ -299,21 +317,26 @@ export const TouchDemo= () => {
|
|
|
299
317
|
<h4 className="font-semibold">Performance Metrics</h4>
|
|
300
318
|
<div className="space-y-2 text-sm">
|
|
301
319
|
<div className="flex justify-between">
|
|
302
|
-
<span>Touch Events
|
|
320
|
+
<span>Touch Events:</span>
|
|
321
|
+
<span>{performanceMetrics.touchEventCount}</span>
|
|
303
322
|
</div>
|
|
304
323
|
<div className="flex justify-between">
|
|
305
|
-
<span>Avg Duration
|
|
324
|
+
<span>Avg Duration:</span>
|
|
325
|
+
<span>{performanceMetrics.averageTouchDuration.toFixed(1)}ms</span>
|
|
306
326
|
</div>
|
|
307
327
|
<div className="flex justify-between">
|
|
308
|
-
<span>Latency
|
|
328
|
+
<span>Latency:</span>
|
|
329
|
+
<span>{performanceMetrics.touchEventLatency.toFixed(1)}ms</span>
|
|
309
330
|
</div>
|
|
310
331
|
<div className="flex justify-between">
|
|
311
|
-
<span>Performance
|
|
332
|
+
<span>Performance:</span>
|
|
333
|
+
<span className={getPerformanceScoreColor(performanceMetrics.performanceScore)}>
|
|
312
334
|
{performanceMetrics.performanceScore}
|
|
313
335
|
</span>
|
|
314
336
|
</div>
|
|
315
337
|
<div className="flex justify-between">
|
|
316
|
-
<span>Battery Impact
|
|
338
|
+
<span>Battery Impact:</span>
|
|
339
|
+
<span className={getBatteryImpactColor(performanceMetrics.batteryImpact)}>
|
|
317
340
|
{performanceMetrics.batteryImpact}
|
|
318
341
|
</span>
|
|
319
342
|
</div>
|
|
@@ -325,7 +348,7 @@ export const TouchDemo= () => {
|
|
|
325
348
|
<div
|
|
326
349
|
ref={optimizationElementRef}
|
|
327
350
|
className="min-h-[200px] border-2 border-dashed border-gray-300 rounded-lg p-4 flex items-center justify-center bg-gray-50 touch-target"
|
|
328
|
-
style={{ touchAction}}
|
|
351
|
+
style={{ touchAction: optimizationState.currentTouchAction }}
|
|
329
352
|
>
|
|
330
353
|
<div className="text-center">
|
|
331
354
|
<div className="text-2xl mb-2">⚡</div>
|
|
@@ -347,8 +370,8 @@ export const TouchDemo= () => {
|
|
|
347
370
|
<CardHeader>
|
|
348
371
|
<CardTitle className="flex items-center gap-2">
|
|
349
372
|
📱 Mobile Touch Behaviors
|
|
350
|
-
<Badge variant={mobileTouchState.isActive ? 'default' }>
|
|
351
|
-
{mobileTouchState.isActive ? 'Active' }
|
|
373
|
+
<Badge variant={mobileTouchState.isActive ? 'default' : 'secondary'}>
|
|
374
|
+
{mobileTouchState.isActive ? 'Active' : 'Inactive'}
|
|
352
375
|
</Badge>
|
|
353
376
|
</CardTitle>
|
|
354
377
|
<CardDescription>
|
|
@@ -362,21 +385,26 @@ export const TouchDemo= () => {
|
|
|
362
385
|
</Button>
|
|
363
386
|
</div>
|
|
364
387
|
|
|
365
|
-
<div className="grid grid-cols-1 lg
|
|
388
|
+
<div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
|
|
389
|
+
{/* Touch Feedback Status */}
|
|
366
390
|
<div className="space-y-3">
|
|
367
391
|
<h4 className="font-semibold">Touch Feedback Status</h4>
|
|
368
392
|
<div className="space-y-2 text-sm">
|
|
369
393
|
<div className="flex justify-between">
|
|
370
|
-
<span>Touch Count
|
|
394
|
+
<span>Touch Count:</span>
|
|
395
|
+
<Badge variant="outline">{mobileTouchState.touchCount}</Badge>
|
|
371
396
|
</div>
|
|
372
397
|
<div className="flex justify-between">
|
|
373
|
-
<span>Feedback Type
|
|
398
|
+
<span>Feedback Type:</span>
|
|
399
|
+
<Badge variant="outline">{mobileTouchState.currentFeedback.feedbackType}</Badge>
|
|
374
400
|
</div>
|
|
375
401
|
<div className="flex justify-between">
|
|
376
|
-
<span>Intensity
|
|
402
|
+
<span>Intensity:</span>
|
|
403
|
+
<Badge variant="outline">{mobileTouchState.currentFeedback.feedbackIntensity}</Badge>
|
|
377
404
|
</div>
|
|
378
405
|
<div className="flex justify-between">
|
|
379
|
-
<span>Active Hints
|
|
406
|
+
<span>Active Hints:</span>
|
|
407
|
+
<Badge variant="outline">{mobileTouchState.activeGestureHints.length}</Badge>
|
|
380
408
|
</div>
|
|
381
409
|
</div>
|
|
382
410
|
{touchFeedback && (
|
|
@@ -392,7 +420,8 @@ export const TouchDemo= () => {
|
|
|
392
420
|
<div className="max-h-[200px] overflow-y-auto space-y-2">
|
|
393
421
|
{mobileTouchState.activeGestureHints.length === 0 ? (
|
|
394
422
|
<p className="text-gray-500 text-sm">No active hints</p>
|
|
395
|
-
)
|
|
423
|
+
) : (
|
|
424
|
+
mobileTouchState.activeGestureHints.map((hint: any, index: number) => (
|
|
396
425
|
<div key={index} className="p-2 bg-yellow-50 border border-yellow-200 rounded text-sm">
|
|
397
426
|
<div className="flex justify-between items-start">
|
|
398
427
|
<span className="font-medium">{hint.type}</span>
|
|
@@ -417,7 +446,7 @@ export const TouchDemo= () => {
|
|
|
417
446
|
<div className="text-4xl mb-2">📱</div>
|
|
418
447
|
<p className="font-medium">Mobile Touch Test Area</p>
|
|
419
448
|
<p className="text-sm text-gray-600">
|
|
420
|
-
{mobileTouchState.isActive ? 'Touch active' }
|
|
449
|
+
{mobileTouchState.isActive ? 'Touch active' : 'Touch to start'}
|
|
421
450
|
</p>
|
|
422
451
|
<p className="text-xs text-gray-500 mt-2">
|
|
423
452
|
Experience haptic feedback and touch sounds
|