@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.7 → 0.2.8

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 (462) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/dist/components/ui/accessibility-demo.d.ts +259 -0
  3. package/dist/components/ui/accessibility-demo.esm.js +265 -0
  4. package/dist/components/ui/accessibility-demo.js +265 -0
  5. package/dist/components/ui/advanced-component-architecture-demo.d.ts +718 -0
  6. package/dist/components/ui/advanced-component-architecture-demo.esm.js +860 -0
  7. package/dist/components/ui/advanced-component-architecture-demo.js +860 -0
  8. package/dist/components/ui/advanced-transition-system-demo.d.ts +660 -0
  9. package/dist/components/ui/advanced-transition-system-demo.esm.js +624 -0
  10. package/dist/components/ui/advanced-transition-system-demo.js +624 -0
  11. package/dist/components/ui/advanced-transition-system.d.ts +391 -0
  12. package/dist/components/ui/advanced-transition-system.esm.js +351 -0
  13. package/dist/components/ui/advanced-transition-system.js +351 -0
  14. package/dist/components/ui/animation/animated-container.d.ts +162 -0
  15. package/dist/components/ui/animation/animated-container.esm.js +143 -0
  16. package/dist/components/ui/animation/animated-container.js +143 -0
  17. package/dist/components/ui/animation/index.d.ts +9 -0
  18. package/dist/components/ui/animation/index.esm.js +19 -0
  19. package/dist/components/ui/animation/index.js +19 -0
  20. package/dist/components/ui/animation/staggered-container.d.ts +64 -0
  21. package/dist/components/ui/animation/staggered-container.esm.js +59 -0
  22. package/dist/components/ui/animation/staggered-container.js +59 -0
  23. package/dist/components/ui/animation-demo.d.ts +238 -0
  24. package/dist/components/ui/animation-demo.esm.js +218 -0
  25. package/dist/components/ui/animation-demo.js +218 -0
  26. package/dist/components/ui/badge.d.ts +28 -0
  27. package/dist/components/ui/badge.esm.js +30 -0
  28. package/dist/components/ui/badge.js +30 -0
  29. package/dist/components/ui/battery-conscious-animation-demo.d.ts +561 -0
  30. package/dist/components/ui/battery-conscious-animation-demo.esm.js +533 -0
  31. package/dist/components/ui/battery-conscious-animation-demo.js +533 -0
  32. package/dist/components/ui/border-radius-shadow-demo.d.ts +183 -0
  33. package/dist/components/ui/border-radius-shadow-demo.esm.js +176 -0
  34. package/dist/components/ui/border-radius-shadow-demo.js +176 -0
  35. package/dist/components/ui/button.d.ts +33 -0
  36. package/dist/components/ui/button.esm.js +30 -0
  37. package/dist/components/ui/button.js +30 -0
  38. package/dist/components/ui/card.d.ts +205 -0
  39. package/dist/components/ui/card.esm.js +182 -0
  40. package/dist/components/ui/card.js +182 -0
  41. package/dist/components/ui/checkbox.d.ts +26 -0
  42. package/dist/components/ui/checkbox.esm.js +30 -0
  43. package/dist/components/ui/checkbox.js +30 -0
  44. package/dist/components/ui/color-preview.d.ts +402 -0
  45. package/dist/components/ui/color-preview.esm.js +388 -0
  46. package/dist/components/ui/color-preview.js +388 -0
  47. package/dist/components/ui/data-display/chart.d.ts +646 -0
  48. package/dist/components/ui/data-display/chart.esm.js +625 -0
  49. package/dist/components/ui/data-display/chart.js +625 -0
  50. package/dist/components/ui/data-display/data-grid-simple.d.ts +73 -0
  51. package/dist/components/ui/data-display/data-grid-simple.esm.js +76 -0
  52. package/dist/components/ui/data-display/data-grid-simple.js +76 -0
  53. package/dist/components/ui/data-display/data-grid.d.ts +670 -0
  54. package/dist/components/ui/data-display/data-grid.esm.js +667 -0
  55. package/dist/components/ui/data-display/data-grid.js +667 -0
  56. package/dist/components/ui/data-display/list.d.ts +448 -0
  57. package/dist/components/ui/data-display/list.esm.js +448 -0
  58. package/dist/components/ui/data-display/list.js +448 -0
  59. package/dist/components/ui/data-display/table.d.ts +472 -0
  60. package/dist/components/ui/data-display/table.esm.js +474 -0
  61. package/dist/components/ui/data-display/table.js +474 -0
  62. package/dist/components/ui/data-display/timeline.d.ts +433 -0
  63. package/dist/components/ui/data-display/timeline.esm.js +436 -0
  64. package/dist/components/ui/data-display/timeline.js +436 -0
  65. package/dist/components/ui/data-display/tree.d.ts +594 -0
  66. package/dist/components/ui/data-display/tree.esm.js +570 -0
  67. package/dist/components/ui/data-display/tree.js +570 -0
  68. package/dist/components/ui/data-display/types.d.ts +534 -0
  69. package/dist/components/ui/data-display/types.esm.js +511 -0
  70. package/dist/components/ui/data-display/types.js +511 -0
  71. package/dist/components/ui/enterprise-mobile-experience-demo.d.ts +735 -0
  72. package/dist/components/ui/enterprise-mobile-experience-demo.esm.js +699 -0
  73. package/dist/components/ui/enterprise-mobile-experience-demo.js +699 -0
  74. package/dist/components/ui/enterprise-mobile-experience.d.ts +461 -0
  75. package/dist/components/ui/enterprise-mobile-experience.esm.js +413 -0
  76. package/dist/components/ui/enterprise-mobile-experience.js +413 -0
  77. package/dist/components/ui/feedback/alert.d.ts +154 -0
  78. package/dist/components/ui/feedback/alert.esm.js +150 -0
  79. package/dist/components/ui/feedback/alert.js +150 -0
  80. package/dist/components/ui/feedback/progress.d.ts +288 -0
  81. package/dist/components/ui/feedback/progress.esm.js +269 -0
  82. package/dist/components/ui/feedback/progress.js +269 -0
  83. package/dist/components/ui/feedback/skeleton.d.ts +182 -0
  84. package/dist/components/ui/feedback/skeleton.esm.js +175 -0
  85. package/dist/components/ui/feedback/skeleton.js +175 -0
  86. package/dist/components/ui/feedback/toast.d.ts +277 -0
  87. package/dist/components/ui/feedback/toast.esm.js +256 -0
  88. package/dist/components/ui/feedback/toast.js +256 -0
  89. package/dist/components/ui/feedback/types.d.ts +123 -0
  90. package/dist/components/ui/feedback/types.esm.js +125 -0
  91. package/dist/components/ui/feedback/types.js +125 -0
  92. package/dist/components/ui/font-preview.d.ts +282 -0
  93. package/dist/components/ui/font-preview.esm.js +286 -0
  94. package/dist/components/ui/font-preview.js +286 -0
  95. package/dist/components/ui/form-demo.d.ts +544 -0
  96. package/dist/components/ui/form-demo.esm.js +516 -0
  97. package/dist/components/ui/form-demo.js +516 -0
  98. package/dist/components/ui/hardware-acceleration-demo.d.ts +540 -0
  99. package/dist/components/ui/hardware-acceleration-demo.esm.js +497 -0
  100. package/dist/components/ui/hardware-acceleration-demo.js +497 -0
  101. package/dist/components/ui/input.d.ts +33 -0
  102. package/dist/components/ui/input.esm.js +32 -0
  103. package/dist/components/ui/input.js +32 -0
  104. package/dist/components/ui/label.d.ts +13 -0
  105. package/dist/components/ui/label.esm.js +16 -0
  106. package/dist/components/ui/label.js +16 -0
  107. package/dist/components/ui/layout-demo.d.ts +352 -0
  108. package/dist/components/ui/layout-demo.esm.js +342 -0
  109. package/dist/components/ui/layout-demo.js +342 -0
  110. package/dist/components/ui/layouts/adaptive-layout.d.ts +132 -0
  111. package/dist/components/ui/layouts/adaptive-layout.esm.js +120 -0
  112. package/dist/components/ui/layouts/adaptive-layout.js +120 -0
  113. package/dist/components/ui/layouts/desktop-layout.d.ts +219 -0
  114. package/dist/components/ui/layouts/desktop-layout.esm.js +204 -0
  115. package/dist/components/ui/layouts/desktop-layout.js +204 -0
  116. package/dist/components/ui/layouts/index.d.ts +5 -0
  117. package/dist/components/ui/layouts/index.esm.js +10 -0
  118. package/dist/components/ui/layouts/index.js +10 -0
  119. package/dist/components/ui/layouts/mobile-layout.d.ts +158 -0
  120. package/dist/components/ui/layouts/mobile-layout.esm.js +152 -0
  121. package/dist/components/ui/layouts/mobile-layout.js +152 -0
  122. package/dist/components/ui/layouts/tablet-layout.d.ts +192 -0
  123. package/dist/components/ui/layouts/tablet-layout.esm.js +183 -0
  124. package/dist/components/ui/layouts/tablet-layout.js +183 -0
  125. package/dist/components/ui/mobile-form-validation.d.ts +439 -0
  126. package/dist/components/ui/mobile-form-validation.esm.js +418 -0
  127. package/dist/components/ui/mobile-form-validation.js +418 -0
  128. package/dist/components/ui/mobile-input-demo.d.ts +197 -0
  129. package/dist/components/ui/mobile-input-demo.esm.js +195 -0
  130. package/dist/components/ui/mobile-input-demo.js +195 -0
  131. package/dist/components/ui/mobile-input.d.ts +273 -0
  132. package/dist/components/ui/mobile-input.esm.js +216 -0
  133. package/dist/components/ui/mobile-input.js +216 -0
  134. package/dist/components/ui/mobile-skeleton-loading-demo.d.ts +628 -0
  135. package/dist/components/ui/mobile-skeleton-loading-demo.esm.js +621 -0
  136. package/dist/components/ui/mobile-skeleton-loading-demo.js +621 -0
  137. package/dist/components/ui/navigation/breadcrumb.d.ts +149 -0
  138. package/dist/components/ui/navigation/breadcrumb.esm.js +155 -0
  139. package/dist/components/ui/navigation/breadcrumb.js +155 -0
  140. package/dist/components/ui/navigation/index.d.ts +25 -0
  141. package/dist/components/ui/navigation/index.esm.js +14 -0
  142. package/dist/components/ui/navigation/index.js +14 -0
  143. package/dist/components/ui/navigation/menu.d.ts +366 -0
  144. package/dist/components/ui/navigation/menu.esm.js +360 -0
  145. package/dist/components/ui/navigation/menu.js +360 -0
  146. package/dist/components/ui/navigation/navigation-demo.d.ts +169 -0
  147. package/dist/components/ui/navigation/navigation-demo.esm.js +317 -0
  148. package/dist/components/ui/navigation/navigation-demo.js +317 -0
  149. package/dist/components/ui/navigation/pagination.d.ts +261 -0
  150. package/dist/components/ui/navigation/pagination.esm.js +260 -0
  151. package/dist/components/ui/navigation/pagination.js +260 -0
  152. package/dist/components/ui/navigation/sidebar.d.ts +375 -0
  153. package/dist/components/ui/navigation/sidebar.esm.js +369 -0
  154. package/dist/components/ui/navigation/sidebar.js +369 -0
  155. package/dist/components/ui/navigation/stepper.d.ts +294 -0
  156. package/dist/components/ui/navigation/stepper.esm.js +292 -0
  157. package/dist/components/ui/navigation/stepper.js +292 -0
  158. package/dist/components/ui/navigation/tabs.d.ts +196 -0
  159. package/dist/components/ui/navigation/tabs.esm.js +194 -0
  160. package/dist/components/ui/navigation/tabs.js +194 -0
  161. package/dist/components/ui/navigation/types.d.ts +293 -0
  162. package/dist/components/ui/navigation/types.esm.js +298 -0
  163. package/dist/components/ui/navigation/types.js +298 -0
  164. package/dist/components/ui/overlay/backdrop.d.ts +79 -0
  165. package/dist/components/ui/overlay/backdrop.esm.js +80 -0
  166. package/dist/components/ui/overlay/backdrop.js +80 -0
  167. package/dist/components/ui/overlay/focus-manager.d.ts +141 -0
  168. package/dist/components/ui/overlay/focus-manager.esm.js +141 -0
  169. package/dist/components/ui/overlay/focus-manager.js +141 -0
  170. package/dist/components/ui/overlay/index.d.ts +27 -0
  171. package/dist/components/ui/overlay/index.esm.js +16 -0
  172. package/dist/components/ui/overlay/index.js +16 -0
  173. package/dist/components/ui/overlay/modal.d.ts +262 -0
  174. package/dist/components/ui/overlay/modal.esm.js +266 -0
  175. package/dist/components/ui/overlay/modal.js +266 -0
  176. package/dist/components/ui/overlay/overlay-manager.d.ts +107 -0
  177. package/dist/components/ui/overlay/overlay-manager.esm.js +105 -0
  178. package/dist/components/ui/overlay/overlay-manager.js +105 -0
  179. package/dist/components/ui/overlay/popover.d.ts +450 -0
  180. package/dist/components/ui/overlay/popover.esm.js +446 -0
  181. package/dist/components/ui/overlay/popover.js +446 -0
  182. package/dist/components/ui/overlay/portal.d.ts +75 -0
  183. package/dist/components/ui/overlay/portal.esm.js +79 -0
  184. package/dist/components/ui/overlay/portal.js +79 -0
  185. package/dist/components/ui/overlay/tooltip.d.ts +298 -0
  186. package/dist/components/ui/overlay/tooltip.esm.js +288 -0
  187. package/dist/components/ui/overlay/tooltip.js +288 -0
  188. package/dist/components/ui/overlay/types.d.ts +194 -0
  189. package/dist/components/ui/overlay/types.esm.js +195 -0
  190. package/dist/components/ui/overlay/types.js +195 -0
  191. package/dist/components/ui/performance-demo.d.ts +583 -0
  192. package/dist/components/ui/performance-demo.esm.js +549 -0
  193. package/dist/components/ui/performance-demo.js +549 -0
  194. package/dist/components/ui/semantic-input-system-demo.d.ts +490 -0
  195. package/dist/components/ui/semantic-input-system-demo.esm.js +465 -0
  196. package/dist/components/ui/semantic-input-system-demo.js +465 -0
  197. package/dist/components/ui/theme-customizer.d.ts +378 -0
  198. package/dist/components/ui/theme-customizer.esm.js +354 -0
  199. package/dist/components/ui/theme-customizer.js +354 -0
  200. package/dist/components/ui/theme-preview.d.ts +305 -0
  201. package/dist/components/ui/theme-preview.esm.js +258 -0
  202. package/dist/components/ui/theme-preview.js +258 -0
  203. package/dist/components/ui/theme-switcher.d.ts +259 -0
  204. package/dist/components/ui/theme-switcher.esm.js +238 -0
  205. package/dist/components/ui/theme-switcher.js +238 -0
  206. package/dist/components/ui/theme-toggle.d.ts +34 -0
  207. package/dist/components/ui/theme-toggle.esm.js +38 -0
  208. package/dist/components/ui/theme-toggle.js +38 -0
  209. package/dist/components/ui/token-demo.d.ts +188 -0
  210. package/dist/components/ui/token-demo.esm.js +183 -0
  211. package/dist/components/ui/token-demo.js +183 -0
  212. package/dist/components/ui/touch-demo.d.ts +455 -0
  213. package/dist/components/ui/touch-demo.esm.js +433 -0
  214. package/dist/components/ui/touch-demo.js +433 -0
  215. package/dist/components/ui/touch-friendly-interface-demo.d.ts +512 -0
  216. package/dist/components/ui/touch-friendly-interface-demo.esm.js +481 -0
  217. package/dist/components/ui/touch-friendly-interface-demo.js +481 -0
  218. package/dist/components/ui/touch-friendly-interface.d.ts +292 -0
  219. package/dist/components/ui/touch-friendly-interface.esm.js +272 -0
  220. package/dist/components/ui/touch-friendly-interface.js +272 -0
  221. package/dist/hooks/index.d.ts +161 -0
  222. package/dist/hooks/index.esm.js +190 -0
  223. package/dist/hooks/index.js +190 -0
  224. package/dist/hooks/use-accessibility-support.d.ts +516 -0
  225. package/dist/hooks/use-accessibility-support.esm.js +488 -0
  226. package/dist/hooks/use-accessibility-support.js +488 -0
  227. package/dist/hooks/use-adaptive-layout.d.ts +287 -0
  228. package/dist/hooks/use-adaptive-layout.esm.js +266 -0
  229. package/dist/hooks/use-adaptive-layout.js +266 -0
  230. package/dist/hooks/use-advanced-patterns.d.ts +292 -0
  231. package/dist/hooks/use-advanced-patterns.esm.js +279 -0
  232. package/dist/hooks/use-advanced-patterns.js +279 -0
  233. package/dist/hooks/use-advanced-transition-system.d.ts +390 -0
  234. package/dist/hooks/use-advanced-transition-system.esm.js +352 -0
  235. package/dist/hooks/use-advanced-transition-system.js +352 -0
  236. package/dist/hooks/use-animation-profile.d.ts +285 -0
  237. package/dist/hooks/use-animation-profile.esm.js +259 -0
  238. package/dist/hooks/use-animation-profile.js +259 -0
  239. package/dist/hooks/use-battery-animations.d.ts +382 -0
  240. package/dist/hooks/use-battery-animations.esm.js +359 -0
  241. package/dist/hooks/use-battery-animations.js +359 -0
  242. package/dist/hooks/use-battery-conscious-loading.d.ts +473 -0
  243. package/dist/hooks/use-battery-conscious-loading.esm.js +432 -0
  244. package/dist/hooks/use-battery-conscious-loading.js +432 -0
  245. package/dist/hooks/use-battery-optimization.d.ts +328 -0
  246. package/dist/hooks/use-battery-optimization.esm.js +307 -0
  247. package/dist/hooks/use-battery-optimization.js +307 -0
  248. package/dist/hooks/use-battery-status.d.ts +297 -0
  249. package/dist/hooks/use-battery-status.esm.js +277 -0
  250. package/dist/hooks/use-battery-status.js +277 -0
  251. package/dist/hooks/use-component-performance.d.ts +342 -0
  252. package/dist/hooks/use-component-performance.esm.js +329 -0
  253. package/dist/hooks/use-component-performance.js +329 -0
  254. package/dist/hooks/use-device-loading-states.d.ts +456 -0
  255. package/dist/hooks/use-device-loading-states.esm.js +416 -0
  256. package/dist/hooks/use-device-loading-states.js +416 -0
  257. package/dist/hooks/use-device.d.ts +104 -0
  258. package/dist/hooks/use-device.esm.js +99 -0
  259. package/dist/hooks/use-device.js +99 -0
  260. package/dist/hooks/use-enterprise-mobile-experience.d.ts +486 -0
  261. package/dist/hooks/use-enterprise-mobile-experience.esm.js +439 -0
  262. package/dist/hooks/use-enterprise-mobile-experience.js +439 -0
  263. package/dist/hooks/use-form-feedback.d.ts +401 -0
  264. package/dist/hooks/use-form-feedback.esm.js +360 -0
  265. package/dist/hooks/use-form-feedback.js +360 -0
  266. package/dist/hooks/use-form-performance.d.ts +511 -0
  267. package/dist/hooks/use-form-performance.esm.js +478 -0
  268. package/dist/hooks/use-form-performance.js +478 -0
  269. package/dist/hooks/use-frame-rate.d.ts +249 -0
  270. package/dist/hooks/use-frame-rate.esm.js +232 -0
  271. package/dist/hooks/use-frame-rate.js +232 -0
  272. package/dist/hooks/use-gestures.d.ts +336 -0
  273. package/dist/hooks/use-gestures.esm.js +314 -0
  274. package/dist/hooks/use-gestures.js +314 -0
  275. package/dist/hooks/use-hardware-acceleration.d.ts +339 -0
  276. package/dist/hooks/use-hardware-acceleration.esm.js +313 -0
  277. package/dist/hooks/use-hardware-acceleration.js +313 -0
  278. package/dist/hooks/use-input-accessibility.d.ts +451 -0
  279. package/dist/hooks/use-input-accessibility.esm.js +417 -0
  280. package/dist/hooks/use-input-accessibility.js +417 -0
  281. package/dist/hooks/use-input-performance.d.ts +503 -0
  282. package/dist/hooks/use-input-performance.esm.js +471 -0
  283. package/dist/hooks/use-input-performance.js +471 -0
  284. package/dist/hooks/use-layout-performance.d.ts +317 -0
  285. package/dist/hooks/use-layout-performance.esm.js +298 -0
  286. package/dist/hooks/use-layout-performance.js +298 -0
  287. package/dist/hooks/use-loading-accessibility.d.ts +532 -0
  288. package/dist/hooks/use-loading-accessibility.esm.js +495 -0
  289. package/dist/hooks/use-loading-accessibility.js +495 -0
  290. package/dist/hooks/use-loading-performance.d.ts +471 -0
  291. package/dist/hooks/use-loading-performance.esm.js +449 -0
  292. package/dist/hooks/use-loading-performance.js +449 -0
  293. package/dist/hooks/use-memory-usage.d.ts +285 -0
  294. package/dist/hooks/use-memory-usage.esm.js +268 -0
  295. package/dist/hooks/use-memory-usage.js +268 -0
  296. package/dist/hooks/use-mobile-form-layout.d.ts +462 -0
  297. package/dist/hooks/use-mobile-form-layout.esm.js +427 -0
  298. package/dist/hooks/use-mobile-form-layout.js +427 -0
  299. package/dist/hooks/use-mobile-form-validation.d.ts +516 -0
  300. package/dist/hooks/use-mobile-form-validation.esm.js +451 -0
  301. package/dist/hooks/use-mobile-form-validation.js +451 -0
  302. package/dist/hooks/use-mobile-keyboard-optimization.d.ts +469 -0
  303. package/dist/hooks/use-mobile-keyboard-optimization.esm.js +431 -0
  304. package/dist/hooks/use-mobile-keyboard-optimization.js +431 -0
  305. package/dist/hooks/use-mobile-layout.d.ts +300 -0
  306. package/dist/hooks/use-mobile-layout.esm.js +280 -0
  307. package/dist/hooks/use-mobile-layout.js +280 -0
  308. package/dist/hooks/use-mobile-optimization.d.ts +404 -0
  309. package/dist/hooks/use-mobile-optimization.esm.js +378 -0
  310. package/dist/hooks/use-mobile-optimization.js +378 -0
  311. package/dist/hooks/use-mobile-skeleton.d.ts +399 -0
  312. package/dist/hooks/use-mobile-skeleton.esm.js +369 -0
  313. package/dist/hooks/use-mobile-skeleton.js +369 -0
  314. package/dist/hooks/use-mobile-touch.d.ts +412 -0
  315. package/dist/hooks/use-mobile-touch.esm.js +379 -0
  316. package/dist/hooks/use-mobile-touch.js +379 -0
  317. package/dist/hooks/use-performance-throttling.d.ts +346 -0
  318. package/dist/hooks/use-performance-throttling.esm.js +324 -0
  319. package/dist/hooks/use-performance-throttling.js +324 -0
  320. package/dist/hooks/use-performance.d.ts +314 -0
  321. package/dist/hooks/use-performance.esm.js +278 -0
  322. package/dist/hooks/use-performance.js +278 -0
  323. package/dist/hooks/use-reusable-architecture.d.ts +412 -0
  324. package/dist/hooks/use-reusable-architecture.esm.js +385 -0
  325. package/dist/hooks/use-reusable-architecture.js +385 -0
  326. package/dist/hooks/use-semantic-input-types.d.ts +354 -0
  327. package/dist/hooks/use-semantic-input-types.esm.js +315 -0
  328. package/dist/hooks/use-semantic-input-types.js +315 -0
  329. package/dist/hooks/use-semantic-input.d.ts +563 -0
  330. package/dist/hooks/use-semantic-input.esm.js +513 -0
  331. package/dist/hooks/use-semantic-input.js +513 -0
  332. package/dist/hooks/use-tablet-layout.d.ts +382 -0
  333. package/dist/hooks/use-tablet-layout.esm.js +355 -0
  334. package/dist/hooks/use-tablet-layout.js +355 -0
  335. package/dist/hooks/use-touch-friendly-input.d.ts +520 -0
  336. package/dist/hooks/use-touch-friendly-input.esm.js +480 -0
  337. package/dist/hooks/use-touch-friendly-input.js +480 -0
  338. package/dist/hooks/use-touch-friendly-interface.d.ts +329 -0
  339. package/dist/hooks/use-touch-friendly-interface.esm.js +299 -0
  340. package/dist/hooks/use-touch-friendly-interface.js +299 -0
  341. package/dist/hooks/use-touch-optimization.d.ts +373 -0
  342. package/dist/hooks/use-touch-optimization.esm.js +348 -0
  343. package/dist/hooks/use-touch-optimization.js +348 -0
  344. package/dist/lib/utils.d.ts +3 -0
  345. package/dist/lib/utils.esm.js +6 -0
  346. package/dist/lib/utils.js +6 -0
  347. package/dist/plugins/theme-css-generator.d.ts +345 -0
  348. package/dist/plugins/theme-css-generator.esm.js +305 -0
  349. package/dist/plugins/theme-css-generator.js +305 -0
  350. package/dist/styles.css +1 -1
  351. package/dist/themes/ThemeContext.d.ts +27 -0
  352. package/dist/themes/ThemeContext.esm.js +31 -0
  353. package/dist/themes/ThemeContext.js +31 -0
  354. package/dist/themes/ThemeProvider.d.ts +222 -0
  355. package/dist/themes/ThemeProvider.esm.js +229 -0
  356. package/dist/themes/ThemeProvider.js +229 -0
  357. package/dist/themes/accessibility/index.d.ts +7 -0
  358. package/dist/themes/accessibility/index.esm.js +27 -0
  359. package/dist/themes/accessibility/index.js +27 -0
  360. package/dist/themes/accessibility.d.ts +259 -0
  361. package/dist/themes/accessibility.esm.js +220 -0
  362. package/dist/themes/accessibility.js +220 -0
  363. package/dist/themes/aria-patterns.d.ts +418 -0
  364. package/dist/themes/aria-patterns.esm.js +384 -0
  365. package/dist/themes/aria-patterns.js +384 -0
  366. package/dist/themes/base-themes.d.ts +34 -0
  367. package/dist/themes/base-themes.esm.js +52 -0
  368. package/dist/themes/base-themes.js +52 -0
  369. package/dist/themes/colorManager.d.ts +327 -0
  370. package/dist/themes/colorManager.esm.js +362 -0
  371. package/dist/themes/colorManager.js +362 -0
  372. package/dist/themes/examples/dark-theme.d.ts +139 -0
  373. package/dist/themes/examples/dark-theme.esm.js +124 -0
  374. package/dist/themes/examples/dark-theme.js +124 -0
  375. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  376. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  377. package/dist/themes/examples/minimal-theme.js +86 -0
  378. package/dist/themes/focus-management.d.ts +699 -0
  379. package/dist/themes/focus-management.esm.js +642 -0
  380. package/dist/themes/focus-management.js +642 -0
  381. package/dist/themes/fontLoader.d.ts +163 -0
  382. package/dist/themes/fontLoader.esm.js +192 -0
  383. package/dist/themes/fontLoader.js +192 -0
  384. package/dist/themes/high-contrast.d.ts +619 -0
  385. package/dist/themes/high-contrast.esm.js +573 -0
  386. package/dist/themes/high-contrast.js +573 -0
  387. package/dist/themes/index.d.ts +11 -0
  388. package/dist/themes/index.esm.js +19 -0
  389. package/dist/themes/index.js +19 -0
  390. package/dist/themes/inheritance.d.ts +160 -0
  391. package/dist/themes/inheritance.esm.js +219 -0
  392. package/dist/themes/inheritance.js +219 -0
  393. package/dist/themes/keyboard-navigation.d.ts +550 -0
  394. package/dist/themes/keyboard-navigation.esm.js +521 -0
  395. package/dist/themes/keyboard-navigation.js +521 -0
  396. package/dist/themes/motion-reduction.d.ts +660 -0
  397. package/dist/themes/motion-reduction.esm.js +602 -0
  398. package/dist/themes/motion-reduction.js +602 -0
  399. package/dist/themes/navigation.d.ts +232 -0
  400. package/dist/themes/navigation.esm.js +238 -0
  401. package/dist/themes/navigation.js +238 -0
  402. package/dist/themes/screen-reader.d.ts +645 -0
  403. package/dist/themes/screen-reader.esm.js +580 -0
  404. package/dist/themes/screen-reader.js +580 -0
  405. package/dist/themes/systemThemeDetector.d.ts +148 -0
  406. package/dist/themes/systemThemeDetector.esm.js +174 -0
  407. package/dist/themes/systemThemeDetector.js +174 -0
  408. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  409. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  410. package/dist/themes/themeCSSUpdater.js +250 -0
  411. package/dist/themes/themePersistence.d.ts +192 -0
  412. package/dist/themes/themePersistence.esm.js +217 -0
  413. package/dist/themes/themePersistence.js +217 -0
  414. package/dist/themes/themes/stan-design.d.ts +678 -0
  415. package/dist/themes/themes/stan-design.esm.js +518 -0
  416. package/dist/themes/themes/stan-design.js +518 -0
  417. package/dist/themes/types.d.ts +454 -0
  418. package/dist/themes/types.esm.js +446 -0
  419. package/dist/themes/types.js +446 -0
  420. package/dist/themes/useSystemTheme.d.ts +43 -0
  421. package/dist/themes/useSystemTheme.esm.js +48 -0
  422. package/dist/themes/useSystemTheme.js +48 -0
  423. package/dist/themes/useTheme.d.ts +20 -0
  424. package/dist/themes/useTheme.esm.js +87 -0
  425. package/dist/themes/useTheme.js +87 -0
  426. package/dist/themes/validation.d.ts +406 -0
  427. package/dist/themes/validation.esm.js +411 -0
  428. package/dist/themes/validation.js +411 -0
  429. package/dist/tokens/index.d.ts +25 -0
  430. package/dist/tokens/index.esm.js +23 -0
  431. package/dist/tokens/index.js +23 -0
  432. package/dist/tokens/tokenExporter.d.ts +336 -0
  433. package/dist/tokens/tokenExporter.esm.js +371 -0
  434. package/dist/tokens/tokenExporter.js +371 -0
  435. package/dist/tokens/tokenGenerator.d.ts +250 -0
  436. package/dist/tokens/tokenGenerator.esm.js +267 -0
  437. package/dist/tokens/tokenGenerator.js +267 -0
  438. package/dist/tokens/tokenManager.d.ts +194 -0
  439. package/dist/tokens/tokenManager.esm.js +235 -0
  440. package/dist/tokens/tokenManager.js +235 -0
  441. package/dist/tokens/tokenValidator.d.ts +488 -0
  442. package/dist/tokens/tokenValidator.esm.js +497 -0
  443. package/dist/tokens/tokenValidator.js +497 -0
  444. package/dist/tokens/types.d.ts +78 -0
  445. package/dist/tokens/types.esm.js +64 -0
  446. package/dist/tokens/types.js +64 -0
  447. package/dist/utils/bundle-analyzer.d.ts +260 -0
  448. package/dist/utils/bundle-analyzer.esm.js +242 -0
  449. package/dist/utils/bundle-analyzer.js +242 -0
  450. package/dist/utils/bundle-splitting.d.ts +483 -0
  451. package/dist/utils/bundle-splitting.esm.js +458 -0
  452. package/dist/utils/bundle-splitting.js +458 -0
  453. package/dist/utils/lazy-loading.d.ts +437 -0
  454. package/dist/utils/lazy-loading.esm.js +415 -0
  455. package/dist/utils/lazy-loading.js +415 -0
  456. package/dist/utils/performance-monitor.d.ts +513 -0
  457. package/dist/utils/performance-monitor.esm.js +472 -0
  458. package/dist/utils/performance-monitor.js +472 -0
  459. package/dist/utils/tree-shaking.d.ts +274 -0
  460. package/dist/utils/tree-shaking.esm.js +266 -0
  461. package/dist/utils/tree-shaking.js +266 -0
  462. package/package.json +1 -1
