@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.
Files changed (306) 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 +0 -1
  89. package/dist/components/ui/navigation/index.js +0 -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 +0 -2
  109. package/dist/components/ui/overlay/index.js +0 -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 +157 -281
  223. package/dist/index.js +157 -281
  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/index.esm.js +1 -1
  256. package/dist/themes/index.js +1 -1
  257. package/dist/themes/inheritance.esm.js +35 -27
  258. package/dist/themes/inheritance.js +35 -27
  259. package/dist/themes/keyboard-navigation.esm.js +152 -123
  260. package/dist/themes/keyboard-navigation.js +152 -123
  261. package/dist/themes/motion-reduction.esm.js +193 -133
  262. package/dist/themes/motion-reduction.js +193 -133
  263. package/dist/themes/navigation.esm.js +146 -146
  264. package/dist/themes/navigation.js +146 -146
  265. package/dist/themes/screen-reader.esm.js +159 -94
  266. package/dist/themes/screen-reader.js +159 -94
  267. package/dist/themes/systemThemeDetector.esm.js +42 -34
  268. package/dist/themes/systemThemeDetector.js +42 -34
  269. package/dist/themes/themeCSSUpdater.esm.js +21 -9
  270. package/dist/themes/themeCSSUpdater.js +21 -9
  271. package/dist/themes/themePersistence.esm.js +68 -47
  272. package/dist/themes/themePersistence.js +68 -47
  273. package/dist/themes/themes/stan-design.esm.js +633 -468
  274. package/dist/themes/themes/stan-design.js +633 -468
  275. package/dist/themes/types.esm.js +301 -287
  276. package/dist/themes/types.js +301 -287
  277. package/dist/themes/useSystemTheme.esm.js +4 -4
  278. package/dist/themes/useSystemTheme.js +4 -4
  279. package/dist/themes/useTheme.esm.js +4 -4
  280. package/dist/themes/useTheme.js +4 -4
  281. package/dist/themes/validation.esm.js +128 -77
  282. package/dist/themes/validation.js +128 -77
  283. package/dist/tokens/index.esm.js +1 -2
  284. package/dist/tokens/index.js +1 -2
  285. package/dist/tokens/tokenExporter.esm.js +87 -61
  286. package/dist/tokens/tokenExporter.js +87 -61
  287. package/dist/tokens/tokenGenerator.esm.js +86 -77
  288. package/dist/tokens/tokenGenerator.js +86 -77
  289. package/dist/tokens/tokenManager.esm.js +64 -51
  290. package/dist/tokens/tokenManager.js +64 -51
  291. package/dist/tokens/tokenValidator.esm.js +193 -147
  292. package/dist/tokens/tokenValidator.js +193 -147
  293. package/dist/tokens/types.esm.js +49 -35
  294. package/dist/tokens/types.js +49 -35
  295. package/dist/utils/bundle-analyzer.esm.js +83 -65
  296. package/dist/utils/bundle-analyzer.js +83 -65
  297. package/dist/utils/bundle-splitting.esm.js +142 -117
  298. package/dist/utils/bundle-splitting.js +142 -117
  299. package/dist/utils/lazy-loading.esm.js +132 -106
  300. package/dist/utils/lazy-loading.js +132 -106
  301. package/dist/utils/performance-monitor.esm.js +170 -129
  302. package/dist/utils/performance-monitor.js +170 -129
  303. package/dist/utils/tree-shaking.esm.js +69 -61
  304. package/dist/utils/tree-shaking.js +69 -61
  305. package/package.json +1 -1
  306. package/src/index.ts +146 -146
@@ -5,18 +5,18 @@ import { TooltipProps, TooltipContentProps } from './types';
5
5
 
6
6
  // Default color fallbacks
7
7
  const getDefaultColors = () => ({
8
- surface, surface, border},
9
- text, secondary, inverse},
10
- interactive, focus},
11
- primary}
8
+ surface: { background: '#1f2937', surface: '#374151', border: '#4b5563' },
9
+ text: { primary: '#ffffff', secondary: '#d1d5db', inverse: '#111827' },
10
+ interactive: { hover: '#4b5563', focus: '#3b82f6' },
11
+ primary: { 500: '#3b82f6' }
12
12
  });
13
13
 
14
14
  // Position calculations utility
