@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.9 → 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.
Files changed (304) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.esm.js +30 -24
  3. package/dist/components/ui/accessibility-demo.js +30 -24
  4. package/dist/components/ui/advanced-component-architecture-demo.esm.js +235 -179
  5. package/dist/components/ui/advanced-component-architecture-demo.js +235 -179
  6. package/dist/components/ui/advanced-transition-system-demo.esm.js +110 -64
  7. package/dist/components/ui/advanced-transition-system-demo.js +110 -64
  8. package/dist/components/ui/advanced-transition-system.esm.js +166 -122
  9. package/dist/components/ui/advanced-transition-system.js +166 -122
  10. package/dist/components/ui/animation/animated-container.esm.js +52 -29
  11. package/dist/components/ui/animation/animated-container.js +52 -29
  12. package/dist/components/ui/animation/staggered-container.esm.js +18 -9
  13. package/dist/components/ui/animation/staggered-container.js +18 -9
  14. package/dist/components/ui/animation-demo.esm.js +67 -35
  15. package/dist/components/ui/animation-demo.js +67 -35
  16. package/dist/components/ui/badge.esm.js +9 -6
  17. package/dist/components/ui/badge.js +9 -6
  18. package/dist/components/ui/battery-conscious-animation-demo.esm.js +122 -87
  19. package/dist/components/ui/battery-conscious-animation-demo.js +122 -87
  20. package/dist/components/ui/border-radius-shadow-demo.esm.js +23 -12
  21. package/dist/components/ui/border-radius-shadow-demo.js +23 -12
  22. package/dist/components/ui/button.esm.js +8 -2
  23. package/dist/components/ui/button.js +8 -2
  24. package/dist/components/ui/card.esm.js +33 -8
  25. package/dist/components/ui/card.js +33 -8
  26. package/dist/components/ui/checkbox.esm.js +3 -3
  27. package/dist/components/ui/checkbox.js +3 -3
  28. package/dist/components/ui/color-preview.esm.js +68 -45
  29. package/dist/components/ui/color-preview.js +68 -45
  30. package/dist/components/ui/data-display/chart.esm.js +112 -84
  31. package/dist/components/ui/data-display/chart.js +112 -84
  32. package/dist/components/ui/data-display/data-grid-simple.esm.js +1 -1
  33. package/dist/components/ui/data-display/data-grid-simple.js +1 -1
  34. package/dist/components/ui/data-display/data-grid.esm.js +80 -67
  35. package/dist/components/ui/data-display/data-grid.js +80 -67
  36. package/dist/components/ui/data-display/list.esm.js +53 -45
  37. package/dist/components/ui/data-display/list.js +53 -45
  38. package/dist/components/ui/data-display/table.esm.js +62 -54
  39. package/dist/components/ui/data-display/table.js +62 -54
  40. package/dist/components/ui/data-display/timeline.esm.js +39 -34
  41. package/dist/components/ui/data-display/timeline.js +39 -34
  42. package/dist/components/ui/data-display/tree.esm.js +116 -84
  43. package/dist/components/ui/data-display/tree.js +116 -84
  44. package/dist/components/ui/data-display/types.esm.js +389 -364
  45. package/dist/components/ui/data-display/types.js +389 -364
  46. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +120 -70
  47. package/dist/components/ui/enterprise-mobile-experience-demo.js +120 -70
  48. package/dist/components/ui/enterprise-mobile-experience.esm.js +124 -73
  49. package/dist/components/ui/enterprise-mobile-experience.js +124 -73
  50. package/dist/components/ui/feedback/alert.esm.js +22 -15
  51. package/dist/components/ui/feedback/alert.js +22 -15
  52. package/dist/components/ui/feedback/progress.esm.js +47 -24
  53. package/dist/components/ui/feedback/progress.js +47 -24
  54. package/dist/components/ui/feedback/skeleton.esm.js +39 -29
  55. package/dist/components/ui/feedback/skeleton.js +39 -29
  56. package/dist/components/ui/feedback/toast.esm.js +62 -38
  57. package/dist/components/ui/feedback/toast.js +62 -38
  58. package/dist/components/ui/feedback/types.esm.js +83 -83
  59. package/dist/components/ui/feedback/types.js +83 -83
  60. package/dist/components/ui/font-preview.esm.js +41 -39
  61. package/dist/components/ui/font-preview.js +41 -39
  62. package/dist/components/ui/form-demo.esm.js +150 -113
  63. package/dist/components/ui/form-demo.js +150 -113
  64. package/dist/components/ui/hardware-acceleration-demo.esm.js +137 -87
  65. package/dist/components/ui/hardware-acceleration-demo.js +137 -87
  66. package/dist/components/ui/input.esm.js +4 -1
  67. package/dist/components/ui/input.js +4 -1
  68. package/dist/components/ui/layout-demo.esm.js +81 -56
  69. package/dist/components/ui/layout-demo.js +81 -56
  70. package/dist/components/ui/layouts/adaptive-layout.esm.js +27 -8
  71. package/dist/components/ui/layouts/adaptive-layout.js +27 -8
  72. package/dist/components/ui/layouts/desktop-layout.esm.js +39 -19
  73. package/dist/components/ui/layouts/desktop-layout.js +39 -19
  74. package/dist/components/ui/layouts/mobile-layout.esm.js +19 -9
  75. package/dist/components/ui/layouts/mobile-layout.js +19 -9
  76. package/dist/components/ui/layouts/tablet-layout.esm.js +28 -14
  77. package/dist/components/ui/layouts/tablet-layout.js +28 -14
  78. package/dist/components/ui/mobile-form-validation.esm.js +120 -87
  79. package/dist/components/ui/mobile-form-validation.js +120 -87
  80. package/dist/components/ui/mobile-input-demo.esm.js +19 -13
  81. package/dist/components/ui/mobile-input-demo.js +19 -13
  82. package/dist/components/ui/mobile-input.esm.js +185 -120
  83. package/dist/components/ui/mobile-input.js +185 -120
  84. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +128 -111
  85. package/dist/components/ui/mobile-skeleton-loading-demo.js +128 -111
  86. package/dist/components/ui/navigation/breadcrumb.esm.js +17 -14
  87. package/dist/components/ui/navigation/breadcrumb.js +17 -14
  88. package/dist/components/ui/navigation/index.esm.js +23 -1
  89. package/dist/components/ui/navigation/index.js +23 -1
  90. package/dist/components/ui/navigation/menu.esm.js +49 -35
  91. package/dist/components/ui/navigation/menu.js +49 -35
  92. package/dist/components/ui/navigation/navigation-demo.esm.js +81 -74
  93. package/dist/components/ui/navigation/navigation-demo.js +81 -74
  94. package/dist/components/ui/navigation/pagination.esm.js +62 -50
  95. package/dist/components/ui/navigation/pagination.js +62 -50
  96. package/dist/components/ui/navigation/sidebar.esm.js +56 -42
  97. package/dist/components/ui/navigation/sidebar.js +56 -42
  98. package/dist/components/ui/navigation/stepper.esm.js +34 -23
  99. package/dist/components/ui/navigation/stepper.js +34 -23
  100. package/dist/components/ui/navigation/tabs.esm.js +32 -21
  101. package/dist/components/ui/navigation/tabs.js +32 -21
  102. package/dist/components/ui/navigation/types.esm.js +196 -195
  103. package/dist/components/ui/navigation/types.js +196 -195
  104. package/dist/components/ui/overlay/backdrop.esm.js +17 -16
  105. package/dist/components/ui/overlay/backdrop.js +17 -16
  106. package/dist/components/ui/overlay/focus-manager.esm.js +21 -19
  107. package/dist/components/ui/overlay/focus-manager.js +21 -19
  108. package/dist/components/ui/overlay/index.esm.js +22 -2
  109. package/dist/components/ui/overlay/index.js +22 -2
  110. package/dist/components/ui/overlay/modal.esm.js +38 -34
  111. package/dist/components/ui/overlay/modal.js +38 -34
  112. package/dist/components/ui/overlay/overlay-manager.esm.js +25 -20
  113. package/dist/components/ui/overlay/overlay-manager.js +25 -20
  114. package/dist/components/ui/overlay/popover.esm.js +74 -58
  115. package/dist/components/ui/overlay/popover.js +74 -58
  116. package/dist/components/ui/overlay/portal.esm.js +7 -7
  117. package/dist/components/ui/overlay/portal.js +7 -7
  118. package/dist/components/ui/overlay/tooltip.esm.js +54 -39
  119. package/dist/components/ui/overlay/tooltip.js +54 -39
  120. package/dist/components/ui/overlay/types.esm.js +132 -131
  121. package/dist/components/ui/overlay/types.js +132 -131
  122. package/dist/components/ui/performance-demo.esm.js +135 -88
  123. package/dist/components/ui/performance-demo.js +135 -88
  124. package/dist/components/ui/semantic-input-system-demo.esm.js +117 -80
  125. package/dist/components/ui/semantic-input-system-demo.js +117 -80
  126. package/dist/components/ui/theme-customizer.esm.js +84 -52
  127. package/dist/components/ui/theme-customizer.js +84 -52
  128. package/dist/components/ui/theme-preview.esm.js +95 -43
  129. package/dist/components/ui/theme-preview.js +95 -43
  130. package/dist/components/ui/theme-switcher.esm.js +70 -44
  131. package/dist/components/ui/theme-switcher.js +70 -44
  132. package/dist/components/ui/theme-toggle.esm.js +3 -3
  133. package/dist/components/ui/theme-toggle.js +3 -3
  134. package/dist/components/ui/token-demo.esm.js +33 -21
  135. package/dist/components/ui/token-demo.js +33 -21
  136. package/dist/components/ui/touch-demo.esm.js +102 -73
  137. package/dist/components/ui/touch-demo.js +102 -73
  138. package/dist/components/ui/touch-friendly-interface-demo.esm.js +102 -64
  139. package/dist/components/ui/touch-friendly-interface-demo.js +102 -64
  140. package/dist/components/ui/touch-friendly-interface.esm.js +85 -61
  141. package/dist/components/ui/touch-friendly-interface.js +85 -61
  142. package/dist/hooks/use-accessibility-support.esm.js +115 -85
  143. package/dist/hooks/use-accessibility-support.js +115 -85
  144. package/dist/hooks/use-adaptive-layout.esm.js +56 -33
  145. package/dist/hooks/use-adaptive-layout.js +56 -33
  146. package/dist/hooks/use-advanced-patterns.esm.js +57 -42
  147. package/dist/hooks/use-advanced-patterns.js +57 -42
  148. package/dist/hooks/use-advanced-transition-system.esm.js +112 -71
  149. package/dist/hooks/use-advanced-transition-system.js +112 -71
  150. package/dist/hooks/use-animation-profile.esm.js +63 -34
  151. package/dist/hooks/use-animation-profile.js +63 -34
  152. package/dist/hooks/use-battery-animations.esm.js +80 -55
  153. package/dist/hooks/use-battery-animations.js +80 -55
  154. package/dist/hooks/use-battery-conscious-loading.esm.js +166 -123
  155. package/dist/hooks/use-battery-conscious-loading.js +166 -123
  156. package/dist/hooks/use-battery-optimization.esm.js +78 -55
  157. package/dist/hooks/use-battery-optimization.js +78 -55
  158. package/dist/hooks/use-battery-status.esm.js +73 -51
  159. package/dist/hooks/use-battery-status.js +73 -51
  160. package/dist/hooks/use-component-performance.esm.js +62 -47
  161. package/dist/hooks/use-component-performance.js +62 -47
  162. package/dist/hooks/use-device-loading-states.esm.js +152 -109
  163. package/dist/hooks/use-device-loading-states.js +152 -109
  164. package/dist/hooks/use-device.esm.js +25 -14
  165. package/dist/hooks/use-device.js +25 -14
  166. package/dist/hooks/use-enterprise-mobile-experience.esm.js +137 -88
  167. package/dist/hooks/use-enterprise-mobile-experience.js +137 -88
  168. package/dist/hooks/use-form-feedback.esm.js +124 -81
  169. package/dist/hooks/use-form-feedback.js +124 -81
  170. package/dist/hooks/use-form-performance.esm.js +127 -92
  171. package/dist/hooks/use-form-performance.js +127 -92
  172. package/dist/hooks/use-frame-rate.esm.js +56 -37
  173. package/dist/hooks/use-frame-rate.js +56 -37
  174. package/dist/hooks/use-gestures.esm.js +96 -72
  175. package/dist/hooks/use-gestures.js +96 -72
  176. package/dist/hooks/use-hardware-acceleration.esm.js +65 -37
  177. package/dist/hooks/use-hardware-acceleration.js +65 -37
  178. package/dist/hooks/use-input-accessibility.esm.js +157 -119
  179. package/dist/hooks/use-input-accessibility.js +157 -119
  180. package/dist/hooks/use-input-performance.esm.js +139 -104
  181. package/dist/hooks/use-input-performance.js +139 -104
  182. package/dist/hooks/use-layout-performance.esm.js +50 -29
  183. package/dist/hooks/use-layout-performance.js +50 -29
  184. package/dist/hooks/use-loading-accessibility.esm.js +209 -169
  185. package/dist/hooks/use-loading-accessibility.js +209 -169
  186. package/dist/hooks/use-loading-performance.esm.js +117 -93
  187. package/dist/hooks/use-loading-performance.js +117 -93
  188. package/dist/hooks/use-memory-usage.esm.js +57 -38
  189. package/dist/hooks/use-memory-usage.js +57 -38
  190. package/dist/hooks/use-mobile-form-layout.esm.js +111 -74
  191. package/dist/hooks/use-mobile-form-layout.js +111 -74
  192. package/dist/hooks/use-mobile-form-validation.esm.js +211 -144
  193. package/dist/hooks/use-mobile-form-validation.js +211 -144
  194. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +154 -113
  195. package/dist/hooks/use-mobile-keyboard-optimization.js +154 -113
  196. package/dist/hooks/use-mobile-layout.esm.js +73 -51
  197. package/dist/hooks/use-mobile-layout.js +73 -51
  198. package/dist/hooks/use-mobile-optimization.esm.js +72 -44
  199. package/dist/hooks/use-mobile-optimization.js +72 -44
  200. package/dist/hooks/use-mobile-skeleton.esm.js +97 -64
  201. package/dist/hooks/use-mobile-skeleton.js +97 -64
  202. package/dist/hooks/use-mobile-touch.esm.js +128 -93
  203. package/dist/hooks/use-mobile-touch.js +128 -93
  204. package/dist/hooks/use-performance-throttling.esm.js +72 -48
  205. package/dist/hooks/use-performance-throttling.js +72 -48
  206. package/dist/hooks/use-performance.esm.js +90 -52
  207. package/dist/hooks/use-performance.js +90 -52
  208. package/dist/hooks/use-reusable-architecture.esm.js +94 -65
  209. package/dist/hooks/use-reusable-architecture.js +94 -65
  210. package/dist/hooks/use-semantic-input-types.esm.js +166 -124
  211. package/dist/hooks/use-semantic-input-types.js +166 -124
  212. package/dist/hooks/use-semantic-input.esm.js +178 -126
  213. package/dist/hooks/use-semantic-input.js +178 -126
  214. package/dist/hooks/use-tablet-layout.esm.js +67 -38
  215. package/dist/hooks/use-tablet-layout.js +67 -38
  216. package/dist/hooks/use-touch-friendly-input.esm.js +193 -149
  217. package/dist/hooks/use-touch-friendly-input.js +193 -149
  218. package/dist/hooks/use-touch-friendly-interface.esm.js +99 -67
  219. package/dist/hooks/use-touch-friendly-interface.js +99 -67
  220. package/dist/hooks/use-touch-optimization.esm.js +99 -72
  221. package/dist/hooks/use-touch-optimization.js +99 -72
  222. package/dist/index.esm.js +289 -280
  223. package/dist/index.js +289 -280
  224. package/dist/lib/utils.esm.js +1 -1
  225. package/dist/lib/utils.js +1 -1
  226. package/dist/plugins/theme-css-generator.esm.js +104 -55
  227. package/dist/plugins/theme-css-generator.js +104 -55
  228. package/dist/provider.esm.js +4 -4
  229. package/dist/provider.js +4 -4
  230. package/dist/styles.css +1 -1
  231. package/dist/theme.esm.js +633 -468
  232. package/dist/theme.js +633 -468
  233. package/dist/themes/ThemeContext.esm.js +15 -15
  234. package/dist/themes/ThemeContext.js +15 -15
  235. package/dist/themes/ThemeProvider.esm.js +25 -22
  236. package/dist/themes/ThemeProvider.js +25 -22
  237. package/dist/themes/accessibility.esm.js +147 -108
  238. package/dist/themes/accessibility.js +147 -108
  239. package/dist/themes/aria-patterns.esm.js +198 -162
  240. package/dist/themes/aria-patterns.js +198 -162
  241. package/dist/themes/base-themes.esm.js +14 -11
  242. package/dist/themes/base-themes.js +14 -11
  243. package/dist/themes/colorManager.esm.js +101 -83
  244. package/dist/themes/colorManager.js +101 -83
  245. package/dist/themes/examples/dark-theme.esm.js +133 -103
  246. package/dist/themes/examples/dark-theme.js +133 -103
  247. package/dist/themes/examples/minimal-theme.esm.js +83 -61
  248. package/dist/themes/examples/minimal-theme.js +83 -61
  249. package/dist/themes/focus-management.esm.js +202 -143
  250. package/dist/themes/focus-management.js +202 -143
  251. package/dist/themes/fontLoader.esm.js +28 -19
  252. package/dist/themes/fontLoader.js +28 -19
  253. package/dist/themes/high-contrast.esm.js +152 -104
  254. package/dist/themes/high-contrast.js +152 -104
  255. package/dist/themes/inheritance.esm.js +35 -27
  256. package/dist/themes/inheritance.js +35 -27
  257. package/dist/themes/keyboard-navigation.esm.js +152 -123
  258. package/dist/themes/keyboard-navigation.js +152 -123
  259. package/dist/themes/motion-reduction.esm.js +193 -133
  260. package/dist/themes/motion-reduction.js +193 -133
  261. package/dist/themes/navigation.esm.js +146 -146
  262. package/dist/themes/navigation.js +146 -146
  263. package/dist/themes/screen-reader.esm.js +159 -94
  264. package/dist/themes/screen-reader.js +159 -94
  265. package/dist/themes/systemThemeDetector.esm.js +42 -34
  266. package/dist/themes/systemThemeDetector.js +42 -34
  267. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  268. package/dist/themes/themeCSSUpdater.js +21 -9
  269. package/dist/themes/themePersistence.esm.js +68 -47
  270. package/dist/themes/themePersistence.js +68 -47
  271. package/dist/themes/themes/stan-design.esm.js +633 -468
  272. package/dist/themes/themes/stan-design.js +633 -468
  273. package/dist/themes/types.esm.js +301 -287
  274. package/dist/themes/types.js +301 -287
  275. package/dist/themes/useSystemTheme.esm.js +4 -4
  276. package/dist/themes/useSystemTheme.js +4 -4
  277. package/dist/themes/useTheme.esm.js +4 -4
  278. package/dist/themes/useTheme.js +4 -4
  279. package/dist/themes/validation.esm.js +128 -77
  280. package/dist/themes/validation.js +128 -77
  281. package/dist/tokens/index.esm.js +15 -4
  282. package/dist/tokens/index.js +15 -4
  283. package/dist/tokens/tokenExporter.esm.js +87 -61
  284. package/dist/tokens/tokenExporter.js +87 -61
  285. package/dist/tokens/tokenGenerator.esm.js +86 -77
  286. package/dist/tokens/tokenGenerator.js +86 -77
  287. package/dist/tokens/tokenManager.esm.js +64 -51
  288. package/dist/tokens/tokenManager.js +64 -51
  289. package/dist/tokens/tokenValidator.esm.js +193 -147
  290. package/dist/tokens/tokenValidator.js +193 -147
  291. package/dist/tokens/types.esm.js +49 -35
  292. package/dist/tokens/types.js +49 -35
  293. package/dist/utils/bundle-analyzer.esm.js +83 -65
  294. package/dist/utils/bundle-analyzer.js +83 -65
  295. package/dist/utils/bundle-splitting.esm.js +142 -117
  296. package/dist/utils/bundle-splitting.js +142 -117
  297. package/dist/utils/lazy-loading.esm.js +132 -106
  298. package/dist/utils/lazy-loading.js +132 -106
  299. package/dist/utils/performance-monitor.esm.js +170 -129
  300. package/dist/utils/performance-monitor.js +170 -129
  301. package/dist/utils/tree-shaking.esm.js +69 -61
  302. package/dist/utils/tree-shaking.js +69 -61
  303. package/package.json +1 -1
  304. package/src/index.ts +146 -146
