@rakeyshgidwani/roger-ui-bank-theme-stan-design 0.2.6 → 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 (468) 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/index.esm.js +2 -2
  345. package/dist/index.js +2 -2
  346. package/dist/lib/utils.d.ts +3 -0
  347. package/dist/lib/utils.esm.js +6 -0
  348. package/dist/lib/utils.js +6 -0
  349. package/dist/plugins/theme-css-generator.d.ts +345 -0
  350. package/dist/plugins/theme-css-generator.esm.js +305 -0
  351. package/dist/plugins/theme-css-generator.js +305 -0
  352. package/dist/styles.css +1 -1
  353. package/dist/themes/ThemeContext.d.ts +27 -0
  354. package/dist/themes/ThemeContext.esm.js +31 -0
  355. package/dist/themes/ThemeContext.js +31 -0
  356. package/dist/themes/ThemeProvider.d.ts +222 -0
  357. package/dist/themes/ThemeProvider.esm.js +229 -0
  358. package/dist/themes/ThemeProvider.js +229 -0
  359. package/dist/themes/accessibility/index.d.ts +7 -0
  360. package/dist/themes/accessibility/index.esm.js +27 -0
  361. package/dist/themes/accessibility/index.js +27 -0
  362. package/dist/themes/accessibility.d.ts +259 -0
  363. package/dist/themes/accessibility.esm.js +220 -0
  364. package/dist/themes/accessibility.js +220 -0
  365. package/dist/themes/aria-patterns.d.ts +418 -0
  366. package/dist/themes/aria-patterns.esm.js +384 -0
  367. package/dist/themes/aria-patterns.js +384 -0
  368. package/dist/themes/base-themes.d.ts +34 -0
  369. package/dist/themes/base-themes.esm.js +52 -0
  370. package/dist/themes/base-themes.js +52 -0
  371. package/dist/themes/colorManager.d.ts +327 -0
  372. package/dist/themes/colorManager.esm.js +362 -0
  373. package/dist/themes/colorManager.js +362 -0
  374. package/dist/themes/examples/dark-theme.d.ts +139 -0
  375. package/dist/themes/examples/dark-theme.esm.js +124 -0
  376. package/dist/themes/examples/dark-theme.js +124 -0
  377. package/dist/themes/examples/minimal-theme.d.ts +93 -0
  378. package/dist/themes/examples/minimal-theme.esm.js +86 -0
  379. package/dist/themes/examples/minimal-theme.js +86 -0
  380. package/dist/themes/focus-management.d.ts +699 -0
  381. package/dist/themes/focus-management.esm.js +642 -0
  382. package/dist/themes/focus-management.js +642 -0
  383. package/dist/themes/fontLoader.d.ts +163 -0
  384. package/dist/themes/fontLoader.esm.js +192 -0
  385. package/dist/themes/fontLoader.js +192 -0
  386. package/dist/themes/high-contrast.d.ts +619 -0
  387. package/dist/themes/high-contrast.esm.js +573 -0
  388. package/dist/themes/high-contrast.js +573 -0
  389. package/dist/themes/index.d.ts +11 -0
  390. package/dist/themes/index.esm.js +19 -0
  391. package/dist/themes/index.js +19 -0
  392. package/dist/themes/inheritance.d.ts +160 -0
  393. package/dist/themes/inheritance.esm.js +219 -0
  394. package/dist/themes/inheritance.js +219 -0
  395. package/dist/themes/keyboard-navigation.d.ts +550 -0
  396. package/dist/themes/keyboard-navigation.esm.js +521 -0
  397. package/dist/themes/keyboard-navigation.js +521 -0
  398. package/dist/themes/motion-reduction.d.ts +660 -0
  399. package/dist/themes/motion-reduction.esm.js +602 -0
  400. package/dist/themes/motion-reduction.js +602 -0
  401. package/dist/themes/navigation.d.ts +232 -0
  402. package/dist/themes/navigation.esm.js +238 -0
  403. package/dist/themes/navigation.js +238 -0
  404. package/dist/themes/screen-reader.d.ts +645 -0
  405. package/dist/themes/screen-reader.esm.js +580 -0
  406. package/dist/themes/screen-reader.js +580 -0
  407. package/dist/themes/systemThemeDetector.d.ts +148 -0
  408. package/dist/themes/systemThemeDetector.esm.js +174 -0
  409. package/dist/themes/systemThemeDetector.js +174 -0
  410. package/dist/themes/themeCSSUpdater.d.ts +229 -0
  411. package/dist/themes/themeCSSUpdater.esm.js +250 -0
  412. package/dist/themes/themeCSSUpdater.js +250 -0
  413. package/dist/themes/themePersistence.d.ts +192 -0
  414. package/dist/themes/themePersistence.esm.js +217 -0
  415. package/dist/themes/themePersistence.js +217 -0
  416. package/dist/themes/themes/stan-design.d.ts +678 -0
  417. package/dist/themes/themes/stan-design.esm.js +518 -0
  418. package/dist/themes/themes/stan-design.js +518 -0
  419. package/dist/themes/types.d.ts +454 -0
  420. package/dist/themes/types.esm.js +446 -0
  421. package/dist/themes/types.js +446 -0
  422. package/dist/themes/useSystemTheme.d.ts +43 -0
  423. package/dist/themes/useSystemTheme.esm.js +48 -0
  424. package/dist/themes/useSystemTheme.js +48 -0
  425. package/dist/themes/useTheme.d.ts +20 -0
  426. package/dist/themes/useTheme.esm.js +87 -0
  427. package/dist/themes/useTheme.js +87 -0
  428. package/dist/themes/validation.d.ts +406 -0
  429. package/dist/themes/validation.esm.js +411 -0
  430. package/dist/themes/validation.js +411 -0
  431. package/dist/tokens/index.d.ts +25 -0
  432. package/dist/tokens/index.esm.js +23 -0
  433. package/dist/tokens/index.js +23 -0
  434. package/dist/tokens/tokenExporter.d.ts +336 -0
  435. package/dist/tokens/tokenExporter.esm.js +371 -0
  436. package/dist/tokens/tokenExporter.js +371 -0
  437. package/dist/tokens/tokenGenerator.d.ts +250 -0
  438. package/dist/tokens/tokenGenerator.esm.js +267 -0
  439. package/dist/tokens/tokenGenerator.js +267 -0
  440. package/dist/tokens/tokenManager.d.ts +194 -0
  441. package/dist/tokens/tokenManager.esm.js +235 -0
  442. package/dist/tokens/tokenManager.js +235 -0
  443. package/dist/tokens/tokenValidator.d.ts +488 -0
  444. package/dist/tokens/tokenValidator.esm.js +497 -0
  445. package/dist/tokens/tokenValidator.js +497 -0
  446. package/dist/tokens/types.d.ts +78 -0
  447. package/dist/tokens/types.esm.js +64 -0
  448. package/dist/tokens/types.js +64 -0
  449. package/dist/utils/bundle-analyzer.d.ts +260 -0
  450. package/dist/utils/bundle-analyzer.esm.js +242 -0
  451. package/dist/utils/bundle-analyzer.js +242 -0
  452. package/dist/utils/bundle-splitting.d.ts +483 -0
  453. package/dist/utils/bundle-splitting.esm.js +458 -0
  454. package/dist/utils/bundle-splitting.js +458 -0
  455. package/dist/utils/lazy-loading.d.ts +437 -0
  456. package/dist/utils/lazy-loading.esm.js +415 -0
  457. package/dist/utils/lazy-loading.js +415 -0
  458. package/dist/utils/performance-monitor.d.ts +513 -0
  459. package/dist/utils/performance-monitor.esm.js +472 -0
  460. package/dist/utils/performance-monitor.js +472 -0
  461. package/dist/utils/tree-shaking.d.ts +274 -0
  462. package/dist/utils/tree-shaking.esm.js +266 -0
  463. package/dist/utils/tree-shaking.js +266 -0
  464. package/package.json +1 -1
  465. package/src/index.ts +2 -2
  466. package/src/themes/accessibility/index.ts +1 -1
  467. package/src/themes/focus-management.ts +3 -3
  468. package/src/themes/keyboard-navigation.ts +3 -3