15
15
  const calculatePosition = (
16
- triggerRect,
17
- tooltipRect,
18
- position] = 'top',
19
- offset= 8
16
+ triggerRect: DOMRect,
17
+ tooltipRect: DOMRect,
18
+ position: TooltipProps['position'] = 'top',
19
+ offset: number = 8
20
20
  ) => {
21
21
  const scrollX = window.scrollX || document.documentElement.scrollLeft;
22
22
  const scrollY = window.scrollY || document.documentElement.scrollTop;
@@ -29,40 +29,52 @@ const calculatePosition = (
29
29
  const triggerCenterY = triggerRect.top + triggerRect.height / 2;
30
30
 
31
31
  switch (position) {
32
- case 'top'= triggerRect.top - tooltipRect.height - offset;
32
+ case 'top':
33
+ top = triggerRect.top - tooltipRect.height - offset;
33
34
  left = triggerCenterX - tooltipRect.width / 2;
34
35
  break;
35
- case 'top-start'= triggerRect.top - tooltipRect.height - offset;
36
+ case 'top-start':
37
+ top = triggerRect.top - tooltipRect.height - offset;
36
38
  left = triggerRect.left;
37
39
  break;
38
- case 'top-end'= triggerRect.top - tooltipRect.height - offset;
40
+ case 'top-end':
41
+ top = triggerRect.top - tooltipRect.height - offset;
39
42
  left = triggerRect.right - tooltipRect.width;
40
43
  break;
41
- case 'bottom'= triggerRect.bottom + offset;
44
+ case 'bottom':
45
+ top = triggerRect.bottom + offset;
42
46
  left = triggerCenterX - tooltipRect.width / 2;
43
47
  break;
44
- case 'bottom-start'= triggerRect.bottom + offset;
48
+ case 'bottom-start':
49
+ top = triggerRect.bottom + offset;
45
50
  left = triggerRect.left;
46
51
  break;
47
- case 'bottom-end'= triggerRect.bottom + offset;
52
+ case 'bottom-end':
53
+ top = triggerRect.bottom + offset;
48
54
  left = triggerRect.right - tooltipRect.width;
49
55
  break;
50
- case 'left'= triggerCenterY - tooltipRect.height / 2;
56
+ case 'left':
57
+ top = triggerCenterY - tooltipRect.height / 2;
51
58
  left = triggerRect.left - tooltipRect.width - offset;
52
59
  break;
53
- case 'left-start'= triggerRect.top;
60
+ case 'left-start':
61
+ top = triggerRect.top;
54
62
  left = triggerRect.left - tooltipRect.width - offset;
55
63
  break;
56
- case 'left-end'= triggerRect.bottom - tooltipRect.height;
64
+ case 'left-end':
65
+ top = triggerRect.bottom - tooltipRect.height;
57
66
  left = triggerRect.left - tooltipRect.width - offset;
58
67
  break;
59
- case 'right'= triggerCenterY - tooltipRect.height / 2;
68
+ case 'right':
69
+ top = triggerCenterY - tooltipRect.height / 2;
60
70
  left = triggerRect.right + offset;
61
71
  break;
62
- case 'right-start'= triggerRect.top;
72
+ case 'right-start':
73
+ top = triggerRect.top;
63
74
  left = triggerRect.right + offset;
64
75
  break;
65
- case 'right-end'= triggerRect.bottom - tooltipRect.height;
76
+ case 'right-end':
77
+ top = triggerRect.bottom - tooltipRect.height;
66
78
  left = triggerRect.right + offset;
67
79
  break;
68
80
  }
@@ -86,13 +98,15 @@ const calculatePosition = (
86
98
  }
87
99
 
88
100
  return {
89
- top,
90
- left};
101
+ top: top + scrollY,
102
+ left: left + scrollX
103
+ };
91
104
  };
92
105
 
93
106
  // Arrow component for tooltips
94
- const TooltipArrow];
95
- className?;
107
+ const TooltipArrow: React.FC<{
108
+ position: TooltipProps['position'];
109
+ className?: string;
96
110
  }> = ({ className = '' }) => {
97
111
  return (
98
112
  <div className={`tooltip__arrow ${className}`} />
@@ -100,7 +114,7 @@ const TooltipArrow];
100
114
  };
101
115
 
102
116
  // Tooltip Content Component