@@ -13,7 +13,7 @@ import { useLayoutPerformance } from '../../hooks/use-layout-performance'
13
13
  import { useMobileLayout } from '../../hooks/use-mobile-layout'
14
14
  import { useTabletLayout } from '../../hooks/use-tablet-layout'
15
15
 
16
- export const LayoutDemo= () => {
16
+ export const LayoutDemo: React.FC = () => {
17
17
  const [activeLayout, setActiveLayout] = useState<'mobile' | 'tablet' | 'desktop' | 'adaptive'>('adaptive')
18
18
  const [showPerformanceMetrics, setShowPerformanceMetrics] = useState(true)
19
19
  const [enableTouchOptimization, setEnableTouchOptimization] = useState(true)
@@ -21,45 +21,49 @@ export const LayoutDemo= () => {
21
21
 
22
22
  // Hooks
23
23
  useAdaptiveLayout({
24
- enablePerformanceOptimization,
25
- enableTouchOptimization,
26
- enableBatteryOptimization,
27
- enableMemoryOptimization}, {
28
- onDeviceChange) => console.log('Device changed to, deviceType),
29
- onOrientationChange) => console.log('Orientation changed to, orientation),
30
- onPerformanceChange) => console.log('Performance score, score)
24
+ enablePerformanceOptimization: true,
25
+ enableTouchOptimization: true,
26
+ enableBatteryOptimization: true,
27
+ enableMemoryOptimization: true
28
+ }, {
29
+ onDeviceChange: (deviceType) => console.log('Device changed to:', deviceType),
30
+ onOrientationChange: (orientation) => console.log('Orientation changed to:', orientation),
31
+ onPerformanceChange: (score) => console.log('Performance score:', score)
31
32
  })
32
33
 
33
34
  const layoutPerformance = useLayoutPerformance({
34
- enableLayoutCalculationOptimization,
35
- enableMemoryManagement,
36
- enableBatteryOptimization,
37
- enablePerformanceMonitoring}, {
38
- onPerformanceWarning, metrics) => console.log('Performance warning, warning, metrics),
39
- onMemoryWarning, threshold) => console.log('Memory warning, usage, threshold),
40
- onBatteryWarning, isLow) => console.log('Battery warning, level, isLow)
35
+ enableLayoutCalculationOptimization: true,
36
+ enableMemoryManagement: true,
37
+ enableBatteryOptimization: true,
38
+ enablePerformanceMonitoring: true
39
+ }, {
40
+ onPerformanceWarning: (warning, metrics) => console.log('Performance warning:', warning, metrics),
41
+ onMemoryWarning: (usage, threshold) => console.log('Memory warning:', usage, threshold),
42
+ onBatteryWarning: (level, isLow) => console.log('Battery warning:', level, isLow)
41
43
  })
42
44
 
43
45
  const mobileLayout = useMobileLayout({
44
- enableTouchTargetOptimization,
45
- enableGestureSupport,
46
- enableTouchFeedback,
47
- enablePerformanceOptimization}, {
48
- onTouchTargetOptimized) => console.log('Touch target optimized, target),
49
- onGestureDetected) => console.log('Gesture detected, event),
50
- onTouchFeedback, target) => console.log('Touch feedback, type, target)
46
+ enableTouchTargetOptimization: true,
47
+ enableGestureSupport: true,
48
+ enableTouchFeedback: true,
49
+ enablePerformanceOptimization: true
50
+ }, {
51
+ onTouchTargetOptimized: (target) => console.log('Touch target optimized:', target),
52
+ onGestureDetected: (event) => console.log('Gesture detected:', event),
53
+ onTouchFeedback: (type, target) => console.log('Touch feedback:', type, target)
51
54
  })
52
55
 
53
56
  useTabletLayout({
54
- enableOrientationOptimization,
55
- enableSplitViewSupport,
56
- enableKeyboardOptimization,
57
- enableSafeAreaOptimization,
58
- enablePerformanceOptimization,
59
- enableTouchOptimization}, {
60
- onOrientationChange) => console.log('Tablet orientation, orientation),
61
- onSplitViewChange) => console.log('Split view, isSplitView),
62
- onKeyboardChange) => console.log('Keyboard visible, isVisible)
57
+ enableOrientationOptimization: true,
58
+ enableSplitViewSupport: true,
59
+ enableKeyboardOptimization: true,
60
+ enableSafeAreaOptimization: true,
61
+ enablePerformanceOptimization: true,
62
+ enableTouchOptimization: true
63
+ }, {
64
+ onOrientationChange: (orientation) => console.log('Tablet orientation:', orientation),
65
+ onSplitViewChange: (isSplitView) => console.log('Split view:', isSplitView),
66
+ onKeyboardChange: (isVisible) => console.log('Keyboard visible:', isVisible)
63
67
  })
64
68
 
65
69
  // Layout content
@@ -67,7 +71,8 @@ export const LayoutDemo= () => {
67
71
  const commonContent = (
68
72
  <div className="space-y-6">
69
73
  {/* Feature Cards */}
70
- <div className="grid grid-cols-1 md="border-2 border-cs-primary">
74
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
75
+ <Card className="border-2 border-cs-primary">
71
76
  <CardHeader className="pb-3">
72
77
  <CardTitle className="text-lg flex items-center gap-2">
73
78
  🎨 Design System
@@ -140,7 +145,9 @@ export const LayoutDemo= () => {
140
145
  </CardDescription>
141
146
  </CardHeader>
142
147
  <CardContent>
143
- <div className="grid grid-cols-2 lg="text-2xl font-bold text-cs-primary">
148
+ <div className="grid grid-cols-2 lg:grid-cols-4 gap-6 text-center">
149
+ <div>
150
+ <p className="text-2xl font-bold text-cs-primary">
144
151
  {layoutPerformance.metrics.performanceScore}
145
152
  </p>
146
153
  <p className="text-sm text-cs-text-secondary">Performance Score</p>
@@ -179,25 +186,25 @@ export const LayoutDemo= () => {
179
186
  <CardContent className="space-y-4">
180
187
  <div className="flex flex-wrap gap-4">
181
188
  <Button
182
- variant={activeLayout === 'mobile' ? 'default' }
189
+ variant={activeLayout === 'mobile' ? 'default' : 'outline'}
183
190
  onClick={() => setActiveLayout('mobile')}
184
191
  >
185
192
  📱 Mobile
186
193
  </Button>
187
194
  <Button
188
- variant={activeLayout === 'tablet' ? 'default' }
195
+ variant={activeLayout === 'tablet' ? 'default' : 'outline'}
189
196
  onClick={() => setActiveLayout('tablet')}
190
197
  >
191
198
  📱 Tablet
192
199
  </Button>
193
200
  <Button
194
- variant={activeLayout === 'desktop' ? 'default' }
201
+ variant={activeLayout === 'desktop' ? 'default' : 'outline'}
195
202
  onClick={() => setActiveLayout('desktop')}
196
203
  >
197
204
  💻 Desktop
198
205
  </Button>
199
206
  <Button
200
- variant={activeLayout === 'adaptive' ? 'default' }
207
+ variant={activeLayout === 'adaptive' ? 'default' : 'outline'}
201
208
  onClick={() => setActiveLayout('adaptive')}
202
209
  >
203
210
  🔄 Adaptive
@@ -206,25 +213,25 @@ export const LayoutDemo= () => {
206
213
 
207
214
  <div className="flex flex-wrap gap-4">
208
215
  <Button
209
- variant={showPerformanceMetrics ? 'default' }
216
+ variant={showPerformanceMetrics ? 'default' : 'outline'}
210
217
  size="sm"
211
218
  onClick={() => setShowPerformanceMetrics(!showPerformanceMetrics)}
212
219
  >
213
- {showPerformanceMetrics ? 'Hide' } Performance
220
+ {showPerformanceMetrics ? 'Hide' : 'Show'} Performance
214
221
  </Button>
215
222
  <Button
216
- variant={enableTouchOptimization ? 'default' }
223
+ variant={enableTouchOptimization ? 'default' : 'outline'}
217
224
  size="sm"
218
225
  onClick={() => setEnableTouchOptimization(!enableTouchOptimization)}
219
226
  >
220
- {enableTouchOptimization ? 'Disable' } Touch
227
+ {enableTouchOptimization ? 'Disable' : 'Enable'} Touch
221
228
  </Button>
222
229
  <Button
223
- variant={enableAdvancedFeatures ? 'default' }
230
+ variant={enableAdvancedFeatures ? 'default' : 'outline'}
224
231
  size="sm"
225
232
  onClick={() => setEnableAdvancedFeatures(!enableAdvancedFeatures)}
226
233
  >
227
- {enableAdvancedFeatures ? 'Disable' } Advanced
234
+ {enableAdvancedFeatures ? 'Disable' : 'Enable'} Advanced
228
235
  </Button>
229
236
  </div>
230
237
  </CardContent>
@@ -241,30 +248,35 @@ export const LayoutDemo= () => {
241
248
  <CardContent>
242
249
  <div className="space-y-3">
243
250
  <div className="flex items-center justify-between">
244
- <span className="text-sm">Layout Performance={layoutPerformance.isPerformanceOptimal ? 'default' }>
245
- {layoutPerformance.isPerformanceOptimal ? 'Optimal' }
251
+ <span className="text-sm">Layout Performance:</span>
252
+ <Badge variant={layoutPerformance.isPerformanceOptimal ? 'default' : 'secondary'}>
253
+ {layoutPerformance.isPerformanceOptimal ? 'Optimal' : 'Needs Optimization'}
246
254
  </Badge>
247
255
  </div>
248
256
  <div className="flex items-center justify-between">
249
- <span className="text-sm">Memory Usage={layoutPerformance.isMemoryOptimal ? 'default' }>
250
- {layoutPerformance.isMemoryOptimal ? 'Optimal' }
257
+ <span className="text-sm">Memory Usage:</span>
258
+ <Badge variant={layoutPerformance.isMemoryOptimal ? 'default' : 'secondary'}>
259
+ {layoutPerformance.isMemoryOptimal ? 'Optimal' : 'High Usage'}
251
260
  </Badge>
252
261
  </div>
253
262
  <div className="flex items-center justify-between">
254
- <span className="text-sm">Battery Status={layoutPerformance.isBatteryOptimal ? 'default' }>
255
- {layoutPerformance.isBatteryOptimal ? 'Good' }
263
+ <span className="text-sm">Battery Status:</span>
264
+ <Badge variant={layoutPerformance.isBatteryOptimal ? 'default' : 'secondary'}>
265
+ {layoutPerformance.isBatteryOptimal ? 'Good' : 'Low Battery'}
256
266
  </Badge>
257
267
  </div>
258
268
  <div className="flex items-center justify-between">
259
- <span className="text-sm">Touch Optimization={mobileLayout.isTouchOptimized ? 'default' }>
260
- {mobileLayout.isTouchOptimized ? 'Optimized' }
269
+ <span className="text-sm">Touch Optimization:</span>
270
+ <Badge variant={mobileLayout.isTouchOptimized ? 'default' : 'secondary'}>
271
+ {mobileLayout.isTouchOptimized ? 'Optimized' : 'Needs Optimization'}
261
272
  </Badge>
262
273
  </div>
263
274
  </div>
264
275
 
265
276
  {layoutPerformance.layoutOptimizations.length > 0 && (
266
277
  <div className="mt-4 p-3 bg-cs-accent/10 rounded-lg">
267
- <h4 className="font-medium text-sm mb-2">Recommendations="text-xs text-cs-text-secondary space-y-1">
278
+ <h4 className="font-medium text-sm mb-2">Recommendations:</h4>
279
+ <ul className="text-xs text-cs-text-secondary space-y-1">
268
280
  {layoutPerformance.layoutOptimizations.map((optimization, index) => (
269
281
  <li key={index}>• {optimization}</li>
270
282
  ))}
@@ -277,7 +289,10 @@ export const LayoutDemo= () => {
277
289
  )
278
290
 
279
291
  switch (activeLayout) {
280
- case 'mobile'="Mobile Layout Demo"
292
+ case 'mobile':
293
+ return (
294
+ <MobileLayout
295
+ title="Mobile Layout Demo"
281
296
  description="Touch-optimized mobile layout with performance monitoring"
282
297
  enableTouchOptimization={enableTouchOptimization}
283
298
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -286,7 +301,10 @@ export const LayoutDemo= () => {
286
301
  </MobileLayout>
287
302
  )
288
303
 
289
- case 'tablet'="Tablet Layout Demo"
304
+ case 'tablet':
305
+ return (
306
+ <TabletLayout
307
+ title="Tablet Layout Demo"
290
308
  description="Tablet-optimized layout with orientation and split view support"
291
309
  enableTouchOptimization={enableTouchOptimization}
292
310
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -295,7 +313,10 @@ export const LayoutDemo= () => {
295
313
  </TabletLayout>
296
314
  )
297
315
 
298
- case 'desktop'="Desktop Layout Demo"
316
+ case 'desktop':
317
+ return (
318
+ <DesktopLayout
319
+ title="Desktop Layout Demo"
299
320
  description="Desktop-optimized layout with advanced features and performance monitoring"
300
321
  enableAdvancedFeatures={enableAdvancedFeatures}
301
322
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -304,7 +325,11 @@ export const LayoutDemo= () => {
304
325
  </DesktopLayout>
305
326
  )
306
327
 
307
- case 'adaptive'="Adaptive Layout Demo"
328
+ case 'adaptive':
329
+ default:
330
+ return (
331
+ <AdaptiveLayout
332
+ title="Adaptive Layout Demo"
308
333
  description="Automatically adapts to different device types with optimal layouts"
309
334
  enableTouchOptimization={enableTouchOptimization}
310
335
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -13,7 +13,7 @@ import { useLayoutPerformance } from '../../hooks/use-layout-performance'
13
13
  import { useMobileLayout } from '../../hooks/use-mobile-layout'
14
14
  import { useTabletLayout } from '../../hooks/use-tablet-layout'
15
15
 
16
- export const LayoutDemo= () => {
16
+ export const LayoutDemo: React.FC = () => {
17
17
  const [activeLayout, setActiveLayout] = useState<'mobile' | 'tablet' | 'desktop' | 'adaptive'>('adaptive')
18
18
  const [showPerformanceMetrics, setShowPerformanceMetrics] = useState(true)
19
19
  const [enableTouchOptimization, setEnableTouchOptimization] = useState(true)
@@ -21,45 +21,49 @@ export const LayoutDemo= () => {
21
21
 
22
22
  // Hooks
23
23
  useAdaptiveLayout({
24
- enablePerformanceOptimization,
25
- enableTouchOptimization,
26
- enableBatteryOptimization,
27
- enableMemoryOptimization}, {
28
- onDeviceChange) => console.log('Device changed to, deviceType),
29
- onOrientationChange) => console.log('Orientation changed to, orientation),
30
- onPerformanceChange) => console.log('Performance score, score)
24
+ enablePerformanceOptimization: true,
25
+ enableTouchOptimization: true,
26
+ enableBatteryOptimization: true,
27
+ enableMemoryOptimization: true
28
+ }, {
29
+ onDeviceChange: (deviceType) => console.log('Device changed to:', deviceType),
30
+ onOrientationChange: (orientation) => console.log('Orientation changed to:', orientation),
31
+ onPerformanceChange: (score) => console.log('Performance score:', score)
31
32
  })
32
33
 
33
34
  const layoutPerformance = useLayoutPerformance({
34
- enableLayoutCalculationOptimization,
35
- enableMemoryManagement,
36
- enableBatteryOptimization,
37
- enablePerformanceMonitoring}, {
38
- onPerformanceWarning, metrics) => console.log('Performance warning, warning, metrics),
39
- onMemoryWarning, threshold) => console.log('Memory warning, usage, threshold),
40
- onBatteryWarning, isLow) => console.log('Battery warning, level, isLow)
35
+ enableLayoutCalculationOptimization: true,
36
+ enableMemoryManagement: true,
37
+ enableBatteryOptimization: true,
38
+ enablePerformanceMonitoring: true
39
+ }, {
40
+ onPerformanceWarning: (warning, metrics) => console.log('Performance warning:', warning, metrics),
41
+ onMemoryWarning: (usage, threshold) => console.log('Memory warning:', usage, threshold),
42
+ onBatteryWarning: (level, isLow) => console.log('Battery warning:', level, isLow)
41
43
  })
42
44
 
43
45
  const mobileLayout = useMobileLayout({
44
- enableTouchTargetOptimization,
45
- enableGestureSupport,
46
- enableTouchFeedback,
47
- enablePerformanceOptimization}, {
48
- onTouchTargetOptimized) => console.log('Touch target optimized, target),
49
- onGestureDetected) => console.log('Gesture detected, event),
50
- onTouchFeedback, target) => console.log('Touch feedback, type, target)
46
+ enableTouchTargetOptimization: true,
47
+ enableGestureSupport: true,
48
+ enableTouchFeedback: true,
49
+ enablePerformanceOptimization: true
50
+ }, {
51
+ onTouchTargetOptimized: (target) => console.log('Touch target optimized:', target),
52
+ onGestureDetected: (event) => console.log('Gesture detected:', event),
53
+ onTouchFeedback: (type, target) => console.log('Touch feedback:', type, target)
51
54
  })
52
55
 
53
56
  useTabletLayout({
54
- enableOrientationOptimization,
55
- enableSplitViewSupport,
56
- enableKeyboardOptimization,
57
- enableSafeAreaOptimization,
58
- enablePerformanceOptimization,
59
- enableTouchOptimization}, {
60
- onOrientationChange) => console.log('Tablet orientation, orientation),
61
- onSplitViewChange) => console.log('Split view, isSplitView),
62
- onKeyboardChange) => console.log('Keyboard visible, isVisible)
57
+ enableOrientationOptimization: true,
58
+ enableSplitViewSupport: true,
59
+ enableKeyboardOptimization: true,
60
+ enableSafeAreaOptimization: true,
61
+ enablePerformanceOptimization: true,
62
+ enableTouchOptimization: true
63
+ }, {
64
+ onOrientationChange: (orientation) => console.log('Tablet orientation:', orientation),
65
+ onSplitViewChange: (isSplitView) => console.log('Split view:', isSplitView),
66
+ onKeyboardChange: (isVisible) => console.log('Keyboard visible:', isVisible)
63
67
  })
64
68
 
65
69
  // Layout content
@@ -67,7 +71,8 @@ export const LayoutDemo= () => {
67
71
  const commonContent = (
68
72
  <div className="space-y-6">
69
73
  {/* Feature Cards */}
70
- <div className="grid grid-cols-1 md="border-2 border-cs-primary">
74
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
75
+ <Card className="border-2 border-cs-primary">
71
76
  <CardHeader className="pb-3">
72
77
  <CardTitle className="text-lg flex items-center gap-2">
73
78
  🎨 Design System
@@ -140,7 +145,9 @@ export const LayoutDemo= () => {
140
145
  </CardDescription>
141
146
  </CardHeader>
142
147
  <CardContent>
143
- <div className="grid grid-cols-2 lg="text-2xl font-bold text-cs-primary">
148
+ <div className="grid grid-cols-2 lg:grid-cols-4 gap-6 text-center">
149
+ <div>
150
+ <p className="text-2xl font-bold text-cs-primary">
144
151
  {layoutPerformance.metrics.performanceScore}
145
152
  </p>
146
153
  <p className="text-sm text-cs-text-secondary">Performance Score</p>
@@ -179,25 +186,25 @@ export const LayoutDemo= () => {
179
186
  <CardContent className="space-y-4">
180
187
  <div className="flex flex-wrap gap-4">
181
188
  <Button
182
- variant={activeLayout === 'mobile' ? 'default' }
189
+ variant={activeLayout === 'mobile' ? 'default' : 'outline'}
183
190
  onClick={() => setActiveLayout('mobile')}
184
191
  >
185
192
  📱 Mobile
186
193
  </Button>
187
194
  <Button
188
- variant={activeLayout === 'tablet' ? 'default' }
195
+ variant={activeLayout === 'tablet' ? 'default' : 'outline'}
189
196
  onClick={() => setActiveLayout('tablet')}
190
197
  >
191
198
  📱 Tablet
192
199
  </Button>
193
200
  <Button
194
- variant={activeLayout === 'desktop' ? 'default' }
201
+ variant={activeLayout === 'desktop' ? 'default' : 'outline'}
195
202
  onClick={() => setActiveLayout('desktop')}
196
203
  >
197
204
  💻 Desktop
198
205
  </Button>
199
206
  <Button
200
- variant={activeLayout === 'adaptive' ? 'default' }
207
+ variant={activeLayout === 'adaptive' ? 'default' : 'outline'}
201
208
  onClick={() => setActiveLayout('adaptive')}
202
209
  >
203
210
  🔄 Adaptive
@@ -206,25 +213,25 @@ export const LayoutDemo= () => {
206
213
 
207
214
  <div className="flex flex-wrap gap-4">
208
215
  <Button
209
- variant={showPerformanceMetrics ? 'default' }
216
+ variant={showPerformanceMetrics ? 'default' : 'outline'}
210
217
  size="sm"
211
218
  onClick={() => setShowPerformanceMetrics(!showPerformanceMetrics)}
212
219
  >
213
- {showPerformanceMetrics ? 'Hide' } Performance
220
+ {showPerformanceMetrics ? 'Hide' : 'Show'} Performance
214
221
  </Button>
215
222
  <Button
216
- variant={enableTouchOptimization ? 'default' }
223
+ variant={enableTouchOptimization ? 'default' : 'outline'}
217
224
  size="sm"
218
225
  onClick={() => setEnableTouchOptimization(!enableTouchOptimization)}
219
226
  >
220
- {enableTouchOptimization ? 'Disable' } Touch
227
+ {enableTouchOptimization ? 'Disable' : 'Enable'} Touch
221
228
  </Button>
222
229
  <Button
223
- variant={enableAdvancedFeatures ? 'default' }
230
+ variant={enableAdvancedFeatures ? 'default' : 'outline'}
224
231
  size="sm"
225
232
  onClick={() => setEnableAdvancedFeatures(!enableAdvancedFeatures)}
226
233
  >
227
- {enableAdvancedFeatures ? 'Disable' } Advanced
234
+ {enableAdvancedFeatures ? 'Disable' : 'Enable'} Advanced
228
235
  </Button>
229
236
  </div>
230
237
  </CardContent>
@@ -241,30 +248,35 @@ export const LayoutDemo= () => {
241
248
  <CardContent>
242
249
  <div className="space-y-3">
243
250
  <div className="flex items-center justify-between">
244
- <span className="text-sm">Layout Performance={layoutPerformance.isPerformanceOptimal ? 'default' }>
245
- {layoutPerformance.isPerformanceOptimal ? 'Optimal' }
251
+ <span className="text-sm">Layout Performance:</span>
252
+ <Badge variant={layoutPerformance.isPerformanceOptimal ? 'default' : 'secondary'}>
253
+ {layoutPerformance.isPerformanceOptimal ? 'Optimal' : 'Needs Optimization'}
246
254
  </Badge>
247
255
  </div>
248
256
  <div className="flex items-center justify-between">
249
- <span className="text-sm">Memory Usage={layoutPerformance.isMemoryOptimal ? 'default' }>
250
- {layoutPerformance.isMemoryOptimal ? 'Optimal' }
257
+ <span className="text-sm">Memory Usage:</span>
258
+ <Badge variant={layoutPerformance.isMemoryOptimal ? 'default' : 'secondary'}>
259
+ {layoutPerformance.isMemoryOptimal ? 'Optimal' : 'High Usage'}
251
260
  </Badge>
252
261
  </div>
253
262
  <div className="flex items-center justify-between">
254
- <span className="text-sm">Battery Status={layoutPerformance.isBatteryOptimal ? 'default' }>
255
- {layoutPerformance.isBatteryOptimal ? 'Good' }
263
+ <span className="text-sm">Battery Status:</span>
264
+ <Badge variant={layoutPerformance.isBatteryOptimal ? 'default' : 'secondary'}>
265
+ {layoutPerformance.isBatteryOptimal ? 'Good' : 'Low Battery'}
256
266
  </Badge>
257
267
  </div>
258
268
  <div className="flex items-center justify-between">
259
- <span className="text-sm">Touch Optimization={mobileLayout.isTouchOptimized ? 'default' }>
260
- {mobileLayout.isTouchOptimized ? 'Optimized' }
269
+ <span className="text-sm">Touch Optimization:</span>
270
+ <Badge variant={mobileLayout.isTouchOptimized ? 'default' : 'secondary'}>
271
+ {mobileLayout.isTouchOptimized ? 'Optimized' : 'Needs Optimization'}
261
272
  </Badge>
262
273
  </div>
263
274
  </div>
264
275
 
265
276
  {layoutPerformance.layoutOptimizations.length > 0 && (
266
277
  <div className="mt-4 p-3 bg-cs-accent/10 rounded-lg">
267
- <h4 className="font-medium text-sm mb-2">Recommendations="text-xs text-cs-text-secondary space-y-1">
278
+ <h4 className="font-medium text-sm mb-2">Recommendations:</h4>
279
+ <ul className="text-xs text-cs-text-secondary space-y-1">
268
280
  {layoutPerformance.layoutOptimizations.map((optimization, index) => (
269
281
  <li key={index}>• {optimization}</li>
270
282
  ))}
@@ -277,7 +289,10 @@ export const LayoutDemo= () => {
277
289
  )
278
290
 
279
291
  switch (activeLayout) {
280
- case 'mobile'="Mobile Layout Demo"
292
+ case 'mobile':
293
+ return (
294
+ <MobileLayout
295
+ title="Mobile Layout Demo"
281
296
  description="Touch-optimized mobile layout with performance monitoring"
282
297
  enableTouchOptimization={enableTouchOptimization}
283
298
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -286,7 +301,10 @@ export const LayoutDemo= () => {
286
301
  </MobileLayout>
287
302
  )
288
303
 
289
- case 'tablet'="Tablet Layout Demo"
304
+ case 'tablet':
305
+ return (
306
+ <TabletLayout
307
+ title="Tablet Layout Demo"
290
308
  description="Tablet-optimized layout with orientation and split view support"
291
309
  enableTouchOptimization={enableTouchOptimization}
292
310
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -295,7 +313,10 @@ export const LayoutDemo= () => {
295
313
  </TabletLayout>
296
314
  )
297
315
 
298
- case 'desktop'="Desktop Layout Demo"
316
+ case 'desktop':
317
+ return (
318
+ <DesktopLayout
319
+ title="Desktop Layout Demo"
299
320
  description="Desktop-optimized layout with advanced features and performance monitoring"
300
321
  enableAdvancedFeatures={enableAdvancedFeatures}
301
322
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -304,7 +325,11 @@ export const LayoutDemo= () => {
304
325
  </DesktopLayout>
305
326
  )
306
327
 
307
- case 'adaptive'="Adaptive Layout Demo"
328
+ case 'adaptive':
329
+ default:
330
+ return (
331
+ <AdaptiveLayout
332
+ title="Adaptive Layout Demo"
308
333
  description="Automatically adapts to different device types with optimal layouts"
309
334
  enableTouchOptimization={enableTouchOptimization}
310
335
  enablePerformanceMonitoring={showPerformanceMetrics}
@@ -8,9 +8,18 @@ import { DesktopLayout } from './desktop-layout'
8
8
  export type DeviceType = 'mobile' | 'tablet' | 'desktop'
9
9
 
10
10
  export interface AdaptiveLayoutProps {
11
- children}
11
+ children: ReactNode
12
+ title?: string
13
+ description?: string
14
+ showHeader?: boolean
15
+ showSidebar?: boolean
16
+ enableTouchOptimization?: boolean
17
+ enablePerformanceMonitoring?: boolean
18
+ enableAdvancedFeatures?: boolean
19
+ className?: string
20
+ }
12
21
 
13
- export const AdaptiveLayout= ({
22
+ export const AdaptiveLayout: React.FC<AdaptiveLayoutProps> = ({
14
23
  children,
15
24
  title = 'Adaptive Layout',
16
25
  description = 'Automatically adapts to different device types with optimal layouts',
@@ -22,7 +31,7 @@ export const AdaptiveLayout= ({
22
31
  className = ''
23
32
  }) => {
24
33
  const [deviceType, setDeviceType] = useState<DeviceType>('desktop')
25
- const [screenSize, setScreenSize] = useState({ width, height})
34
+ const [screenSize, setScreenSize] = useState({ width: 0, height: 0 })
26
35
  const [orientation, setOrientation] = useState<'portrait' | 'landscape'>('landscape')
27
36
 
28
37
  // Device detection and adaptation
@@ -32,7 +41,7 @@ export const AdaptiveLayout= ({
32
41
  const height = window.innerHeight
33
42
 
34
43
  setScreenSize({ width, height })
35
- setOrientation(width > height ? 'landscape' )
44
+ setOrientation(width > height ? 'landscape' : 'portrait')
36
45
 
37
46
  // Device type detection based on screen size
38
47
  if (width < 768) {
@@ -65,7 +74,10 @@ export const AdaptiveLayout= ({
65
74
  }
66
75
 
67
76
  switch (deviceType) {
68
- case 'mobile'}
77
+ case 'mobile':
78
+ return (
79
+ <MobileLayout
80
+ {...commonProps}
69
81
  showFooter={true}
70
82
  enableTouchOptimization={enableTouchOptimization}
71
83
  >
@@ -73,7 +85,10 @@ export const AdaptiveLayout= ({
73
85
  </MobileLayout>
74
86
  )
75
87
 
76
- case 'tablet'}
88
+ case 'tablet':
89
+ return (
90
+ <TabletLayout
91
+ {...commonProps}
77
92
  showSidebar={showSidebar}
78
93
  enableTouchOptimization={enableTouchOptimization}
79
94
  >
@@ -81,7 +96,10 @@ export const AdaptiveLayout= ({
81
96
  </TabletLayout>
82
97
  )
83
98
 
84
- case 'desktop'}
99
+ case 'desktop':
100
+ return (
101
+ <DesktopLayout
102
+ {...commonProps}
85
103
  showSidebar={showSidebar}
86
104
  showTopBar={true}
87
105
  enableAdvancedFeatures={enableAdvancedFeatures}
@@ -90,7 +108,8 @@ export const AdaptiveLayout= ({
90
108
  </DesktopLayout>
91
109
  )
92
110
 
93
- default}</div>
111
+ default:
112
+ return <div>{children}</div>
94
113
  }
95
114
  }
96
115