@@ -0,0 +1,446 @@
1
+ // Multi-Theme System Type Definitions
2
+ // This file defines the core interfaces for theme configuration
3
+
4
+ export interface MultiThemeConfig {
5
+ fonts;
6
+ colors;
7
+ navigation;
8
+ spacing;
9
+ shadows;
10
+ transitions;
11
+ borderRadius;
12
+ borderWidth;
13
+ animation;
14
+ accessibility;
15
+ print;
16
+ containerQuery;
17
+ container;
18
+ shimmer;
19
+ meta;
20
+ extends?; // Optional property for theme inheritance
21
+
22
+ // NEW)
23
+ modes?;
24
+ };
25
+ dark?;
26
+ };
27
+ };
28
+ }
29
+
30
+ export interface FontThemeConfig {
31
+ primary;
32
+ secondary;
33
+ display;
34
+ body;
35
+ mono;
36
+ }
37
+
38
+ export interface FontConfig {
39
+ family;
40
+ weights];
41
+ sizes;
42
+ lineHeights;
43
+ letterSpacing;
44
+ fallbacks?]; // Font fallback stack
45
+ display?; // Font loading strategy
46
+ source?; // Font source configuration
47
+ features?; // Advanced font features
48
+ }
49
+
50
+ export interface FontSource {
51
+ type;
52
+ url?; // For custom fonts
53
+ files?; // For custom font files
54
+ }
55
+
56
+ export interface FontFiles {
57
+ woff2?;
58
+ woff?;
59
+ ttf?;
60
+ eot?;
61
+ svg?;
62
+ }
63
+
64
+ export interface FontFeatures {
65
+ ligatures?;
66
+ kerning?;
67
+ variant?;
68
+ stretch?;
69
+ styleSet?;
70
+ }
71
+
72
+ export interface FontSizeScale {
73
+ xs;
74
+ sm;
75
+ md;
76
+ lg;
77
+ xl;
78
+ '2xl';
79
+ '3xl';
80
+ '4xl';
81
+ '5xl';
82
+ '6xl';
83
+ }
84
+
85
+ export interface LineHeightScale {
86
+ tight;
87
+ normal;
88
+ relaxed;
89
+ loose;
90
+ }
91
+
92
+ export interface LetterSpacingScale {
93
+ tight;
94
+ normal;
95
+ wide;
96
+ wider;
97
+ widest;
98
+ }
99
+
100
+ export interface ColorThemeConfig {
101
+ primary;
102
+ secondary;
103
+ semantic;
104
+ neutral;
105
+ surface;
106
+ text;
107
+ interactive;
108
+ // Additional color properties referenced in CSS
109
+ accent?;
110
+ 'bg-primary'?;
111
+ 'bg-secondary'?;
112
+ 'surface-bg'?;
113
+ 'primary-hover'?;
114
+ 'primary-active'?;
115
+ 'accent-rgb'?;
116
+ border?;
117
+ 'border-transparent'?;
118
+ 'text-primary'?;
119
+ 'text-secondary'?;
120
+ }
121
+
122
+ export interface ColorScale {
123
+ 50;
124
+ 100;
125
+ 200;
126
+ 300;
127
+ 400;
128
+ 500;
129
+ 600;
130
+ 700;
131
+ 800;
132
+ 900;
133
+ // Additional color variations
134
+ light?; // Lighter than 50
135
+ dark?; // Darker than 900
136
+ contrast?; // High contrast version
137
+ // RGB versions for rgba() usage
138
+ '500-rgb'?;
139
+ '600-rgb'?;
140
+ '700-rgb'?;
141
+ }
142
+
143
+ export interface ColorAccessibility {
144
+ aa; // WCAG AA compliance
145
+ aaa; // WCAG AAA compliance
146
+ contrastRatio; // Actual contrast ratio
147
+ recommended]; // Recommended improvements
148
+ }
149
+
150
+ export interface SemanticColors {
151
+ success;
152
+ warning;
153
+ error;
154
+ info;
155
+ // Enhanced semantic colors with accessibility
156
+ successLight?;
157
+ successDark?;
158
+ warningLight?;
159
+ warningDark?;
160
+ errorLight?;
161
+ errorDark?;
162
+ infoLight?;
163
+ infoDark?;
164
+ // RGB versions for rgba() usage
165
+ successRgb?;
166
+ warningRgb?;
167
+ errorRgb?;
168
+ errorDarkRgb?;
169
+ infoRgb?;
170
+ // Additional RGB versions referenced in CSS
171
+ 'success-rgb'?;
172
+ 'warning-rgb'?;
173
+ 'error-rgb'?;
174
+ 'error-dark-rgb'?;
175
+ 'info-rgb'?;
176
+ }
177
+
178
+ export interface NeutralColors {
179
+ 50;
180
+ 100;
181
+ 200;
182
+ 300;
183
+ 400;
184
+ 500;
185
+ 600;
186
+ 700;
187
+ 800;
188
+ 900;
189
+ }
190
+
191
+ export interface SurfaceColors {
192
+ background;
193
+ surface;
194
+ border;
195
+ divider;
196
+ }
197
+
198
+ export interface TextColors {
199
+ primary;
200
+ secondary;
201
+ muted;
202
+ inverse;
203
+ onPrimary;
204
+ onSecondary;
205
+ onSurface;
206
+ }
207
+
208
+ export interface InteractiveColors {
209
+ hover;
210
+ active;
211
+ focus;
212
+ disabled;
213
+ // Enhanced interactive states
214
+ hoverLight?;
215
+ hoverDark?;
216
+ activeLight?;
217
+ activeDark?;
218
+ focusRing?;
219
+ focusRingOffset?;
220
+ }
221
+
222
+ // Color generation and utility interfaces
223
+ export interface ColorGenerationConfig {
224
+ baseColor;
225
+ hueShift?;
226
+ saturationAdjust?;
227
+ lightnessAdjust?;
228
+ generateShades?;
229
+ generateTints?;
230
+ generateContrast?;
231
+ }
232
+
233
+ export interface ColorPalette {
234
+ name;
235
+ description;
236
+ colors;
237
+ accessibility;
238
+ usage];
239
+ tags];
240
+ }
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+ export interface SpacingThemeConfig {
249
+ scale;
250
+ component;
251
+ layout;
252
+ }
253
+
254
+ export interface SpacingScale {
255
+ xs;
256
+ sm;
257
+ md;
258
+ lg;
259
+ xl;
260
+ '2xl';
261
+ '3xl';
262
+ '4xl';
263
+ '5xl';
264
+ '6xl';
265
+ }
266
+
267
+ export interface ComponentSpacing {
268
+ button;
269
+ margin;
270
+ gap;
271
+ };
272
+ input;
273
+ margin;
274
+ gap;
275
+ };
276
+ card;
277
+ margin;
278
+ gap;
279
+ };
280
+ }
281
+
282
+ export interface LayoutSpacing {
283
+ page;
284
+ section;
285
+ container;
286
+ grid;
287
+ }
288
+
289
+ export interface ShadowThemeConfig {
290
+ sm;
291
+ md;
292
+ lg;
293
+ xl;
294
+ '2xl';
295
+ inner;
296
+ none;
297
+ }
298
+
299
+ export interface TransitionThemeConfig {
300
+ duration;
301
+ easing;
302
+ properties;
303
+ }
304
+
305
+ export interface BorderRadiusThemeConfig {
306
+ none;
307
+ sm;
308
+ md;
309
+ lg;
310
+ xl;
311
+ '2xl';
312
+ full;
313
+ }
314
+
315
+ export interface BorderWidthThemeConfig {
316
+ none;
317
+ thin;
318
+ normal;
319
+ focus;
320
+ thick;
321
+ extraThick;
322
+ }
323
+
324
+ export interface AnimationThemeConfig {
325
+ duration;
326
+ normal;
327
+ slow;
328
+ };
329
+ easing;
330
+ ease;
331
+ easeIn;
332
+ easeOut;
333
+ easeInOut;
334
+ };
335
+ transforms;
336
+ offsetY;
337
+ scale;
338
+ };
339
+ }
340
+
341
+ export interface AccessibilityThemeConfig {
342
+ focusRing;
343
+ offset;
344
+ color;
345
+ };
346
+ outline;
347
+ };
348
+ highContrast;
349
+ outlineWidth;
350
+ };
351
+ disabled;
352
+ opacity;
353
+ };
354
+ }
355
+
356
+ export interface PrintThemeConfig {
357
+ borderColor;
358
+ textColor;
359
+ textSecondaryColor;
360
+ backgroundColor;
361
+ }
362
+
363
+ export interface ContainerQueryThemeConfig {
364
+ small;
365
+ medium;
366
+ large;
367
+ }
368
+
369
+ export interface ContainerThemeConfig {
370
+ width;
371
+ medium;
372
+ large;
373
+ xl;
374
+ full;
375
+ };
376
+ }
377
+
378
+ export interface ShimmerThemeConfig {
379
+ alpha;
380
+ color;
381
+ }
382
+
383
+ export interface TransitionDuration {
384
+ fast;
385
+ normal;
386
+ slow;
387
+ }
388
+
389
+ export interface TransitionEasing {
390
+ linear;
391
+ ease;
392
+ easeIn;
393
+ easeOut;
394
+ easeInOut;
395
+ }
396
+
397
+ export interface TransitionProperties {
398
+ colors;
399
+ transform;
400
+ opacity;
401
+ shadow;
402
+ }
403
+
404
+ export interface ThemeMetadata {
405
+ name;
406
+ description;
407
+ author;
408
+ version;
409
+ category;
410
+ tags];
411
+ preview; // URL to preview image
412
+ createdAt;
413
+ updatedAt;
414
+ }
415
+
416
+ // Theme validation types
417
+ export interface ThemeValidationResult {
418
+ isValid;
419
+ errors];
420
+ warnings];
421
+ }
422
+
423
+ export interface ThemeValidationError {
424
+ path;
425
+ message;
426
+ severity;
427
+ }
428
+
429
+ export interface ThemeValidationWarning {
430
+ path;
431
+ message;
432
+ severity;
433
+ }
434
+
435
+ // Theme inheritance types
436
+ export interface ThemeInheritance {
437
+ extends?; // Theme name to extend
438
+ overrides; // Properties to override
439
+ additions; // Properties to add
440
+ }
441
+
442
+ // Complete theme with inheritance
443
+ export interface CompleteThemeConfig extends MultiThemeConfig {
444
+ inheritance?;
445
+ validation;
446
+ }
@@ -0,0 +1,43 @@
1
+
2
+ export declare const useSystemTheme: (options: SystemThemeOptions = {}) => {
3
+ const [systemTheme, setSystemTheme] = useState<SystemTheme>('light');
4
+ const detectorRef = useRef<SystemThemeDetector | null>(null);
5
+
6
+ useEffect(() => {
7
+ if (typeof window === 'undefined') return;
8
+
9
+ detectorRef.current = new SystemThemeDetector(options);
10
+
11
+ // Set initial theme
12
+ const initialTheme = detectorRef.current.getSystemTheme();
13
+ setSystemTheme(initialTheme);
14
+
15
+ // Subscribe to changes
16
+ const unsubscribe = detectorRef.current.subscribe(setSystemTheme);
17
+
18
+ return () => {
19
+ unsubscribe();
20
+ detectorRef.current?.destroy();
21
+ };
22
+ }, [options.storageKey, options.enablePersistence]);
23
+
24
+ const setSystemThemePreference = useCallback((theme: SystemTheme) => {
25
+ if (detectorRef.current) {
26
+ detectorRef.current.setStoredPreference(theme);
27
+ setSystemTheme(theme);
28
+ }
29
+ }, []);
30
+
31
+ const applySystemThemeCSS = useCallback((theme: SystemTheme) => {
32
+ if (detectorRef.current) {
33
+ detectorRef.current.applySystemThemeCSS(theme);
34
+ }
35
+ }, []);
36
+
37
+ return {
38
+ systemTheme,
39
+ setSystemThemePreference,
40
+ applySystemThemeCSS,
41
+ isSupported: detectorRef.current?.isSupported() ?? false,
42
+ };
43
+ };
@@ -0,0 +1,48 @@
1
+ import { useState, useEffect, useRef, useCallback } from 'react';
2
+ import { SystemThemeDetector, SystemTheme, SystemThemeOptions } from './systemThemeDetector';
3
+
4
+ /**
5
+ * React hook for using system theme detection
6
+ */
7
+ export const useSystemTheme = (options= {}) => {
8
+ const [systemTheme, setSystemTheme] = useState<SystemTheme>('light');
9
+ const detectorRef = useRef<SystemThemeDetector | null>(null);
10
+
11
+ useEffect(() => {
12
+ if (typeof window === 'undefined') return;
13
+
14
+ detectorRef.current = new SystemThemeDetector(options);
15
+
16
+ // Set initial theme
17
+ const initialTheme = detectorRef.current.getSystemTheme();
18
+ setSystemTheme(initialTheme);
19
+
20
+ // Subscribe to changes
21
+ const unsubscribe = detectorRef.current.subscribe(setSystemTheme);
22
+
23
+ return () => {
24
+ unsubscribe();
25
+ detectorRef.current?.destroy();
26
+ };
27
+ }, [options.storageKey, options.enablePersistence]);
28
+
29
+ const setSystemThemePreference = useCallback((theme) => {
30
+ if (detectorRef.current) {
31
+ detectorRef.current.setStoredPreference(theme);
32
+ setSystemTheme(theme);
33
+ }
34
+ }, []);
35
+
36
+ const applySystemThemeCSS = useCallback((theme) => {
37
+ if (detectorRef.current) {
38
+ detectorRef.current.applySystemThemeCSS(theme);
39
+ }
40
+ }, []);
41
+
42
+ return {
43
+ systemTheme,
44
+ setSystemThemePreference,
45
+ applySystemThemeCSS,
46
+ isSupported) ?? false,
47
+ };
48
+ };
@@ -0,0 +1,48 @@
1
+ import { useState, useEffect, useRef, useCallback } from 'react';
2
+ import { SystemThemeDetector, SystemTheme, SystemThemeOptions } from './systemThemeDetector';
3
+
4
+ /**
5
+ * React hook for using system theme detection
6
+ */
7
+ export const useSystemTheme = (options= {}) => {
8
+ const [systemTheme, setSystemTheme] = useState<SystemTheme>('light');
9
+ const detectorRef = useRef<SystemThemeDetector | null>(null);
10
+
11
+ useEffect(() => {
12
+ if (typeof window === 'undefined') return;
13
+
14
+ detectorRef.current = new SystemThemeDetector(options);
15
+
16
+ // Set initial theme
17
+ const initialTheme = detectorRef.current.getSystemTheme();
18
+ setSystemTheme(initialTheme);
19
+
20
+ // Subscribe to changes
21
+ const unsubscribe = detectorRef.current.subscribe(setSystemTheme);
22
+
23
+ return () => {
24
+ unsubscribe();
25
+ detectorRef.current?.destroy();
26
+ };
27
+ }, [options.storageKey, options.enablePersistence]);
28
+
29
+ const setSystemThemePreference = useCallback((theme) => {
30
+ if (detectorRef.current) {
31
+ detectorRef.current.setStoredPreference(theme);
32
+ setSystemTheme(theme);
33
+ }
34
+ }, []);
35
+
36
+ const applySystemThemeCSS = useCallback((theme) => {
37
+ if (detectorRef.current) {
38
+ detectorRef.current.applySystemThemeCSS(theme);
39
+ }
40
+ }, []);
41
+
42
+ return {
43
+ systemTheme,
44
+ setSystemThemePreference,
45
+ applySystemThemeCSS,
46
+ isSupported) ?? false,
47
+ };
48
+ };
@@ -0,0 +1,20 @@
1
+
2
+ export declare const useTheme: (): ThemeContextType => {
3
+ const context = useContext(ThemeContext);
4
+
5
+ if (!context) {
6
+ throw new Error('useTheme must be used within ThemeProvider');
7
+ }
8
+
9
+ return context;
10
+ };
11
+
12
+ export declare const useThemeByName: (themeName: string) => {
13
+ const { getTheme } = useTheme();
14
+ return getTheme(themeName);
15
+ };
16
+
17
+ export declare const useThemeAvailable: (themeName: string): boolean => {
18
+ const { availableThemes } = useTheme();
19
+ return availableThemes.includes(themeName);
20
+ };
@@ -0,0 +1,87 @@
1
+ import { useContext } from 'react';
2
+ import { ThemeContext, ThemeContextType } from './ThemeContext';
3
+
4
+ /**
5
+ * Hook to access theme context
6
+ * Must be used within a ThemeProvider
7
+ *
8
+ * @returns ThemeContextType - The current theme context
9
+ * @throws Error if used outside of ThemeProvider
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * function MyComponent() {
14
+ * const { currentTheme, setTheme, currentThemeConfig } = useTheme();
15
+ *
16
+ * return (
17
+ * <button onClick={() => setTheme('harvey')}>
18
+ * Switch to Harvey Theme
19
+ * </button>
20
+ * );
21
+ * }
22
+ * ```
23
+ */
24
+ export const useTheme = ()=> {
25
+ const context = useContext(ThemeContext);
26
+
27
+ if (!context) {
28
+ throw new Error('useTheme must be used within ThemeProvider');
29
+ }
30
+
31
+ return context;
32
+ };
33
+
34
+ /**
35
+ * Hook to get a specific theme by name
36
+ * Useful for accessing theme data without switching
37
+ *
38
+ * @param themeName - Name of the theme to retrieve
39
+ * @returns CompleteThemeConfig | null - The requested theme or null if not found
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * function ThemePreview() {
44
+ * const harveyTheme = useThemeByName('harvey');
45
+ *
46
+ * if (!harveyTheme) return <div>Theme not found</div>;
47
+ *
48
+ * return (
49
+ * <div style={{ color] }}>
50
+ * Harvey Theme Preview
51
+ * </div>
52
+ * );
53
+ * }
54
+ * ```
55
+ */
56
+ export const useThemeByName = (themeName) => {
57
+ const { getTheme } = useTheme();
58
+ return getTheme(themeName);
59
+ };
60
+
61
+ /**
62
+ * Hook to check if a specific theme is available
63
+ *
64
+ * @param themeName - Name of the theme to check
65
+ * @returns boolean - True if theme is available
66
+ *
67
+ * @example
68
+ * ```tsx
69
+ * function ThemeSwitcher() {
70
+ * const hasHarveyTheme = useThemeAvailable('harvey');
71
+ *
72
+ * return (
73
+ * <div>
74
+ * {hasHarveyTheme && (
75
+ * <button onClick={() => setTheme('harvey')}>
76
+ * Harvey Theme
77
+ * </button>
78
+ * )}
79
+ * </div>
80
+ * );
81
+ * }
82
+ * ```
83
+ */
84
+ export const useThemeAvailable = (themeName)=> {
85
+ const { availableThemes } = useTheme();
86
+ return availableThemes.includes(themeName);
87
+ };