103
- export const TooltipContent= ({
117
+ export const TooltipContent: React.FC<TooltipContentProps> = ({
104
118
  children,
105
119
  className = '',
106
120
  style = {}
@@ -113,12 +127,12 @@ export const TooltipContent= ({
113
127
  };
114
128
 
115
129
  // Main Tooltip Component
116
- export const Tooltip= ({
130
+ export const Tooltip: React.FC<TooltipProps> = ({
117
131
  content,
118
132
  children,
119
133
  position = 'top',
120
134
  trigger = 'hover',
121
- isOpen,
135
+ isOpen: controlledIsOpen,
122
136
  onOpenChange,
123
137
  delay = 200,
124
138
  offset = 8,
@@ -136,7 +150,7 @@ export const Tooltip= ({
136
150
  const colors = themeConfig?.colors || getDefaultColors();
137
151
 
138
152
  const [internalIsOpen, setInternalIsOpen] = useState(false);
139
- const [tooltipPosition, setTooltipPosition] = useState({ top, left});
153
+ const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });
140
154
 
141
155
  const triggerRef = useRef<HTMLElement>(null);
142
156
  const tooltipRef = useRef<HTMLDivElement>(null);
@@ -145,7 +159,7 @@ export const Tooltip= ({
145
159
  const isOpen = controlledIsOpen ?? internalIsOpen;
146
160
 
147
161
  // Handle open/close state changes
148
- const handleOpenChange = useCallback((open) => {
162
+ const handleOpenChange = useCallback((open: boolean) => {
149
163
  if (controlledIsOpen === undefined) {
150
164
  setInternalIsOpen(open);
151
165
  }
@@ -217,9 +231,9 @@ export const Tooltip= ({
217
231
  const getContentClasses = () => {
218
232
  const classes = [
219
233
  'tooltip__content',
220
- size ? `tooltip__content--size-${size}` ,
221
- variant ? `tooltip__content--variant-${variant}` ,
222
- position ? `tooltip__content--position-${position}` ,
234
+ size ? `tooltip__content--size-${size}` : '',
235
+ variant ? `tooltip__content--variant-${variant}` : '',
236
+ position ? `tooltip__content--position-${position}` : '',
223
237
  className
224
238
  ];
225
239
 
@@ -233,7 +247,7 @@ export const Tooltip= ({
233
247
 
234
248
  // Create trigger event handlers
235
249
  const getTriggerProps = () => {
236
- const props= {};
250
+ const props: any = {};
237
251
 
238
252
  if (trigger === 'hover') {
239
253
  props.onMouseEnter = showTooltip;
@@ -251,8 +265,8 @@ export const Tooltip= ({
251
265
  // Clone trigger element with event handlers
252
266
  const triggerElement = cloneElement(children, {
253
267
  ...getTriggerProps(),
254
- ref,
255
- className}`
268
+ ref: triggerRef,
269
+ className: `tooltip__trigger ${children.props.className || ''}`
256
270
  });
257
271
 
258
272
  return (
@@ -267,11 +281,12 @@ export const Tooltip= ({
267
281
  className={getContentClasses()}
268
282
  style={{
269
283
  ...tooltipPosition,
270
- maxWidth=== 'number' ? `${maxWidth}px` ,
284
+ maxWidth: typeof maxWidth === 'number' ? `${maxWidth}px` : maxWidth,
271
285
  zIndex,
272
- backgroundColor,
273
- color,
274
- borderColor}}
286
+ backgroundColor: colors.surface.background,
287
+ color: colors.text.primary,
288
+ borderColor: colors.surface.border
289
+ }}
275
290
  >
276
291
  {content}
277
292
 
@@ -2,194 +2,195 @@ import React from 'react';
2
2
 
3
3
  // Base overlay properties
4
4
  export interface OverlayBaseProps {
5
- className?;
6
- theme?;
7
- onClose?) => void;
5
+ className?: string;
6
+ theme?: 'stan-design' | 'harvey';
7
+ onClose?: () => void;
8
8
  }
9
9
 
10
10
  // Portal Component Types
11
11
  export interface PortalProps {
12
- children;
13
- container?) => Element | null);
14
- className?;
15
- style?;
16
- variant?;
17
- position?;
18
- zIndex?;
19
- debug?;
20
- onMount?) => void;
21
- onUnmount?) => void;
12
+ children: React.ReactNode;
13
+ container?: Element | (() => Element | null);
14
+ className?: string;
15
+ style?: React.CSSProperties;
16
+ variant?: 'default' | 'modal' | 'popover' | 'tooltip' | 'toast' | 'dropdown';
17
+ position?: 'fixed' | 'absolute' | 'relative';
18
+ zIndex?: 'modal' | 'popover' | 'tooltip' | 'toast' | 'dropdown';
19
+ debug?: boolean;
20
+ onMount?: () => void;
21
+ onUnmount?: () => void;
22
22
  }
23
23
 
24
24
  // Overlay Manager Types
25
25
  export interface OverlayState {
26
- id;
27
- zIndex;
26
+ id: string;
27
+ zIndex: number;
28
28
  }
29
29
 
30
30
  export interface OverlayAction {
31
- type;
32
- payload;
33
- zIndex?;
31
+ type: 'ADD_OVERLAY' | 'REMOVE_OVERLAY' | 'UPDATE_Z_INDEX';
32
+ payload: {
33
+ id: string;
34
+ zIndex?: number;
34
35
  };
35
36
  }
36
37
 
37
38
  export interface OverlayManagerProps {
38
- children;
39
- baseZIndex?;
40
- maxOverlays?;
41
- onOverlayChange?]) => void;
39
+ children: React.ReactNode;
40
+ baseZIndex?: number;
41
+ maxOverlays?: number;
42
+ onOverlayChange?: (overlays: OverlayState[]) => void;
42
43
  }
43
44
 
44
45
  // Focus Manager Types
45
46
  export interface FocusManagerProps {
46
- children;
47
- isActive;
48
- onFocusChange?) => void;
49
- trapFocus?;
50
- restoreFocus?;
51
- initialFocus?;
52
- className?;
47
+ children: React.ReactNode;
48
+ isActive: boolean;
49
+ onFocusChange?: (focused: boolean) => void;
50
+ trapFocus?: boolean;
51
+ restoreFocus?: boolean;
52
+ initialFocus?: React.RefObject<HTMLElement>;
53
+ className?: string;
53
54
  }
54
55
 
55
56
  // Backdrop Types
56
57
  export interface BackdropProps {
57
- isVisible;
58
- onClick?) => void;
59
- className?;
60
- theme?;
61
- blur?;
62
- opacity?;
63
- zIndex?;
64
- children?;
58
+ isVisible: boolean;
59
+ onClick?: () => void;
60
+ className?: string;
61
+ theme?: 'stan-design' | 'harvey';
62
+ blur?: boolean;
63
+ opacity?: number;
64
+ zIndex?: number;
65
+ children?: React.ReactNode;
65
66
  }
66
67
 
67
68
  // Modal Component Types
68
69
  export interface ModalProps extends OverlayBaseProps {
69
- isOpen;
70
- onClose) => void;
71
- title?;
72
- children;
73
- size?;
74
- variant?;
75
- closeOnOverlayClick?;
76
- closeOnEscape?;
77
- showBackdrop?;
78
- backdropBlur?;
79
- backdropOpacity?;
80
- trapFocus?;
81
- restoreFocus?;
82
- initialFocus?;
83
- zIndex?;
84
- animation?;
85
- duration?;
86
- loading?;
70
+ isOpen: boolean;
71
+ onClose: () => void;
72
+ title?: string;
73
+ children: React.ReactNode;
74
+ size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';
75
+ variant?: 'default' | 'borderless' | 'elevated' | 'centered';
76
+ closeOnOverlayClick?: boolean;
77
+ closeOnEscape?: boolean;
78
+ showBackdrop?: boolean;
79
+ backdropBlur?: boolean;
80
+ backdropOpacity?: number;
81
+ trapFocus?: boolean;
82
+ restoreFocus?: boolean;
83
+ initialFocus?: React.RefObject<HTMLElement>;
84
+ zIndex?: number;
85
+ animation?: 'fade' | 'slide' | 'scale' | 'none';
86
+ duration?: number;
87
+ loading?: boolean;
87
88
  }
88
89
 
89
90
  export interface ModalHeaderProps {
90
- title?;
91
- subtitle?;
92
- onClose?) => void;
93
- showCloseButton?;
94
- closeButtonLabel?;
95
- className?;
96
- borderless?;
97
- noPadding?;
98
- children?;
91
+ title?: string;
92
+ subtitle?: string;
93
+ onClose?: () => void;
94
+ showCloseButton?: boolean;
95
+ closeButtonLabel?: string;
96
+ className?: string;
97
+ borderless?: boolean;
98
+ noPadding?: boolean;
99
+ children?: React.ReactNode;
99
100
  }
100
101
 
101
102
  export interface ModalBodyProps {
102
- children;
103
- className?;
104
- padding?;
105
- scrollable?;
106
- maxHeight?;
103
+ children: React.ReactNode;
104
+ className?: string;
105
+ padding?: 'none' | 'sm' | 'md' | 'lg';
106
+ scrollable?: boolean;
107
+ maxHeight?: string | number;
107
108
  }
108
109
 
109
110
  export interface ModalFooterProps {
110
- children;
111
- className?;
112
- justify?;
113
- padding?;
114
- borderTop?;
111
+ children: React.ReactNode;
112
+ className?: string;
113
+ justify?: 'start' | 'center' | 'end' | 'between';
114
+ padding?: 'none' | 'sm' | 'md' | 'lg';
115
+ borderTop?: boolean;
115
116
  }
116
117
 
117
118
  // Tooltip Component Types
118
119
  export interface TooltipProps extends OverlayBaseProps {
119
- content;
120
- children;
121
- position?;
122
- trigger?;
123
- isOpen?;
124
- onOpenChange?) => void;
125
- delay?;
126
- offset?;
127
- size?;
128
- variant?;
129
- showArrow?;
130
- maxWidth?;
131
- zIndex?;
132
- animation?;
133
- duration?;
120
+ content: React.ReactNode;
121
+ children: React.ReactElement;
122
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
123
+ trigger?: 'hover' | 'click' | 'focus' | 'manual';
124
+ isOpen?: boolean;
125
+ onOpenChange?: (open: boolean) => void;
126
+ delay?: number;
127
+ offset?: number;
128
+ size?: 'sm' | 'md' | 'lg';
129
+ variant?: 'default' | 'filled' | 'outlined';
130
+ showArrow?: boolean;
131
+ maxWidth?: string | number;
132
+ zIndex?: number;
133
+ animation?: 'fade' | 'slide' | 'scale' | 'none';
134
+ duration?: number;
134
135
  }
135
136
 
136
137
  export interface TooltipContentProps {
137
- children;
138
- className?;
139
- style?;
138
+ children: React.ReactNode;
139
+ className?: string;
140
+ style?: React.CSSProperties;
140
141
  }
141
142
 
142
143
  // Popover Component Types
143
144
  export interface PopoverProps extends OverlayBaseProps {
144
- trigger;
145
- children;
146
- isOpen?;
147
- onOpenChange?) => void;
148
- position?;
149
- triggerType?;
150
- delay?;
151
- offset?;
152
- size?;
153
- variant?;
154
- showArrow?;
155
- maxWidth?;
156
- zIndex?;
157
- animation?;
158
- duration?;
159
- closeOnBlur?;
160
- closeOnEscape?;
145
+ trigger: React.ReactElement;
146
+ children: React.ReactNode;
147
+ isOpen?: boolean;
148
+ onOpenChange?: (open: boolean) => void;
149
+ position?: 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
150
+ triggerType?: 'hover' | 'click' | 'focus' | 'manual';
151
+ delay?: number;
152
+ offset?: number;
153
+ size?: 'sm' | 'md' | 'lg';
154
+ variant?: 'default' | 'filled' | 'outlined';
155
+ showArrow?: boolean;
156
+ maxWidth?: string | number;
157
+ zIndex?: number;
158
+ animation?: 'fade' | 'slide' | 'scale' | 'none';
159
+ duration?: number;
160
+ closeOnBlur?: boolean;
161
+ closeOnEscape?: boolean;
161
162
  }
162
163
 
163
164
  export interface PopoverContentProps {
164
- children;
165
- className?;
166
- style?;
165
+ children: React.ReactNode;
166
+ className?: string;
167
+ style?: React.CSSProperties;
167
168
  }
168
169
 
169
170
  export interface PopoverHeaderProps {
170
- title?;
171
- subtitle?;
172
- onClose?) => void;
173
- showCloseButton?;
174
- closeButtonLabel?;
175
- className?;
176
- borderless?;
177
- noPadding?;
178
- children?;
171
+ title?: string;
172
+ subtitle?: string;
173
+ onClose?: () => void;
174
+ showCloseButton?: boolean;
175
+ closeButtonLabel?: string;
176
+ className?: string;
177
+ borderless?: boolean;
178
+ noPadding?: boolean;
179
+ children?: React.ReactNode;
179
180
  }
180
181
 
181
182
  export interface PopoverBodyProps {
182
- children;
183
- className?;
184
- padding?;
185
- scrollable?;
186
- maxHeight?;
183
+ children: React.ReactNode;
184
+ className?: string;
185
+ padding?: 'none' | 'sm' | 'md' | 'lg';
186
+ scrollable?: boolean;
187
+ maxHeight?: string | number;
187
188
  }
188
189
 
189
190
  export interface PopoverFooterProps {
190
- children;
191
- className?;
192
- justify?;
193
- padding?;
194
- borderTop?;
191
+ children: React.ReactNode;
192
+ className?: string;
193
+ justify?: 'start' | 'center' | 'end' | 'between';
194
+ padding?: 'none' | 'sm' | 'md' | 'lg';
195
+ borderTop?: boolean;
195
196
  }