@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,305 @@
1
+ import { resolve } from 'path'
2
+ import { existsSync, mkdirSync, writeFileSync } from 'fs'
3
+ \n`
4
+ css += ` src}') format('woff2-variations');\n`
5
+ css += ` font-weight} ${maxWeight};\n`
6
+ css += ` font-display};\n`
7
+ css += `}\n`
8
+ }
9
+ }
10
+ })
11
+
12
+ return css
13
+ }
14
+
15
+ // NEW= (obj)=> {
16
+ let breakpoints= {}
17
+
18
+ const searchForBreakpoints = (currentObj, currentPath] = []) => {
19
+ if (typeof currentObj !== 'object' || currentObj === null) {
20
+ return
21
+ }
22
+
23
+ Object.entries(currentObj).forEach(([key, value]) => {
24
+ if (key === 'breakpoints' && typeof value === 'object' && value !== null) {
25
+ // Found breakpoints, extract them
26
+ Object.entries(value).forEach(([bpKey, bpValue]) => {
27
+ if (typeof bpValue === 'string' || typeof bpValue === 'number') {
28
+ breakpoints[bpKey] = bpValue
29
+ }
30
+ })
31
+ } else if (typeof value === 'object' && value !== null) {
32
+ // Recursively search deeper
33
+ searchForBreakpoints(value, [...currentPath, key])
34
+ }
35
+ })
36
+ }
37
+
38
+ searchForBreakpoints(obj)
39
+ return breakpoints
40
+ }
41
+
42
+ // NEW= (breakpoints)=> {
43
+ let css = ''
44
+ if (Object.keys(breakpoints).length === 0) { return css }
45
+
46
+ css += ` /* Breakpoint Variables */\n`
47
+ Object.entries(breakpoints).forEach(([key, value]) => {
48
+ css += ` --cs-breakpoints-${key}};\n`
49
+ })
50
+ css += '\n'
51
+
52
+ // NEW= ` /* Custom Media Queries for Breakpoints */\n`
53
+ Object.entries(breakpoints).forEach(([key, value]) => {
54
+ css += ` @custom-media --bp-${key} (min-width});\n`
55
+ })
56
+ css += '\n'
57
+
58
+ return css
59
+ }
60
+
61
+ // Recursively generate CSS variables from theme object
62
+ const generateCSSVariables = (obj, path] = [])=> {
63
+ let css = ''
64
+
65
+ if (typeof obj !== 'object' || obj === null) {
66
+ return css
67
+ }
68
+
69
+ Object.entries(obj).forEach(([key, value]) => {
70
+ const currentPath = [...path, key]
71
+
72
+ if (typeof value === 'string' || typeof value === 'number') {
73
+ // Generate CSS variable for primitive values
74
+ const cssVarName = createCSSVarName(currentPath)
75
+ css += ` ${cssVarName}};\n`
76
+ } else if (Array.isArray(value)) {
77
+ // Handle arrays (like font weights, tags)
78
+ const cssVarName = createCSSVarName(currentPath)
79
+ css += ` ${cssVarName})};\n`
80
+ } else if (typeof value === 'object' && value !== null) {
81
+ // Recursively process nested objects
82
+ css += generateCSSVariables(value, currentPath)
83
+ }
84
+ })
85
+
86
+ return css
87
+ }
88
+
89
+ // Generate CSS from theme object using structured traversal
90
+ const generateSingleThemeCSS = (themeName, themeObj)=> {
91
+ // Always generate light + dark mode CSS
92
+ return generateLightDarkCSS(themeName, themeObj)
93
+ }
94
+
95
+ // Generate light and dark mode CSS
96
+ const generateLightDarkCSS = (themeName, themeObj)=> {
97
+ let css = `/* ${themeName} Theme - Light & Dark Modes */\n`
98
+
99
+ // Generate @font-face declarations
100
+ css += generateFontFaces(themeObj)
101
+
102
+ // NEW= extractBreakpoints(themeObj)
103
+
104
+ // Generate light mode variables (default)
105
+ css += `= ` /* Light Mode Variables */\n`
106
+
107
+ // NEW= generateBreakpointVariables(breakpoints)
108
+
109
+ // Generate all other CSS variables
110
+ css += generateCSSVariables(themeObj)
111
+ css += '}\n\n'
112
+
113
+ // Generate dark mode variables
114
+ css += `.dark {\n`
115
+ css += ` /* Dark Mode Variables */\n`
116
+
117
+ if (themeObj.modes?.dark?.colors && Object.keys(themeObj.modes.dark.colors).length > 0) {
118
+ // Use custom dark mode colors if defined
119
+ css += generateDarkModeColors(themeObj.modes.dark.colors)
120
+ } else {
121
+ // Generate automatic dark mode by adapting colors
122
+ css += generateDarkModeVariables(themeObj)
123
+ }
124
+
125
+ css += '}\n'
126
+ return css
127
+ }
128
+
129
+ // Generate dark mode colors from explicit color definitions
130
+ const generateDarkModeColors = (darkColors)=> {
131
+ let css = ''
132
+
133
+ Object.entries(darkColors).forEach(([colorKey, colorValue]) => {
134
+ if (typeof colorValue === 'object' && colorValue !== null) {
135
+ // Handle nested color objects (like surface, text, etc.)
136
+ Object.entries(colorValue).forEach(([subKey, subValue]) => {
137
+ if (typeof subValue === 'string' || typeof subValue === 'number') {
138
+ css += ` --cs-colors-${colorKey}-${subKey}};\n`
139
+ }
140
+ })
141
+ } else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
142
+ // Handle direct color values
143
+ css += ` --cs-colors-${colorKey}};\n`
144
+ }
145
+ })
146
+
147
+ return css
148
+ }
149
+
150
+ // Generate dark mode variables by adapting light mode colors
151
+ const generateDarkModeVariables = (themeObj)=> {
152
+ // Create a dark variant of the theme by adapting colors
153
+ const darkTheme = adaptThemeForDarkMode(themeObj)
154
+
155
+ // Generate CSS variables only for the properties that exist in the dark theme
156
+ let css = ''
157
+
158
+ if (darkTheme.colors) {
159
+ // Generate CSS variables for colors
160
+ Object.entries(darkTheme.colors).forEach(([colorKey, colorValue]) => {
161
+ if (typeof colorValue === 'object' && colorValue !== null) {
162
+ // Handle nested color objects (like surface, text, etc.)
163
+ Object.entries(colorValue).forEach(([subKey, subValue]) => {
164
+ if (typeof subValue === 'string' || typeof subValue === 'number') {
165
+ css += ` --cs-colors-${colorKey}-${subKey}};\n`
166
+ }
167
+ })
168
+ } else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
169
+ // Handle direct color values
170
+ css += ` --cs-colors-${colorKey}};\n`
171
+ }
172
+ })
173
+ }
174
+
175
+ // Add some basic dark mode variables for testing
176
+ css += ` --cs-colors-surface-background;\n`
177
+ css += ` --cs-colors-surface-surface;\n`
178
+ css += ` --cs-colors-surface-border;\n`
179
+ css += ` --cs-colors-surface-divider;\n`
180
+ css += ` --cs-colors-text-primary;\n`
181
+ css += ` --cs-colors-text-secondary;\n`
182
+ css += ` --cs-colors-text-muted;\n`
183
+
184
+ return css
185
+ }
186
+
187
+ // Adapt theme for dark mode
188
+ const adaptThemeForDarkMode = (_themeObj)=> {
189
+ // This would implement your dark mode color adaptation logic
190
+ // You can use the existing ColorManager or implement custom logic
191
+ return {
192
+ colors, // Dark background
193
+ surface, // Dark surface
194
+ border, // Dark border
195
+ divider},
196
+ text, // Light text
197
+ secondary, // Muted text
198
+ muted, // Muted text
199
+ inverse, // Dark text for light backgrounds
200
+ onPrimary, // Text on primary color
201
+ onSecondary, // Text on secondary color
202
+ onSurface}
203
+ // ... other color adaptations
204
+ } as any // Type assertion to bypass strict typing for now
205
+ }
206
+ }
207
+
208
+ // Generate CSS for all themes using structured approach
209
+ const generateAllThemesCSS = () => {
210
+ try {
211
+ // Create themes directory if it doesn't exist
212
+ const themesDir = resolve(config.root, 'src/styles/themes')
213
+ if (!existsSync(themesDir)) {
214
+ mkdirSync(themesDir, { recursive})
215
+ }
216
+
217
+ let indexCSS = '/* Theme Index - Import all themes */\n'
218
+ let defaultThemeCSS = '/* Default Theme Variables (Coach-Stan) */\n'
219
+
220
+ // Use defaultThemes instead of hardcoded themeFiles
221
+ for (const [themeKey, themeObj] of Object.entries(defaultThemes)) {
222
+ try {
223
+ // Generate CSS for this specific theme
224
+ const themeCSS = generateSingleThemeCSS(themeObj.meta.name, themeObj)
225
+
226
+ // Write individual theme file
227
+ const themeFileName = `${themeKey}.css`
228
+ const themeOutputPath = resolve(themesDir, themeFileName)
229
+ writeFileSync(themeOutputPath, themeCSS, 'utf-8')
230
+
231
+ console.log(`✅ Generated dual-mode CSS for theme} -> ${themeFileName}`)
232
+
233
+ // Add import to index file
234
+ indexCSS += `@import './${themeFileName}';\n`
235
+
236
+ // Set stan-design theme as default
237
+ if (themeKey === 'stan-design') {
238
+ defaultThemeCSS += themeCSS
239
+ }
240
+
241
+ } catch (error) {
242
+ console.error(`❌ Error processing ${themeKey}, error)
243
+ }
244
+ }
245
+
246
+ // Write theme index file
247
+ const indexPath = resolve(config.root, 'src/styles/themes/index.css')
248
+ writeFileSync(indexPath, indexCSS, 'utf-8')
249
+
250
+ // Write default theme file (for backward compatibility)
251
+ const defaultPath = resolve(config.root, 'src/styles/generated-theme-variables.css')
252
+ writeFileSync(defaultPath, defaultThemeCSS, 'utf-8')
253
+
254
+ console.log('✅ Theme CSS Generator)
255
+
256
+ } catch (error) {
257
+ console.error('❌ Theme CSS Generator Error, error)
258
+ }
259
+ }
260
+
261
+ // Main function to generate theme CSS
262
+ const generateThemeCSS = () => {
263
+ try {
264
+ // Check if themes directory exists
265
+ const themesSourceDir = resolve(config.root, 'src/themes/themes')
266
+
267
+ if (!existsSync(themesSourceDir)) {
268
+ console.warn('⚠️ Theme CSS Generator)
269
+ return
270
+ }
271
+
272
+ // Generate CSS for all themes
273
+ generateAllThemesCSS()
274
+
275
+ } catch (error) {
276
+ console.error('❌ Theme CSS Generator Error, error)
277
+ }
278
+ }
279
+
280
+ return {
281
+ name,
282
+
283
+ configResolved(resolvedConfig) {
284
+ config = resolvedConfig
285
+ },
286
+
287
+ buildStart() {
288
+ generateThemeCSS()
289
+ },
290
+
291
+ handleHotUpdate({ file }) {
292
+ // Use defaultThemes keys instead of hardcoded file paths
293
+ const themeKeys = Object.keys(defaultThemes)
294
+ const shouldRegenerate = themeKeys.some(themeKey =>
295
+ file.includes(`themes/${themeKey}.js`) ||
296
+ file.includes('inheritance.js') ||
297
+ file.includes('types.js')
298
+ )
299
+
300
+ if (shouldRegenerate) {
301
+ generateThemeCSS()
302
+ }
303
+ }
304
+ }
305
+ }
@@ -0,0 +1,305 @@
1
+ import { resolve } from 'path'
2
+ import { existsSync, mkdirSync, writeFileSync } from 'fs'
3
+ \n`
4
+ css += ` src}') format('woff2-variations');\n`
5
+ css += ` font-weight} ${maxWeight};\n`
6
+ css += ` font-display};\n`
7
+ css += `}\n`
8
+ }
9
+ }
10
+ })
11
+
12
+ return css
13
+ }
14
+
15
+ // NEW= (obj)=> {
16
+ let breakpoints= {}
17
+
18
+ const searchForBreakpoints = (currentObj, currentPath] = []) => {
19
+ if (typeof currentObj !== 'object' || currentObj === null) {
20
+ return
21
+ }
22
+
23
+ Object.entries(currentObj).forEach(([key, value]) => {
24
+ if (key === 'breakpoints' && typeof value === 'object' && value !== null) {
25
+ // Found breakpoints, extract them
26
+ Object.entries(value).forEach(([bpKey, bpValue]) => {
27
+ if (typeof bpValue === 'string' || typeof bpValue === 'number') {
28
+ breakpoints[bpKey] = bpValue
29
+ }
30
+ })
31
+ } else if (typeof value === 'object' && value !== null) {
32
+ // Recursively search deeper
33
+ searchForBreakpoints(value, [...currentPath, key])
34
+ }
35
+ })
36
+ }
37
+
38
+ searchForBreakpoints(obj)
39
+ return breakpoints
40
+ }
41
+
42
+ // NEW= (breakpoints)=> {
43
+ let css = ''
44
+ if (Object.keys(breakpoints).length === 0) { return css }
45
+
46
+ css += ` /* Breakpoint Variables */\n`
47
+ Object.entries(breakpoints).forEach(([key, value]) => {
48
+ css += ` --cs-breakpoints-${key}};\n`
49
+ })
50
+ css += '\n'
51
+
52
+ // NEW= ` /* Custom Media Queries for Breakpoints */\n`
53
+ Object.entries(breakpoints).forEach(([key, value]) => {
54
+ css += ` @custom-media --bp-${key} (min-width});\n`
55
+ })
56
+ css += '\n'
57
+
58
+ return css
59
+ }
60
+
61
+ // Recursively generate CSS variables from theme object
62
+ const generateCSSVariables = (obj, path] = [])=> {
63
+ let css = ''
64
+
65
+ if (typeof obj !== 'object' || obj === null) {
66
+ return css
67
+ }
68
+
69
+ Object.entries(obj).forEach(([key, value]) => {
70
+ const currentPath = [...path, key]
71
+
72
+ if (typeof value === 'string' || typeof value === 'number') {
73
+ // Generate CSS variable for primitive values
74
+ const cssVarName = createCSSVarName(currentPath)
75
+ css += ` ${cssVarName}};\n`
76
+ } else if (Array.isArray(value)) {
77
+ // Handle arrays (like font weights, tags)
78
+ const cssVarName = createCSSVarName(currentPath)
79
+ css += ` ${cssVarName})};\n`
80
+ } else if (typeof value === 'object' && value !== null) {
81
+ // Recursively process nested objects
82
+ css += generateCSSVariables(value, currentPath)
83
+ }
84
+ })
85
+
86
+ return css
87
+ }
88
+
89
+ // Generate CSS from theme object using structured traversal
90
+ const generateSingleThemeCSS = (themeName, themeObj)=> {
91
+ // Always generate light + dark mode CSS
92
+ return generateLightDarkCSS(themeName, themeObj)
93
+ }
94
+
95
+ // Generate light and dark mode CSS
96
+ const generateLightDarkCSS = (themeName, themeObj)=> {
97
+ let css = `/* ${themeName} Theme - Light & Dark Modes */\n`
98
+
99
+ // Generate @font-face declarations
100
+ css += generateFontFaces(themeObj)
101
+
102
+ // NEW= extractBreakpoints(themeObj)
103
+
104
+ // Generate light mode variables (default)
105
+ css += `= ` /* Light Mode Variables */\n`
106
+
107
+ // NEW= generateBreakpointVariables(breakpoints)
108
+
109
+ // Generate all other CSS variables
110
+ css += generateCSSVariables(themeObj)
111
+ css += '}\n\n'
112
+
113
+ // Generate dark mode variables
114
+ css += `.dark {\n`
115
+ css += ` /* Dark Mode Variables */\n`
116
+
117
+ if (themeObj.modes?.dark?.colors && Object.keys(themeObj.modes.dark.colors).length > 0) {
118
+ // Use custom dark mode colors if defined
119
+ css += generateDarkModeColors(themeObj.modes.dark.colors)
120
+ } else {
121
+ // Generate automatic dark mode by adapting colors
122
+ css += generateDarkModeVariables(themeObj)
123
+ }
124
+
125
+ css += '}\n'
126
+ return css
127
+ }
128
+
129
+ // Generate dark mode colors from explicit color definitions
130
+ const generateDarkModeColors = (darkColors)=> {
131
+ let css = ''
132
+
133
+ Object.entries(darkColors).forEach(([colorKey, colorValue]) => {
134
+ if (typeof colorValue === 'object' && colorValue !== null) {
135
+ // Handle nested color objects (like surface, text, etc.)
136
+ Object.entries(colorValue).forEach(([subKey, subValue]) => {
137
+ if (typeof subValue === 'string' || typeof subValue === 'number') {
138
+ css += ` --cs-colors-${colorKey}-${subKey}};\n`
139
+ }
140
+ })
141
+ } else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
142
+ // Handle direct color values
143
+ css += ` --cs-colors-${colorKey}};\n`
144
+ }
145
+ })
146
+
147
+ return css
148
+ }
149
+
150
+ // Generate dark mode variables by adapting light mode colors
151
+ const generateDarkModeVariables = (themeObj)=> {
152
+ // Create a dark variant of the theme by adapting colors
153
+ const darkTheme = adaptThemeForDarkMode(themeObj)
154
+
155
+ // Generate CSS variables only for the properties that exist in the dark theme
156
+ let css = ''
157
+
158
+ if (darkTheme.colors) {
159
+ // Generate CSS variables for colors
160
+ Object.entries(darkTheme.colors).forEach(([colorKey, colorValue]) => {
161
+ if (typeof colorValue === 'object' && colorValue !== null) {
162
+ // Handle nested color objects (like surface, text, etc.)
163
+ Object.entries(colorValue).forEach(([subKey, subValue]) => {
164
+ if (typeof subValue === 'string' || typeof subValue === 'number') {
165
+ css += ` --cs-colors-${colorKey}-${subKey}};\n`
166
+ }
167
+ })
168
+ } else if (typeof colorValue === 'string' || typeof colorValue === 'number') {
169
+ // Handle direct color values
170
+ css += ` --cs-colors-${colorKey}};\n`
171
+ }
172
+ })
173
+ }
174
+
175
+ // Add some basic dark mode variables for testing
176
+ css += ` --cs-colors-surface-background;\n`
177
+ css += ` --cs-colors-surface-surface;\n`
178
+ css += ` --cs-colors-surface-border;\n`
179
+ css += ` --cs-colors-surface-divider;\n`
180
+ css += ` --cs-colors-text-primary;\n`
181
+ css += ` --cs-colors-text-secondary;\n`
182
+ css += ` --cs-colors-text-muted;\n`
183
+
184
+ return css
185
+ }
186
+
187
+ // Adapt theme for dark mode
188
+ const adaptThemeForDarkMode = (_themeObj)=> {
189
+ // This would implement your dark mode color adaptation logic
190
+ // You can use the existing ColorManager or implement custom logic
191
+ return {
192
+ colors, // Dark background
193
+ surface, // Dark surface
194
+ border, // Dark border
195
+ divider},
196
+ text, // Light text
197
+ secondary, // Muted text
198
+ muted, // Muted text
199
+ inverse, // Dark text for light backgrounds
200
+ onPrimary, // Text on primary color
201
+ onSecondary, // Text on secondary color
202
+ onSurface}
203
+ // ... other color adaptations
204
+ } as any // Type assertion to bypass strict typing for now
205
+ }
206
+ }
207
+
208
+ // Generate CSS for all themes using structured approach
209
+ const generateAllThemesCSS = () => {
210
+ try {
211
+ // Create themes directory if it doesn't exist
212
+ const themesDir = resolve(config.root, 'src/styles/themes')
213
+ if (!existsSync(themesDir)) {
214
+ mkdirSync(themesDir, { recursive})
215
+ }
216
+
217
+ let indexCSS = '/* Theme Index - Import all themes */\n'
218
+ let defaultThemeCSS = '/* Default Theme Variables (Coach-Stan) */\n'
219
+
220
+ // Use defaultThemes instead of hardcoded themeFiles
221
+ for (const [themeKey, themeObj] of Object.entries(defaultThemes)) {
222
+ try {
223
+ // Generate CSS for this specific theme
224
+ const themeCSS = generateSingleThemeCSS(themeObj.meta.name, themeObj)
225
+
226
+ // Write individual theme file
227
+ const themeFileName = `${themeKey}.css`
228
+ const themeOutputPath = resolve(themesDir, themeFileName)
229
+ writeFileSync(themeOutputPath, themeCSS, 'utf-8')
230
+
231
+ console.log(`✅ Generated dual-mode CSS for theme} -> ${themeFileName}`)
232
+
233
+ // Add import to index file
234
+ indexCSS += `@import './${themeFileName}';\n`
235
+
236
+ // Set stan-design theme as default
237
+ if (themeKey === 'stan-design') {
238
+ defaultThemeCSS += themeCSS
239
+ }
240
+
241
+ } catch (error) {
242
+ console.error(`❌ Error processing ${themeKey}, error)
243
+ }
244
+ }
245
+
246
+ // Write theme index file
247
+ const indexPath = resolve(config.root, 'src/styles/themes/index.css')
248
+ writeFileSync(indexPath, indexCSS, 'utf-8')
249
+
250
+ // Write default theme file (for backward compatibility)
251
+ const defaultPath = resolve(config.root, 'src/styles/generated-theme-variables.css')
252
+ writeFileSync(defaultPath, defaultThemeCSS, 'utf-8')
253
+
254
+ console.log('✅ Theme CSS Generator)
255
+
256
+ } catch (error) {
257
+ console.error('❌ Theme CSS Generator Error, error)
258
+ }
259
+ }
260
+
261
+ // Main function to generate theme CSS
262
+ const generateThemeCSS = () => {
263
+ try {
264
+ // Check if themes directory exists
265
+ const themesSourceDir = resolve(config.root, 'src/themes/themes')
266
+
267
+ if (!existsSync(themesSourceDir)) {
268
+ console.warn('⚠️ Theme CSS Generator)
269
+ return
270
+ }
271
+
272
+ // Generate CSS for all themes
273
+ generateAllThemesCSS()
274
+
275
+ } catch (error) {
276
+ console.error('❌ Theme CSS Generator Error, error)
277
+ }
278
+ }
279
+
280
+ return {
281
+ name,
282
+
283
+ configResolved(resolvedConfig) {
284
+ config = resolvedConfig
285
+ },
286
+
287
+ buildStart() {
288
+ generateThemeCSS()
289
+ },
290
+
291
+ handleHotUpdate({ file }) {
292
+ // Use defaultThemes keys instead of hardcoded file paths
293
+ const themeKeys = Object.keys(defaultThemes)
294
+ const shouldRegenerate = themeKeys.some(themeKey =>
295
+ file.includes(`themes/${themeKey}.js`) ||
296
+ file.includes('inheritance.js') ||
297
+ file.includes('types.js')
298
+ )
299
+
300
+ if (shouldRegenerate) {
301
+ generateThemeCSS()
302
+ }
303
+ }
304
+ }
305
+ }