@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,354 @@
1
+ import React, { useState, useCallback, useEffect } from 'react';
2
+ import { useTheme } from '../../themes';
3
+ import { Card, CardContent, CardHeader, CardTitle } from './card';
4
+ import { Button } from './button';
5
+ import { Input } from './input';
6
+ import { ThemePreview } from './theme-preview';
7
+
8
+
9
+ export interface ThemeCustomizerProps {
10
+ initialTheme?;
11
+ onThemeChange?) => void;
12
+ showPreview?;
13
+ allowCustomization?;
14
+ className?;
15
+ }
16
+
17
+ export interface CustomizationState {
18
+ colors;
19
+ secondary;
20
+ };
21
+ fonts;
22
+ secondary;
23
+ };
24
+ spacing;
25
+ };
26
+ shadows;
27
+ };
28
+ }
29
+
30
+ export const ThemeCustomizer= ({
31
+ initialTheme = 'stan-design',
32
+ onThemeChange,
33
+ showPreview = true,
34
+ allowCustomization = true,
35
+ className = ''
36
+ }) => {
37
+ const { getTheme } = useTheme();
38
+ const [customizationState, setCustomizationState] = useState<CustomizationState>({
39
+ colors,
40
+ secondary},
41
+ fonts,
42
+ secondary},
43
+ spacing},
44
+ shadows}
45
+ });
46
+
47
+ const [activeTab, setActiveTab] = useState<'colors' | 'fonts' | 'spacing' | 'shadows' | 'preview'>('colors');
48
+ const [customTheme, setCustomTheme] = useState<CompleteThemeConfig | null>(null);
49
+
50
+ // Initialize with the initial theme
51
+ useEffect(() => {
52
+ const theme = getTheme(initialTheme);
53
+ if (theme) {
54
+ setCustomTheme(theme);
55
+ }
56
+ }, [initialTheme]); // Removed getTheme from dependencies as it's stable
57
+
58
+ const handleCustomizationChange = useCallback((key, subKey, value) => {
59
+ setCustomizationState(prev => ({
60
+ ...prev,
61
+ [key]],
62
+ [subKey]}
63
+ }));
64
+ }, []);
65
+
66
+ const generateCustomTheme = useCallback(() => {
67
+ if (!customTheme) return;
68
+
69
+ // Create a deep copy of the current theme
70
+ const newTheme= JSON.parse(JSON.stringify(customTheme));
71
+
72
+ // Apply customizations
73
+ // Generate color scales based on the selected primary color
74
+ const primaryColor = customizationState.colors.primary;
75
+ const secondaryColor = customizationState.colors.secondary;
76
+
77
+ // Simple color scale generation (in a real app, you'd use a color library)
78
+ const generateColorScale = (baseColor) => {
79
+ return {
80
+ 50}0a`,
81
+ 100}1a`,
82
+ 200}33`,
83
+ 300}4d`,
84
+ 400}66`,
85
+ 500,
86
+ 600}99`,
87
+ 700}b3`,
88
+ 800}cc`,
89
+ 900}e6`
90
+ };
91
+ };
92
+
93
+ // Update primary colors
94
+ newTheme.colors.primary = generateColorScale(primaryColor);
95
+
96
+ // Update secondary colors if they exist
97
+ if (newTheme.colors.secondary) {
98
+ newTheme.colors.secondary = generateColorScale(secondaryColor);
99
+ }
100
+
101
+ // Update fonts
102
+ if (newTheme.fonts.primary) {
103
+ newTheme.fonts.primary.family = customizationState.fonts.primary;
104
+ }
105
+ if (newTheme.fonts.secondary) {
106
+ newTheme.fonts.secondary.family = customizationState.fonts.secondary;
107
+ }
108
+
109
+ // Update spacing scale (we'll adjust the existing scale)
110
+ if (newTheme.spacing && newTheme.spacing.scale) {
111
+ // This is a simplified approach - in reality you'd want to recalculate all spacing values
112
+ // For now, we'll just note that the scale factor has changed
113
+ console.log('Spacing scale factor updated to, customizationState.spacing.scale);
114
+ }
115
+
116
+ // Update shadow intensity (we'll adjust the existing shadows)
117
+ if (newTheme.shadows) {
118
+ // This is a simplified approach - in reality you'd want to recalculate all shadow values
119
+ // For now, we'll just note that the intensity has changed
120
+ console.log('Shadow intensity updated to, customizationState.shadows.intensity);
121
+ }
122
+
123
+ setCustomTheme(newTheme);
124
+
125
+ if (onThemeChange) {
126
+ onThemeChange(newTheme);
127
+ }
128
+ }, [customTheme, customizationState, onThemeChange]);
129
+
130
+ const exportTheme = useCallback(() => {
131
+ if (!customTheme) return;
132
+
133
+ const themeData = JSON.stringify(customTheme, null, 2);
134
+ const blob = new Blob([themeData], { type});
135
+ const url = URL.createObjectURL(blob);
136
+ const a = document.createElement('a');
137
+ a.href = url;
138
+ a.download = `${customTheme.meta.name.toLowerCase().replace(/\s+/g, '-')}-theme.json`;
139
+ document.body.appendChild(a);
140
+ a.click();
141
+ document.body.removeChild(a);
142
+ URL.revokeObjectURL(url);
143
+ }, [customTheme]);
144
+
145
+ const resetTheme = useCallback(() => {
146
+ const originalTheme = getTheme(initialTheme);
147
+ if (originalTheme) {
148
+ setCustomTheme(originalTheme);
149
+ setCustomizationState({
150
+ colors,
151
+ secondary},
152
+ fonts,
153
+ secondary},
154
+ spacing},
155
+ shadows}
156
+ });
157
+ }
158
+ }, [initialTheme, getTheme]);
159
+
160
+ if (!customTheme) {
161
+ return (
162
+ <div className={`p-4 text-center text-gray-500 ${className}`}>
163
+ Loading theme...
164
+ </div>
165
+ );
166
+ }
167
+
168
+ return (
169
+ <div className={`theme-customizer ${className}`}>
170
+ <Card>
171
+ <CardHeader>
172
+ <CardTitle className="flex items-center gap-2">
173
+ 🎨 Theme Customizer
174
+ </CardTitle>
175
+ <p className="text-sm text-gray-600 dark}
176
+ <div className="flex space-x-1 mb-6 border-b">
177
+ {allowCustomization && (
178
+ <>
179
+ <Button
180
+ variant={activeTab === 'colors' ? 'default' }
181
+ size="sm"
182
+ onClick={() => setActiveTab('colors')}
183
+ >
184
+ Colors
185
+ </Button>
186
+ <Button
187
+ variant={activeTab === 'fonts' ? 'default' }
188
+ size="sm"
189
+ onClick={() => setActiveTab('fonts')}
190
+ >
191
+ Fonts
192
+ </Button>
193
+ <Button
194
+ variant={activeTab === 'spacing' ? 'default' }
195
+ size="sm"
196
+ onClick={() => setActiveTab('spacing')}
197
+ >
198
+ Spacing
199
+ </Button>
200
+ <Button
201
+ variant={activeTab === 'shadows' ? 'default' }
202
+ size="sm"
203
+ onClick={() => setActiveTab('shadows')}
204
+ >
205
+ Shadows
206
+ </Button>
207
+ </>
208
+ )}
209
+ {showPreview && (
210
+ <Button
211
+ variant={activeTab === 'preview' ? 'default' }
212
+ size="sm"
213
+ onClick={() => setActiveTab('preview')}
214
+ >
215
+ Preview
216
+ </Button>
217
+ )}
218
+ </div>
219
+
220
+ {/* Tab Content */}
221
+ <div className="min-h-[400px]">
222
+ {activeTab === 'colors' && allowCustomization && (
223
+ <div className="space-y-4">
224
+ <h3 className="text-lg font-semibold">Color Customization</h3>
225
+ <div className="grid grid-cols-1 md="block text-sm font-medium mb-2">Primary Color</label>
226
+ <Input
227
+ type="color"
228
+ value={customizationState.colors.primary}
229
+ onChange={(e) => handleCustomizationChange('colors', 'primary', e.target.value)}
230
+ className="w-full h-12"
231
+ />
232
+ <Input
233
+ type="text"
234
+ value={customizationState.colors.primary}
235
+ onChange={(e) => handleCustomizationChange('colors', 'primary', e.target.value)}
236
+ placeholder="#3b82f6"
237
+ className="mt-2"
238
+ />
239
+ </div>
240
+ <div>
241
+ <label className="block text-sm font-medium mb-2">Secondary Color</label>
242
+ <Input
243
+ type="color"
244
+ value={customizationState.colors.secondary}
245
+ onChange={(e) => handleCustomizationChange('colors', 'secondary', e.target.value)}
246
+ className="w-full h-12"
247
+ />
248
+ <Input
249
+ type="text"
250
+ value={customizationState.colors.secondary}
251
+ onChange={(e) => handleCustomizationChange('colors', 'secondary', e.target.value)}
252
+ placeholder="#10b981"
253
+ className="mt-2"
254
+ />
255
+ </div>
256
+
257
+ </div>
258
+ </div>
259
+ )}
260
+
261
+ {activeTab === 'fonts' && allowCustomization && (
262
+ <div className="space-y-4">
263
+ <h3 className="text-lg font-semibold">Font Customization</h3>
264
+ <div className="grid grid-cols-1 md="block text-sm font-medium mb-2">Primary Font</label>
265
+ <Input
266
+ value={customizationState.fonts.primary}
267
+ onChange={(e) => handleCustomizationChange('fonts', 'primary', e.target.value)}
268
+ placeholder="Inter"
269
+ />
270
+ </div>
271
+ <div>
272
+ <label className="block text-sm font-medium mb-2">Secondary Font</label>
273
+ <Input
274
+ value={customizationState.fonts.secondary}
275
+ onChange={(e) => handleCustomizationChange('fonts', 'secondary', e.target.value)}
276
+ placeholder="Roboto"
277
+ />
278
+ </div>
279
+ </div>
280
+ </div>
281
+ )}
282
+
283
+ {activeTab === 'spacing' && allowCustomization && (
284
+ <div className="space-y-4">
285
+ <h3 className="text-lg font-semibold">Spacing Customization</h3>
286
+ <div className="grid grid-cols-1 gap-4">
287
+ <div>
288
+ <label className="block text-sm font-medium mb-2">Scale Factor</label>
289
+ <Input
290
+ type="number"
291
+ value={customizationState.spacing.scale}
292
+ onChange={(e) => handleCustomizationChange('spacing', 'scale', Number(e.target.value))}
293
+ min="1.1"
294
+ max="2.0"
295
+ step="0.05"
296
+ />
297
+ </div>
298
+ </div>
299
+ </div>
300
+ )}
301
+
302
+ {activeTab === 'shadows' && allowCustomization && (
303
+ <div className="space-y-4">
304
+ <h3 className="text-lg font-semibold">Shadow Customization</h3>
305
+ <div className="grid grid-cols-1 gap-4">
306
+ <div>
307
+ <label className="block text-sm font-medium mb-2">Shadow Intensity</label>
308
+ <Input
309
+ type="range"
310
+ min="0"
311
+ max="0.5"
312
+ step="0.01"
313
+ value={customizationState.shadows.intensity}
314
+ onChange={(e) => handleCustomizationChange('shadows', 'intensity', Number(e.target.value))}
315
+ className="w-full"
316
+ />
317
+ <span className="text-sm text-gray-600 dark}
318
+ </span>
319
+ </div>
320
+ </div>
321
+ </div>
322
+ )}
323
+
324
+ {activeTab === 'preview' && showPreview && (
325
+ <div>
326
+ <h3 className="text-lg font-semibold mb-4">Theme Preview</h3>
327
+ <ThemePreview themeName={customTheme.meta.name} />
328
+ </div>
329
+ )}
330
+ </div>
331
+
332
+ {/* Action Buttons */}
333
+ {allowCustomization && (
334
+ <div className="flex justify-between items-center pt-6 border-t">
335
+ <div className="flex gap-2">
336
+ <Button variant="outline" onClick={resetTheme}>
337
+ Reset
338
+ </Button>
339
+ <Button onClick={generateCustomTheme}>
340
+ Apply Changes
341
+ </Button>
342
+ </div>
343
+ <div className="flex gap-2">
344
+ <Button variant="secondary" onClick={exportTheme}>
345
+ Export Theme
346
+ </Button>
347
+ </div>
348
+ </div>
349
+ )}
350
+ </CardContent>
351
+ </Card>
352
+ </div>
353
+ );
354
+ };
@@ -0,0 +1,305 @@
1
+ export interface ThemePreviewProps {
2
+ themeName?: string;
3
+ showColors?: boolean;
4
+ showFonts?: boolean;
5
+ showNavigation?: boolean;
6
+ showSpacing?: boolean;
7
+ className?: string;
8
+ }
9
+
10
+ export const ThemePreview: React.FC<ThemePreviewProps> = ({
11
+ themeName,
12
+ showColors = true,
13
+ showFonts = true,
14
+ showNavigation = true,
15
+ showSpacing = true,
16
+ className = ''
17
+ }) => {
18
+ const { getTheme, currentTheme } = useTheme();
19
+ const targetTheme = themeName || currentTheme;
20
+ const themeConfig = getTheme(targetTheme);
21
+
22
+ if (!themeConfig) {
23
+ return (
24
+ <div className={`p-4 text-center text-gray-500 ${className}`}>
25
+ Theme "{targetTheme}" not found
26
+ </div>
27
+ );
28
+ }
29
+
30
+ const renderColorPreview = () => {
31
+ if (!showColors) return null;
32
+
33
+ const { colors } = themeConfig;
34
+
35
+ return (
36
+ <div className="space-y-4">
37
+ <h4 className="text-lg font-semibold">Colors</h4>
38
+
39
+ {/* Primary Colors */}
40
+ <div>
41
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
42
+ Primary Colors
43
+ </h5>
44
+ <div className="grid grid-cols-5 gap-2">
45
+ {Object.entries(colors.primary).map(([shade, color]) => (
46
+ <div key={shade} className="text-center">
47
+ <div
48
+ className="w-12 h-12 rounded-lg border border-gray-200 dark:border-gray-700 mb-1"
49
+ style={{ backgroundColor: color }}
50
+ />
51
+ <span className="text-xs text-gray-600 dark:text-gray-400">{shade}</span>
52
+ </div>
53
+ ))}
54
+ </div>
55
+ </div>
56
+
57
+ {/* Semantic Colors */}
58
+ <div>
59
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
60
+ Semantic Colors
61
+ </h5>
62
+ <div className="grid grid-cols-2 gap-2">
63
+ {Object.entries(colors.semantic).map(([name, color]) => (
64
+ <div key={name} className="flex items-center gap-2">
65
+ <div
66
+ className="w-6 h-6 rounded border border-gray-200 dark:border-gray-700"
67
+ style={{ backgroundColor: color }}
68
+ />
69
+ <span className="text-sm text-gray-600 dark:text-gray-400 capitalize">
70
+ {name.replace(/([A-Z])/g, ' $1').trim()}
71
+ </span>
72
+ </div>
73
+ ))}
74
+ </div>
75
+ </div>
76
+
77
+ {/* Neutral Colors */}
78
+ <div>
79
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
80
+ Neutral Colors
81
+ </h5>
82
+ <div className="grid grid-cols-5 gap-2">
83
+ {Object.entries(colors.neutral).map(([shade, color]) => (
84
+ <div key={shade} className="text-center">
85
+ <div
86
+ className="w-12 h-12 rounded-lg border border-gray-200 dark:border-gray-700 mb-1"
87
+ style={{ backgroundColor: color }}
88
+ />
89
+ <span className="text-xs text-gray-600 dark:text-gray-400">{shade}</span>
90
+ </div>
91
+ ))}
92
+ </div>
93
+ </div>
94
+ </div>
95
+ );
96
+ };
97
+
98
+ const renderFontPreview = () => {
99
+ if (!showFonts) return null;
100
+
101
+ const { fonts } = themeConfig;
102
+
103
+ return (
104
+ <div className="space-y-4">
105
+ <h4 className="text-lg font-semibold">Typography</h4>
106
+
107
+ {/* Primary Font */}
108
+ <div>
109
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
110
+ Primary Font: {fonts.primary.family}
111
+ </h5>
112
+ <div className="space-y-2">
113
+ {Object.entries(fonts.primary.sizes).map(([size, value]) => (
114
+ <div key={size} className="flex items-center gap-4">
115
+ <span className="text-xs text-gray-500 w-12">{size}:</span>
116
+ <span
117
+ className="font-primary"
118
+ style={{
119
+ fontSize: value,
120
+ fontWeight: fonts.primary.weights[0] || 400
121
+ }}
122
+ >
123
+ The quick brown fox jumps over the lazy dog
124
+ </span>
125
+ </div>
126
+ ))}
127
+ </div>
128
+ </div>
129
+
130
+ {/* Font Weights */}
131
+ <div>
132
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
133
+ Font Weights
134
+ </h5>
135
+ <div className="space-y-2">
136
+ {fonts.primary.weights.map((weight) => (
137
+ <div key={weight} className="flex items-center gap-4">
138
+ <span className="text-xs text-gray-500 w-12">{weight}:</span>
139
+ <span
140
+ className="font-primary"
141
+ style={{
142
+ fontSize: '1rem',
143
+ fontWeight: weight
144
+ }}
145
+ >
146
+ The quick brown fox jumps over the lazy dog
147
+ </span>
148
+ </div>
149
+ ))}
150
+ </div>
151
+ </div>
152
+ </div>
153
+ );
154
+ };
155
+
156
+ const renderNavigationPreview = () => {
157
+ if (!showNavigation) return null;
158
+
159
+ const { navigation } = themeConfig;
160
+
161
+ return (
162
+ <div className="space-y-4">
163
+ <h4 className="text-lg font-semibold">Navigation</h4>
164
+
165
+ <div className="grid grid-cols-2 gap-4">
166
+ <div>
167
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
168
+ Configuration
169
+ </h5>
170
+ <div className="space-y-2 text-sm">
171
+ <div className="flex justify-between">
172
+ <span className="text-gray-600 dark:text-gray-400">Layout:</span>
173
+ <Badge variant="outline">{navigation.layout}</Badge>
174
+ </div>
175
+ <div className="flex justify-between">
176
+ <span className="text-gray-600 dark:text-gray-400">Style:</span>
177
+ <Badge variant="outline">{navigation.style}</Badge>
178
+ </div>
179
+ <div className="flex justify-between">
180
+ <span className="text-gray-600 dark:text-gray-400">Behavior:</span>
181
+ <Badge variant="outline">{navigation.behavior}</Badge>
182
+ </div>
183
+ <div className="flex justify-between">
184
+ <span className="text-gray-600 dark:text-gray-400">Responsive:</span>
185
+ <Badge variant="outline">{navigation.responsive}</Badge>
186
+ </div>
187
+ </div>
188
+ </div>
189
+
190
+ <div>
191
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
192
+ Animations
193
+ </h5>
194
+ <div className="space-y-2 text-sm">
195
+ <div className="flex justify-between">
196
+ <span className="text-gray-600 dark:text-gray-400">Duration:</span>
197
+ <span className="text-gray-900 dark:text-gray-100">
198
+ {navigation.animations.duration.normal}
199
+ </span>
200
+ </div>
201
+ <div className="flex justify-between">
202
+ <span className="text-gray-600 dark:text-gray-400">Easing:</span>
203
+ <span className="text-gray-900 dark:text-gray-100">
204
+ {navigation.animations.easing.ease}
205
+ </span>
206
+ </div>
207
+ <div className="flex justify-between">
208
+ <span className="text-gray-600 dark:text-gray-400">Stagger:</span>
209
+ <span className="text-gray-900 dark:text-gray-100">
210
+ {navigation.animations.stagger.enabled ? 'Enabled' : 'Disabled'}
211
+ </span>
212
+ </div>
213
+ </div>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ );
218
+ };
219
+
220
+ const renderSpacingPreview = () => {
221
+ if (!showSpacing) return null;
222
+
223
+ const { spacing } = themeConfig;
224
+
225
+ return (
226
+ <div className="space-y-4">
227
+ <h4 className="text-lg font-semibold">Spacing</h4>
228
+
229
+ <div>
230
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
231
+ Scale
232
+ </h5>
233
+ <div className="space-y-2">
234
+ {Object.entries(spacing.scale).map(([size, value]) => (
235
+ <div key={size} className="flex items-center gap-4">
236
+ <span className="text-xs text-gray-500 w-12">{size}:</span>
237
+ <div
238
+ className="bg-blue-500 rounded"
239
+ style={{
240
+ width: value,
241
+ height: '1rem'
242
+ }}
243
+ />
244
+ <span className="text-sm text-gray-600 dark:text-gray-400">{value}</span>
245
+ </div>
246
+ ))}
247
+ </div>
248
+ </div>
249
+
250
+ <div>
251
+ <h5 className="text-sm font-medium text-gray-700 dark:text-gray-300 mb-2">
252
+ Component Spacing
253
+ </h5>
254
+ <div className="space-y-2">
255
+ {Object.entries(spacing.component).map(([component, spacingConfig]) => (
256
+ <div key={component} className="border border-gray-200 dark:border-gray-700 rounded p-2">
257
+ <h6 className="text-xs font-medium text-gray-700 dark:text-gray-300 mb-1 capitalize">
258
+ {component}
259
+ </h6>
260
+ <div className="grid grid-cols-3 gap-2 text-xs">
261
+ {Object.entries(spacingConfig).map(([prop, value]) => (
262
+ <div key={prop} className="text-center">
263
+ <div className="text-gray-500 capitalize">{prop}</div>
264
+ <div className="text-gray-900 dark:text-gray-100">{String(value)}</div>
265
+ </div>
266
+ ))}
267
+ </div>
268
+ </div>
269
+ ))}
270
+ </div>
271
+ </div>
272
+ </div>
273
+ );
274
+ };
275
+
276
+ return (
277
+ <div className={`theme-preview ${className}`}>
278
+ <Card>
279
+ <CardHeader>
280
+ <CardTitle className="flex items-center gap-2">
281
+ <span className="text-2xl">
282
+ {targetTheme === 'stan-design' ? '⚡' :
283
+ targetTheme === 'enterprise' ? '🏢' :
284
+ targetTheme === 'harvey' ? '🎨' : '🎯'}
285
+ </span>
286
+ {themeConfig.meta.name} Theme Preview
287
+ </CardTitle>
288
+ <p className="text-sm text-gray-600 dark:text-gray-400">
289
+ {themeConfig.meta.description}
290
+ </p>
291
+ <div className="flex gap-2">
292
+ <Badge variant="outline">{themeConfig.meta.category}</Badge>
293
+ <Badge variant="secondary">v{themeConfig.meta.version}</Badge>
294
+ </div>
295
+ </CardHeader>
296
+ <CardContent className="space-y-6">
297
+ {renderColorPreview()}
298
+ {renderFontPreview()}
299
+ {renderNavigationPreview()}
300
+ {renderSpacingPreview()}
301
+ </CardContent>
302
+ </Card>
303
+ </div>
304
+ );
305
+ };