@@ -0,0 +1,222 @@
1
+ export const ThemeProvider: React.FC<ThemeProviderProps> = ({
2
+ children,
3
+ defaultTheme = 'stan-design',
4
+ themes = defaultThemes,
5
+ persistTheme = true,
6
+ storageKey = 'stan-design-theme'
7
+ }) => {
8
+ // State management
9
+ const [currentTheme, setCurrentThemeState] = useState<string>(defaultTheme);
10
+ const [currentThemeConfig, setCurrentThemeConfig] = useState<CompleteThemeConfig | null>(null);
11
+ const [availableThemes, setAvailableThemes] = useState<string[]>([]);
12
+ const [isLoading, setIsLoading] = useState(true);
13
+ const [error, setError] = useState<string | null>(null);
14
+
15
+ // Enhance theme colors using ColorManager
16
+ const enhanceThemeColors = useCallback((themeConfig: CompleteThemeConfig): CompleteThemeConfig => {
17
+ try {
18
+ const enhanced = { ...themeConfig };
19
+
20
+ // Enhance primary colors if they exist
21
+ if (enhanced.colors?.primary?.[500]) {
22
+ const baseColor = enhanced.colors.primary[500];
23
+
24
+ // Generate additional color variations if they don't exist
25
+ if (!enhanced.colors.primary.light || !enhanced.colors.primary.dark || !enhanced.colors.primary.contrast) {
26
+ const enhancedScale = ColorManager.generateColorScale({
27
+ baseColor,
28
+ generateShades: true,
29
+ generateContrast: true
30
+ });
31
+
32
+ enhanced.colors.primary = {
33
+ ...enhanced.colors.primary,
34
+ light: enhancedScale.light,
35
+ dark: enhancedScale.dark,
36
+ contrast: enhancedScale.contrast
37
+ };
38
+ }
39
+ }
40
+
41
+ // Enhance semantic colors if they don't exist
42
+ if (enhanced.colors?.primary?.[500] && !enhanced.colors.semantic?.success) {
43
+ const semanticColors = ColorManager.generateSemanticColors(enhanced.colors.primary[500]);
44
+ enhanced.colors.semantic = {
45
+ ...enhanced.colors.semantic,
46
+ ...semanticColors
47
+ };
48
+ }
49
+
50
+ // Enhance neutral colors if they don't exist
51
+ if (!enhanced.colors?.neutral?.[500]) {
52
+ enhanced.colors.neutral = ColorManager.generateNeutralColors('#6b7280');
53
+ }
54
+
55
+ return enhanced;
56
+ } catch (err) {
57
+ console.warn('Failed to enhance theme colors:', err);
58
+ return themeConfig;
59
+ }
60
+ }, []);
61
+
62
+ // Initialize themes in the inheritance manager
63
+ useEffect(() => {
64
+ try {
65
+ // Register all provided themes
66
+ Object.entries(themes).forEach(([name, theme]) => {
67
+ try {
68
+ themeInheritanceManager.registerTheme(name, theme);
69
+ } catch (err) {
70
+ console.warn(`Failed to register theme '${name}':`, err);
71
+ }
72
+ });
73
+
74
+ // Set available themes
75
+ setAvailableThemes(Object.keys(themes));
76
+
77
+ // Load persisted theme or use default
78
+ if (persistTheme) {
79
+ const persistence = createThemePersistence({
80
+ storageKey,
81
+ defaultTheme,
82
+ enableSystemPreference: true
83
+ });
84
+ const persistedTheme = persistence.getStoredTheme();
85
+ if (persistedTheme && themes[persistedTheme]) {
86
+ setCurrentThemeState(persistedTheme);
87
+ }
88
+ }
89
+ } catch (err) {
90
+ setError(`Failed to initialize themes: ${err instanceof Error ? err.message : 'Unknown error'}`);
91
+ } finally {
92
+ setIsLoading(false);
93
+ }
94
+ }, [themes, persistTheme, storageKey, defaultTheme]);
95
+
96
+ // Update current theme config when theme changes
97
+ useEffect(() => {
98
+ try {
99
+ const themeConfig = themeInheritanceManager.getCompleteTheme(currentTheme);
100
+
101
+ if (themeConfig) {
102
+ // Enhance theme colors using ColorManager
103
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
104
+ setCurrentThemeConfig(enhancedThemeConfig);
105
+
106
+ // Apply the enhanced theme to CSS variables and load fonts
107
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
108
+ fontLoader.loadThemeFonts(enhancedThemeConfig.fonts).catch(err => {
109
+ console.warn(`Failed to load fonts for theme '${currentTheme}':`, err);
110
+ });
111
+ }
112
+
113
+ setError(null);
114
+ } catch (err) {
115
+ const errorMessage = `Failed to load theme '${currentTheme}': ${err instanceof Error ? err.message : 'Unknown error'}`;
116
+ setError(errorMessage);
117
+ setCurrentThemeConfig(null);
118
+ console.error(errorMessage, err);
119
+ }
120
+ }, [currentTheme, enhanceThemeColors]);
121
+
122
+ // Theme switching function
123
+ const setTheme = useCallback(async (themeName: string) => {
124
+ if (!themes[themeName]) {
125
+ setError(`Theme '${themeName}' not found`);
126
+ return;
127
+ }
128
+
129
+ try {
130
+ // Get the complete theme configuration
131
+ const themeConfig = themeInheritanceManager.getCompleteTheme(themeName);
132
+
133
+ if (!themeConfig) {
134
+ throw new Error(`Theme configuration not found for '${themeName}'`);
135
+ }
136
+
137
+ // Enhance theme colors using ColorManager
138
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
139
+
140
+ // Apply enhanced CSS variables to the document
141
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
142
+
143
+ // Load fonts for the theme
144
+ await fontLoader.loadThemeFonts(enhancedThemeConfig.fonts);
145
+
146
+ // Update state
147
+ setCurrentThemeState(themeName);
148
+ setCurrentThemeConfig(enhancedThemeConfig);
149
+
150
+ // Persist theme preference
151
+ if (persistTheme) {
152
+ const persistence = createThemePersistence({ storageKey });
153
+ persistence.setStoredTheme(themeName);
154
+ }
155
+
156
+ setError(null);
157
+ } catch (err) {
158
+ const errorMessage = `Failed to switch to theme '${themeName}': ${err instanceof Error ? err.message : 'Unknown error'}`;
159
+ setError(errorMessage);
160
+ console.error(errorMessage, err);
161
+ }
162
+ }, [themes, persistTheme, storageKey]);
163
+
164
+ // Add new theme
165
+ const addTheme = useCallback((name: string, theme: MultiThemeConfig) => {
166
+ try {
167
+ themeInheritanceManager.registerTheme(name, theme);
168
+ setAvailableThemes(prev => [...prev, name]);
169
+ setError(null);
170
+ } catch (err) {
171
+ setError(`Failed to add theme '${name}': ${err instanceof Error ? err.message : 'Unknown error'}`);
172
+ }
173
+ }, []);
174
+
175
+ // Remove theme
176
+ const removeTheme = useCallback((name: string) => {
177
+ try {
178
+ // Don't allow removing the current theme
179
+ if (name === currentTheme) {
180
+ setError('Cannot remove the currently active theme');
181
+ return;
182
+ }
183
+
184
+ // Remove from inheritance manager (we'll need to add this method)
185
+ // themeInheritanceManager.removeTheme(name);
186
+
187
+ setAvailableThemes(prev => prev.filter(t => t !== name));
188
+ setError(null);
189
+ } catch (err) {
190
+ setError(`Failed to remove theme '${name}': ${err instanceof Error ? err.message : 'Unknown error'}`);
191
+ }
192
+ }, [currentTheme]);
193
+
194
+ // Get theme by name
195
+ const getTheme = useCallback((name: string): CompleteThemeConfig | null => {
196
+ try {
197
+ return themeInheritanceManager.getCompleteTheme(name);
198
+ } catch (err) {
199
+ setError(`Failed to get theme '${name}': ${err instanceof Error ? err.message : 'Unknown error'}`);
200
+ return null;
201
+ }
202
+ }, []);
203
+
204
+ // Context value
205
+ const contextValue: ThemeContextType = {
206
+ currentTheme,
207
+ currentThemeConfig,
208
+ availableThemes,
209
+ setTheme,
210
+ addTheme,
211
+ removeTheme,
212
+ getTheme,
213
+ isLoading,
214
+ error
215
+ };
216
+
217
+ return (
218
+ <ThemeContext.Provider value={contextValue}>
219
+ {children}
220
+ </ThemeContext.Provider>
221
+ );
222
+ };
@@ -0,0 +1,229 @@
1
+ import { useState, useEffect, useCallback } from 'react';
2
+ import { ThemeContext, ThemeContextType, ThemeProviderProps } from './ThemeContext';
3
+ import { MultiThemeConfig, CompleteThemeConfig } from './types';
4
+ import { themeInheritanceManager, toCompleteThemeConfig } from './inheritance';
5
+ import { defaultThemes } from './base-themes';
6
+ import { createThemePersistence } from './themePersistence';
7
+ import { themeCSSUpdater } from './themeCSSUpdater';
8
+ import { fontLoader } from './fontLoader';
9
+ import { ColorManager } from './colorManager';
10
+
11
+ export const ThemeProvider= ({
12
+ children,
13
+ defaultTheme = 'stan-design',
14
+ themes = defaultThemes,
15
+ persistTheme = true,
16
+ storageKey = 'stan-design-theme'
17
+ }) => {
18
+ // State management
19
+ const [currentTheme, setCurrentThemeState] = useState<string>(defaultTheme);
20
+ const [currentThemeConfig, setCurrentThemeConfig] = useState<CompleteThemeConfig | null>(null);
21
+ const [availableThemes, setAvailableThemes] = useState<string[]>([]);
22
+ const [isLoading, setIsLoading] = useState(true);
23
+ const [error, setError] = useState<string | null>(null);
24
+
25
+ // Enhance theme colors using ColorManager
26
+ const enhanceThemeColors = useCallback((themeConfig)=> {
27
+ try {
28
+ const enhanced = { ...themeConfig };
29
+
30
+ // Enhance primary colors if they exist
31
+ if (enhanced.colors?.primary?.[500]) {
32
+ const baseColor = enhanced.colors.primary[500];
33
+
34
+ // Generate additional color variations if they don't exist
35
+ if (!enhanced.colors.primary.light || !enhanced.colors.primary.dark || !enhanced.colors.primary.contrast) {
36
+ const enhancedScale = ColorManager.generateColorScale({
37
+ baseColor,
38
+ generateShades,
39
+ generateContrast});
40
+
41
+ enhanced.colors.primary = {
42
+ ...enhanced.colors.primary,
43
+ light,
44
+ dark,
45
+ contrast};
46
+ }
47
+ }
48
+
49
+ // Enhance semantic colors if they don't exist
50
+ if (enhanced.colors?.primary?.[500] && !enhanced.colors.semantic?.success) {
51
+ const semanticColors = ColorManager.generateSemanticColors(enhanced.colors.primary[500]);
52
+ enhanced.colors.semantic = {
53
+ ...enhanced.colors.semantic,
54
+ ...semanticColors
55
+ };
56
+ }
57
+
58
+ // Enhance neutral colors if they don't exist
59
+ if (!enhanced.colors?.neutral?.[500]) {
60
+ enhanced.colors.neutral = ColorManager.generateNeutralColors('#6b7280');
61
+ }
62
+
63
+ return enhanced;
64
+ } catch (err) {
65
+ console.warn('Failed to enhance theme colors, err);
66
+ return themeConfig;
67
+ }
68
+ }, []);
69
+
70
+ // Initialize themes in the inheritance manager
71
+ useEffect(() => {
72
+ try {
73
+ // Register all provided themes
74
+ Object.entries(themes).forEach(([name, theme]) => {
75
+ try {
76
+ themeInheritanceManager.registerTheme(name, theme);
77
+ } catch (err) {
78
+ console.warn(`Failed to register theme '${name}', err);
79
+ }
80
+ });
81
+
82
+ // Set available themes
83
+ setAvailableThemes(Object.keys(themes));
84
+
85
+ // Load persisted theme or use default
86
+ if (persistTheme) {
87
+ const persistence = createThemePersistence({
88
+ storageKey,
89
+ defaultTheme,
90
+ enableSystemPreference});
91
+ const persistedTheme = persistence.getStoredTheme();
92
+ if (persistedTheme && themes[persistedTheme]) {
93
+ setCurrentThemeState(persistedTheme);
94
+ }
95
+ }
96
+ } catch (err) {
97
+ setError(`Failed to initialize themes}`);
98
+ } finally {
99
+ setIsLoading(false);
100
+ }
101
+ }, [themes, persistTheme, storageKey, defaultTheme]);
102
+
103
+ // Update current theme config when theme changes
104
+ useEffect(() => {
105
+ try {
106
+ const themeConfig = themeInheritanceManager.getCompleteTheme(currentTheme);
107
+
108
+ if (themeConfig) {
109
+ // Enhance theme colors using ColorManager
110
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
111
+ setCurrentThemeConfig(enhancedThemeConfig);
112
+
113
+ // Apply the enhanced theme to CSS variables and load fonts
114
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
115
+ fontLoader.loadThemeFonts(enhancedThemeConfig.fonts).catch(err => {
116
+ console.warn(`Failed to load fonts for theme '${currentTheme}', err);
117
+ });
118
+ }
119
+
120
+ setError(null);
121
+ } catch (err) {
122
+ const errorMessage = `Failed to load theme '${currentTheme}'}`;
123
+ setError(errorMessage);
124
+ setCurrentThemeConfig(null);
125
+ console.error(errorMessage, err);
126
+ }
127
+ }, [currentTheme, enhanceThemeColors]);
128
+
129
+ // Theme switching function
130
+ const setTheme = useCallback(async (themeName) => {
131
+ if (!themes[themeName]) {
132
+ setError(`Theme '${themeName}' not found`);
133
+ return;
134
+ }
135
+
136
+ try {
137
+ // Get the complete theme configuration
138
+ const themeConfig = themeInheritanceManager.getCompleteTheme(themeName);
139
+
140
+ if (!themeConfig) {
141
+ throw new Error(`Theme configuration not found for '${themeName}'`);
142
+ }
143
+
144
+ // Enhance theme colors using ColorManager
145
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
146
+
147
+ // Apply enhanced CSS variables to the document
148
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
149
+
150
+ // Load fonts for the theme
151
+ await fontLoader.loadThemeFonts(enhancedThemeConfig.fonts);
152
+
153
+ // Update state
154
+ setCurrentThemeState(themeName);
155
+ setCurrentThemeConfig(enhancedThemeConfig);
156
+
157
+ // Persist theme preference
158
+ if (persistTheme) {
159
+ const persistence = createThemePersistence({ storageKey });
160
+ persistence.setStoredTheme(themeName);
161
+ }
162
+
163
+ setError(null);
164
+ } catch (err) {
165
+ const errorMessage = `Failed to switch to theme '${themeName}'}`;
166
+ setError(errorMessage);
167
+ console.error(errorMessage, err);
168
+ }
169
+ }, [themes, persistTheme, storageKey]);
170
+
171
+ // Add new theme
172
+ const addTheme = useCallback((name, theme) => {
173
+ try {
174
+ themeInheritanceManager.registerTheme(name, theme);
175
+ setAvailableThemes(prev => [...prev, name]);
176
+ setError(null);
177
+ } catch (err) {
178
+ setError(`Failed to add theme '${name}'}`);
179
+ }
180
+ }, []);
181
+
182
+ // Remove theme
183
+ const removeTheme = useCallback((name) => {
184
+ try {
185
+ // Don't allow removing the current theme
186
+ if (name === currentTheme) {
187
+ setError('Cannot remove the currently active theme');
188
+ return;
189
+ }
190
+
191
+ // Remove from inheritance manager (we'll need to add this method)
192
+ // themeInheritanceManager.removeTheme(name);
193
+
194
+ setAvailableThemes(prev => prev.filter(t => t !== name));
195
+ setError(null);
196
+ } catch (err) {
197
+ setError(`Failed to remove theme '${name}'}`);
198
+ }
199
+ }, [currentTheme]);
200
+
201
+ // Get theme by name
202
+ const getTheme = useCallback((name)=> {
203
+ try {
204
+ return themeInheritanceManager.getCompleteTheme(name);
205
+ } catch (err) {
206
+ setError(`Failed to get theme '${name}'}`);
207
+ return null;
208
+ }
209
+ }, []);
210
+
211
+ // Context value
212
+ const contextValue= {
213
+ currentTheme,
214
+ currentThemeConfig,
215
+ availableThemes,
216
+ setTheme,
217
+ addTheme,
218
+ removeTheme,
219
+ getTheme,
220
+ isLoading,
221
+ error
222
+ };
223
+
224
+ return (
225
+ <ThemeContext.Provider value={contextValue}>
226
+ {children}
227
+ </ThemeContext.Provider>
228
+ );
229
+ };
@@ -0,0 +1,229 @@
1
+ import { useState, useEffect, useCallback } from 'react';
2
+ import { ThemeContext, ThemeContextType, ThemeProviderProps } from './ThemeContext';
3
+ import { MultiThemeConfig, CompleteThemeConfig } from './types';
4
+ import { themeInheritanceManager, toCompleteThemeConfig } from './inheritance';
5
+ import { defaultThemes } from './base-themes';
6
+ import { createThemePersistence } from './themePersistence';
7
+ import { themeCSSUpdater } from './themeCSSUpdater';
8
+ import { fontLoader } from './fontLoader';
9
+ import { ColorManager } from './colorManager';
10
+
11
+ export const ThemeProvider= ({
12
+ children,
13
+ defaultTheme = 'stan-design',
14
+ themes = defaultThemes,
15
+ persistTheme = true,
16
+ storageKey = 'stan-design-theme'
17
+ }) => {
18
+ // State management
19
+ const [currentTheme, setCurrentThemeState] = useState<string>(defaultTheme);
20
+ const [currentThemeConfig, setCurrentThemeConfig] = useState<CompleteThemeConfig | null>(null);
21
+ const [availableThemes, setAvailableThemes] = useState<string[]>([]);
22
+ const [isLoading, setIsLoading] = useState(true);
23
+ const [error, setError] = useState<string | null>(null);
24
+
25
+ // Enhance theme colors using ColorManager
26
+ const enhanceThemeColors = useCallback((themeConfig)=> {
27
+ try {
28
+ const enhanced = { ...themeConfig };
29
+
30
+ // Enhance primary colors if they exist
31
+ if (enhanced.colors?.primary?.[500]) {
32
+ const baseColor = enhanced.colors.primary[500];
33
+
34
+ // Generate additional color variations if they don't exist
35
+ if (!enhanced.colors.primary.light || !enhanced.colors.primary.dark || !enhanced.colors.primary.contrast) {
36
+ const enhancedScale = ColorManager.generateColorScale({
37
+ baseColor,
38
+ generateShades,
39
+ generateContrast});
40
+
41
+ enhanced.colors.primary = {
42
+ ...enhanced.colors.primary,
43
+ light,
44
+ dark,
45
+ contrast};
46
+ }
47
+ }
48
+
49
+ // Enhance semantic colors if they don't exist
50
+ if (enhanced.colors?.primary?.[500] && !enhanced.colors.semantic?.success) {
51
+ const semanticColors = ColorManager.generateSemanticColors(enhanced.colors.primary[500]);
52
+ enhanced.colors.semantic = {
53
+ ...enhanced.colors.semantic,
54
+ ...semanticColors
55
+ };
56
+ }
57
+
58
+ // Enhance neutral colors if they don't exist
59
+ if (!enhanced.colors?.neutral?.[500]) {
60
+ enhanced.colors.neutral = ColorManager.generateNeutralColors('#6b7280');
61
+ }
62
+
63
+ return enhanced;
64
+ } catch (err) {
65
+ console.warn('Failed to enhance theme colors, err);
66
+ return themeConfig;
67
+ }
68
+ }, []);
69
+
70
+ // Initialize themes in the inheritance manager
71
+ useEffect(() => {
72
+ try {
73
+ // Register all provided themes
74
+ Object.entries(themes).forEach(([name, theme]) => {
75
+ try {
76
+ themeInheritanceManager.registerTheme(name, theme);
77
+ } catch (err) {
78
+ console.warn(`Failed to register theme '${name}', err);
79
+ }
80
+ });
81
+
82
+ // Set available themes
83
+ setAvailableThemes(Object.keys(themes));
84
+
85
+ // Load persisted theme or use default
86
+ if (persistTheme) {
87
+ const persistence = createThemePersistence({
88
+ storageKey,
89
+ defaultTheme,
90
+ enableSystemPreference});
91
+ const persistedTheme = persistence.getStoredTheme();
92
+ if (persistedTheme && themes[persistedTheme]) {
93
+ setCurrentThemeState(persistedTheme);
94
+ }
95
+ }
96
+ } catch (err) {
97
+ setError(`Failed to initialize themes}`);
98
+ } finally {
99
+ setIsLoading(false);
100
+ }
101
+ }, [themes, persistTheme, storageKey, defaultTheme]);
102
+
103
+ // Update current theme config when theme changes
104
+ useEffect(() => {
105
+ try {
106
+ const themeConfig = themeInheritanceManager.getCompleteTheme(currentTheme);
107
+
108
+ if (themeConfig) {
109
+ // Enhance theme colors using ColorManager
110
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
111
+ setCurrentThemeConfig(enhancedThemeConfig);
112
+
113
+ // Apply the enhanced theme to CSS variables and load fonts
114
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
115
+ fontLoader.loadThemeFonts(enhancedThemeConfig.fonts).catch(err => {
116
+ console.warn(`Failed to load fonts for theme '${currentTheme}', err);
117
+ });
118
+ }
119
+
120
+ setError(null);
121
+ } catch (err) {
122
+ const errorMessage = `Failed to load theme '${currentTheme}'}`;
123
+ setError(errorMessage);
124
+ setCurrentThemeConfig(null);
125
+ console.error(errorMessage, err);
126
+ }
127
+ }, [currentTheme, enhanceThemeColors]);
128
+
129
+ // Theme switching function
130
+ const setTheme = useCallback(async (themeName) => {
131
+ if (!themes[themeName]) {
132
+ setError(`Theme '${themeName}' not found`);
133
+ return;
134
+ }
135
+
136
+ try {
137
+ // Get the complete theme configuration
138
+ const themeConfig = themeInheritanceManager.getCompleteTheme(themeName);
139
+
140
+ if (!themeConfig) {
141
+ throw new Error(`Theme configuration not found for '${themeName}'`);
142
+ }
143
+
144
+ // Enhance theme colors using ColorManager
145
+ const enhancedThemeConfig = enhanceThemeColors(toCompleteThemeConfig(themeConfig));
146
+
147
+ // Apply enhanced CSS variables to the document
148
+ themeCSSUpdater.applyTheme(enhancedThemeConfig);
149
+
150
+ // Load fonts for the theme
151
+ await fontLoader.loadThemeFonts(enhancedThemeConfig.fonts);
152
+
153
+ // Update state
154
+ setCurrentThemeState(themeName);
155
+ setCurrentThemeConfig(enhancedThemeConfig);
156
+
157
+ // Persist theme preference
158
+ if (persistTheme) {
159
+ const persistence = createThemePersistence({ storageKey });
160
+ persistence.setStoredTheme(themeName);
161
+ }
162
+
163
+ setError(null);
164
+ } catch (err) {
165
+ const errorMessage = `Failed to switch to theme '${themeName}'}`;
166
+ setError(errorMessage);
167
+ console.error(errorMessage, err);
168
+ }
169
+ }, [themes, persistTheme, storageKey]);
170
+
171
+ // Add new theme
172
+ const addTheme = useCallback((name, theme) => {
173
+ try {
174
+ themeInheritanceManager.registerTheme(name, theme);
175
+ setAvailableThemes(prev => [...prev, name]);
176
+ setError(null);
177
+ } catch (err) {
178
+ setError(`Failed to add theme '${name}'}`);
179
+ }
180
+ }, []);
181
+
182
+ // Remove theme
183
+ const removeTheme = useCallback((name) => {
184
+ try {
185
+ // Don't allow removing the current theme
186
+ if (name === currentTheme) {
187
+ setError('Cannot remove the currently active theme');
188
+ return;
189
+ }
190
+
191
+ // Remove from inheritance manager (we'll need to add this method)
192
+ // themeInheritanceManager.removeTheme(name);
193
+
194
+ setAvailableThemes(prev => prev.filter(t => t !== name));
195
+ setError(null);
196
+ } catch (err) {
197
+ setError(`Failed to remove theme '${name}'}`);
198
+ }
199
+ }, [currentTheme]);
200
+
201
+ // Get theme by name
202
+ const getTheme = useCallback((name)=> {
203
+ try {
204
+ return themeInheritanceManager.getCompleteTheme(name);
205
+ } catch (err) {
206
+ setError(`Failed to get theme '${name}'}`);
207
+ return null;
208
+ }
209
+ }, []);
210
+
211
+ // Context value
212
+ const contextValue= {
213
+ currentTheme,
214
+ currentThemeConfig,
215
+ availableThemes,
216
+ setTheme,
217
+ addTheme,
218
+ removeTheme,
219
+ getTheme,
220
+ isLoading,
221
+ error
222
+ };
223
+
224
+ return (
225
+ <ThemeContext.Provider value={contextValue}>
226
+ {children}
227
+ </ThemeContext.Provider>
228
+ );
229
+ };
@@ -0,0 +1,7 @@
1
+ // Accessibility theme system exports
2
+ export * from '../accessibility';
3
+
4
+ // Re-export main managers for easy access
5
+ // Re-export specific classes to avoid naming conflicts
6
+ // Re-export specific classes from other modules
7
+ // Re-export specific utilities and constants