@shohojdhara/atomix 0.3.3 → 0.3.4

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 (398) hide show
  1. package/README.md +46 -28
  2. package/dist/atomix.css +13 -6
  3. package/dist/atomix.min.css +1 -1
  4. package/dist/index.d.ts +912 -505
  5. package/dist/index.esm.js +2924 -2133
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +2719 -1916
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.min.js +1 -1
  10. package/dist/index.min.js.map +1 -1
  11. package/package.json +11 -62
  12. package/scripts/atomix-cli.js +338 -2
  13. package/scripts/cli/interactive-init.js +36 -44
  14. package/scripts/cli/theme-bridge.js +129 -0
  15. package/scripts/sync-theme-config.js +22 -22
  16. package/src/components/Button/Button.tsx +36 -1
  17. package/src/lib/config/index.ts +275 -0
  18. package/src/lib/config/loader.ts +105 -0
  19. package/src/lib/index.ts +1 -0
  20. package/src/lib/theme/composeTheme.ts +0 -5
  21. package/src/lib/theme/config/index.ts +1 -1
  22. package/src/lib/theme/config/loader.ts +75 -41
  23. package/src/lib/theme/config/types.ts +21 -7
  24. package/src/lib/theme/config/validator.ts +1 -1
  25. package/src/lib/theme/constants.ts +12 -2
  26. package/src/lib/theme/createTheme.ts +0 -1
  27. package/src/lib/theme/createThemeFromConfig.ts +132 -0
  28. package/src/lib/theme/devtools/CLI.ts +161 -76
  29. package/src/lib/theme/devtools/Comparator.tsx +343 -0
  30. package/src/lib/theme/devtools/IMPROVEMENTS.md +429 -0
  31. package/src/lib/theme/devtools/Inspector.tsx +21 -6
  32. package/src/lib/theme/devtools/LiveEditor.tsx +393 -0
  33. package/src/lib/theme/devtools/README.md +433 -0
  34. package/src/lib/theme/devtools/index.ts +12 -11
  35. package/src/lib/theme/generateCSSVariables.ts +79 -38
  36. package/src/lib/theme/index.ts +18 -2
  37. package/src/lib/theme/runtime/ThemeManager.test.ts +17 -1
  38. package/src/lib/theme/runtime/ThemeManager.ts +7 -7
  39. package/src/lib/theme/types.ts +42 -43
  40. package/src/lib/theme-tools.ts +7 -67
  41. package/src/lib/types/components.ts +69 -75
  42. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  43. package/src/styles/03-generic/_generated-root.css +5 -0
  44. package/src/styles/06-components/_components.navbar.scss +12 -5
  45. package/src/themes/README.md +1 -2
  46. package/src/themes/themes.config.js +10 -194
  47. package/dist/themes/applemix.css +0 -16576
  48. package/dist/themes/applemix.css.map +0 -1
  49. package/dist/themes/applemix.min.css +0 -73
  50. package/dist/themes/boomdevs.css +0 -16007
  51. package/dist/themes/boomdevs.css.map +0 -1
  52. package/dist/themes/boomdevs.min.css +0 -406
  53. package/dist/themes/esrar.css +0 -18424
  54. package/dist/themes/esrar.css.map +0 -1
  55. package/dist/themes/esrar.min.css +0 -221
  56. package/dist/themes/flashtrade.css +0 -17596
  57. package/dist/themes/flashtrade.css.map +0 -1
  58. package/dist/themes/flashtrade.min.css +0 -196
  59. package/dist/themes/mashroom.css +0 -31082
  60. package/dist/themes/mashroom.css.map +0 -1
  61. package/dist/themes/mashroom.min.css +0 -450
  62. package/dist/themes/shaj-default.css +0 -17200
  63. package/dist/themes/shaj-default.css.map +0 -1
  64. package/dist/themes/shaj-default.min.css +0 -502
  65. package/src/lib/theme/__tests__/ThemeBuilder.test.ts +0 -223
  66. package/src/lib/theme/builders/ThemeBuilder.ts +0 -372
  67. package/src/lib/theme/errors.test.ts +0 -207
  68. package/src/lib/theme/generators/CSSGenerator.ts +0 -311
  69. package/src/lib/theme/generators/ConfigGenerator.ts +0 -287
  70. package/src/lib/theme/generators/TypeGenerator.ts +0 -228
  71. package/src/lib/theme/generators/index.ts +0 -21
  72. package/src/lib/theme/monitoring/ThemeAnalytics.ts +0 -409
  73. package/src/lib/theme/monitoring/index.ts +0 -17
  74. package/src/lib/theme/overrides/ComponentOverrides.ts +0 -243
  75. package/src/lib/theme/overrides/index.ts +0 -15
  76. package/src/lib/theme/whitelabel/WhiteLabelManager.ts +0 -364
  77. package/src/lib/theme/whitelabel/index.ts +0 -13
  78. package/src/themes/THEME_CHECKLIST.md +0 -74
  79. package/src/themes/applemix/01-settings/_index.scss +0 -24
  80. package/src/themes/applemix/01-settings/_settings.animations.scss +0 -0
  81. package/src/themes/applemix/01-settings/_settings.background.scss +0 -6
  82. package/src/themes/applemix/01-settings/_settings.colors.scss +0 -75
  83. package/src/themes/applemix/01-settings/_settings.config.scss +0 -15
  84. package/src/themes/applemix/01-settings/_settings.typography.scss +0 -30
  85. package/src/themes/applemix/02-tools/_index.scss +0 -4
  86. package/src/themes/applemix/03-generic/_index.scss +0 -7
  87. package/src/themes/applemix/04-elements/_index.scss +0 -7
  88. package/src/themes/applemix/05-objects/_index.scss +0 -7
  89. package/src/themes/applemix/06-components/_index.scss +0 -15
  90. package/src/themes/applemix/99-utilities/_index.scss +0 -7
  91. package/src/themes/applemix/README.md +0 -378
  92. package/src/themes/applemix/index.scss +0 -33
  93. package/src/themes/boomdevs/01-settings/_index.scss +0 -38
  94. package/src/themes/boomdevs/01-settings/_settings.accordion.scss +0 -12
  95. package/src/themes/boomdevs/01-settings/_settings.animations.scss +0 -11
  96. package/src/themes/boomdevs/01-settings/_settings.avatar.scss +0 -9
  97. package/src/themes/boomdevs/01-settings/_settings.badge.scss +0 -11
  98. package/src/themes/boomdevs/01-settings/_settings.border-radius.scss +0 -16
  99. package/src/themes/boomdevs/01-settings/_settings.border.scss +0 -10
  100. package/src/themes/boomdevs/01-settings/_settings.box-shadow.scss +0 -14
  101. package/src/themes/boomdevs/01-settings/_settings.breadcrumb.scss +0 -13
  102. package/src/themes/boomdevs/01-settings/_settings.breakpoints.scss +0 -15
  103. package/src/themes/boomdevs/01-settings/_settings.button.scss +0 -9
  104. package/src/themes/boomdevs/01-settings/_settings.callout.scss +0 -9
  105. package/src/themes/boomdevs/01-settings/_settings.card.scss +0 -11
  106. package/src/themes/boomdevs/01-settings/_settings.checkbox.scss +0 -9
  107. package/src/themes/boomdevs/01-settings/_settings.colors.scss +0 -145
  108. package/src/themes/boomdevs/01-settings/_settings.dropdown.scss +0 -11
  109. package/src/themes/boomdevs/01-settings/_settings.grid.scss +0 -16
  110. package/src/themes/boomdevs/01-settings/_settings.input.scss +0 -14
  111. package/src/themes/boomdevs/01-settings/_settings.link.scss +0 -11
  112. package/src/themes/boomdevs/01-settings/_settings.list.scss +0 -10
  113. package/src/themes/boomdevs/01-settings/_settings.modal.scss +0 -16
  114. package/src/themes/boomdevs/01-settings/_settings.navbar.scss +0 -16
  115. package/src/themes/boomdevs/01-settings/_settings.pagination.scss +0 -13
  116. package/src/themes/boomdevs/01-settings/_settings.progress.scss +0 -11
  117. package/src/themes/boomdevs/01-settings/_settings.rating.scss +0 -10
  118. package/src/themes/boomdevs/01-settings/_settings.spacing.scss +0 -33
  119. package/src/themes/boomdevs/01-settings/_settings.spinner.scss +0 -11
  120. package/src/themes/boomdevs/01-settings/_settings.steps.scss +0 -12
  121. package/src/themes/boomdevs/01-settings/_settings.tabs.scss +0 -12
  122. package/src/themes/boomdevs/01-settings/_settings.todo.scss +0 -15
  123. package/src/themes/boomdevs/01-settings/_settings.toggle.scss +0 -14
  124. package/src/themes/boomdevs/01-settings/_settings.tooltip.scss +0 -13
  125. package/src/themes/boomdevs/01-settings/_settings.typography.scss +0 -58
  126. package/src/themes/boomdevs/01-settings/_settings.video-player.scss +0 -12
  127. package/src/themes/boomdevs/02-tools/_index.scss +0 -7
  128. package/src/themes/boomdevs/03-generic/_index.scss +0 -7
  129. package/src/themes/boomdevs/04-elements/_index.scss +0 -7
  130. package/src/themes/boomdevs/05-objects/_index.scss +0 -7
  131. package/src/themes/boomdevs/06-components/_components.button.scss +0 -11
  132. package/src/themes/boomdevs/06-components/_index.scss +0 -11
  133. package/src/themes/boomdevs/99-utilities/_index.scss +0 -7
  134. package/src/themes/boomdevs/index.scss +0 -26
  135. package/src/themes/esrar/01-settings/_index.scss +0 -15
  136. package/src/themes/esrar/01-settings/_settings.colors.scss +0 -91
  137. package/src/themes/esrar/02-tools/_index.scss +0 -8
  138. package/src/themes/esrar/02-tools/_tools.animations.scss +0 -342
  139. package/src/themes/esrar/06-components/_components.accordion.scss +0 -49
  140. package/src/themes/esrar/06-components/_components.avatar-group.scss +0 -14
  141. package/src/themes/esrar/06-components/_components.avatar.scss +0 -61
  142. package/src/themes/esrar/06-components/_components.badge.scss +0 -117
  143. package/src/themes/esrar/06-components/_components.breadcrumb.scss +0 -65
  144. package/src/themes/esrar/06-components/_components.btn-group.scss +0 -19
  145. package/src/themes/esrar/06-components/_components.button.scss +0 -224
  146. package/src/themes/esrar/06-components/_components.callout.scss +0 -51
  147. package/src/themes/esrar/06-components/_components.card.scss +0 -134
  148. package/src/themes/esrar/06-components/_components.chart.scss +0 -24
  149. package/src/themes/esrar/06-components/_components.checkbox-group.scss +0 -26
  150. package/src/themes/esrar/06-components/_components.checkbox.scss +0 -71
  151. package/src/themes/esrar/06-components/_components.color-mode-toggle.scss +0 -29
  152. package/src/themes/esrar/06-components/_components.countdown.scss +0 -67
  153. package/src/themes/esrar/06-components/_components.data-table.scss +0 -22
  154. package/src/themes/esrar/06-components/_components.datepicker.scss +0 -20
  155. package/src/themes/esrar/06-components/_components.dropdown.scss +0 -272
  156. package/src/themes/esrar/06-components/_components.edge-panel.scss +0 -10
  157. package/src/themes/esrar/06-components/_components.form-group.scss +0 -15
  158. package/src/themes/esrar/06-components/_components.form.scss +0 -66
  159. package/src/themes/esrar/06-components/_components.hero.scss +0 -251
  160. package/src/themes/esrar/06-components/_components.icon.scss +0 -33
  161. package/src/themes/esrar/06-components/_components.image-gallery.scss +0 -29
  162. package/src/themes/esrar/06-components/_components.input.scss +0 -91
  163. package/src/themes/esrar/06-components/_components.list-group.scss +0 -26
  164. package/src/themes/esrar/06-components/_components.modal.scss +0 -148
  165. package/src/themes/esrar/06-components/_components.notification.scss +0 -80
  166. package/src/themes/esrar/06-components/_components.pagination.scss +0 -84
  167. package/src/themes/esrar/06-components/_components.popover.scss +0 -10
  168. package/src/themes/esrar/06-components/_components.progress.scss +0 -64
  169. package/src/themes/esrar/06-components/_components.rating.scss +0 -26
  170. package/src/themes/esrar/06-components/_components.skeleton.scss +0 -15
  171. package/src/themes/esrar/06-components/_components.slider.scss +0 -90
  172. package/src/themes/esrar/06-components/_components.spinner.scss +0 -71
  173. package/src/themes/esrar/06-components/_components.steps.scss +0 -76
  174. package/src/themes/esrar/06-components/_components.tab.scss +0 -58
  175. package/src/themes/esrar/06-components/_components.tag.scss +0 -21
  176. package/src/themes/esrar/06-components/_components.timeline.scss +0 -19
  177. package/src/themes/esrar/06-components/_components.toast.scss +0 -91
  178. package/src/themes/esrar/06-components/_components.toggle.scss +0 -74
  179. package/src/themes/esrar/06-components/_components.tooltip.scss +0 -45
  180. package/src/themes/esrar/06-components/_components.upload.scss +0 -102
  181. package/src/themes/esrar/06-components/_index.scss +0 -42
  182. package/src/themes/esrar/index.scss +0 -30
  183. package/src/themes/flashtrade/01-settings/_index.scss +0 -19
  184. package/src/themes/flashtrade/01-settings/_settings.animations.scss +0 -11
  185. package/src/themes/flashtrade/01-settings/_settings.background.scss +0 -9
  186. package/src/themes/flashtrade/01-settings/_settings.colors.scss +0 -79
  187. package/src/themes/flashtrade/01-settings/_settings.config.scss +0 -16
  188. package/src/themes/flashtrade/01-settings/_settings.typography.scss +0 -35
  189. package/src/themes/flashtrade/02-tools/_index.scss +0 -8
  190. package/src/themes/flashtrade/03-generic/_index.scss +0 -8
  191. package/src/themes/flashtrade/04-elements/_index.scss +0 -12
  192. package/src/themes/flashtrade/05-objects/_index.scss +0 -8
  193. package/src/themes/flashtrade/06-components/_components.badge.scss +0 -156
  194. package/src/themes/flashtrade/06-components/_components.button.scss +0 -135
  195. package/src/themes/flashtrade/06-components/_components.card.scss +0 -214
  196. package/src/themes/flashtrade/06-components/_components.navbar.scss +0 -227
  197. package/src/themes/flashtrade/06-components/_index.scss +0 -13
  198. package/src/themes/flashtrade/99-utilities/_index.scss +0 -9
  199. package/src/themes/flashtrade/99-utilities/_utilities.trading.scss +0 -187
  200. package/src/themes/flashtrade/README.md +0 -386
  201. package/src/themes/flashtrade/demo.html +0 -272
  202. package/src/themes/flashtrade/index.scss +0 -36
  203. package/src/themes/mashroom/01-settings/_index.scss +0 -69
  204. package/src/themes/mashroom/01-settings/_settings.accordion.scss +0 -32
  205. package/src/themes/mashroom/01-settings/_settings.animations.scss +0 -26
  206. package/src/themes/mashroom/01-settings/_settings.avatar-group.scss +0 -22
  207. package/src/themes/mashroom/01-settings/_settings.avatar.scss +0 -57
  208. package/src/themes/mashroom/01-settings/_settings.badge.scss +0 -19
  209. package/src/themes/mashroom/01-settings/_settings.border-radius.scss +0 -24
  210. package/src/themes/mashroom/01-settings/_settings.border.scss +0 -14
  211. package/src/themes/mashroom/01-settings/_settings.box-shadow.scss +0 -40
  212. package/src/themes/mashroom/01-settings/_settings.breadcrumb.scss +0 -0
  213. package/src/themes/mashroom/01-settings/_settings.breakpoints.scss +0 -17
  214. package/src/themes/mashroom/01-settings/_settings.btn-group.scss +0 -5
  215. package/src/themes/mashroom/01-settings/_settings.button.scss +0 -50
  216. package/src/themes/mashroom/01-settings/_settings.callout.scss +0 -81
  217. package/src/themes/mashroom/01-settings/_settings.card.scss +0 -52
  218. package/src/themes/mashroom/01-settings/_settings.checkbox-group.scss +0 -5
  219. package/src/themes/mashroom/01-settings/_settings.checkbox.scss +0 -23
  220. package/src/themes/mashroom/01-settings/_settings.color-mode.scss +0 -7
  221. package/src/themes/mashroom/01-settings/_settings.colors.scss +0 -180
  222. package/src/themes/mashroom/01-settings/_settings.config.scss +0 -4
  223. package/src/themes/mashroom/01-settings/_settings.countdown.scss +0 -20
  224. package/src/themes/mashroom/01-settings/_settings.data-table.scss +0 -56
  225. package/src/themes/mashroom/01-settings/_settings.datepicker.scss +0 -45
  226. package/src/themes/mashroom/01-settings/_settings.design-tokens.scss +0 -3
  227. package/src/themes/mashroom/01-settings/_settings.dropdown.scss +0 -45
  228. package/src/themes/mashroom/01-settings/_settings.edge-panel.scss +0 -24
  229. package/src/themes/mashroom/01-settings/_settings.fonts.scss +0 -8
  230. package/src/themes/mashroom/01-settings/_settings.form-group.scss +0 -14
  231. package/src/themes/mashroom/01-settings/_settings.form.scss +0 -6
  232. package/src/themes/mashroom/01-settings/_settings.grid.scss +0 -23
  233. package/src/themes/mashroom/01-settings/_settings.hero.scss +0 -41
  234. package/src/themes/mashroom/01-settings/_settings.input.scss +0 -51
  235. package/src/themes/mashroom/01-settings/_settings.link.scss +0 -13
  236. package/src/themes/mashroom/01-settings/_settings.list-group.scss +0 -16
  237. package/src/themes/mashroom/01-settings/_settings.list.scss +0 -13
  238. package/src/themes/mashroom/01-settings/_settings.masonry-grid.scss +0 -23
  239. package/src/themes/mashroom/01-settings/_settings.menu.scss +0 -50
  240. package/src/themes/mashroom/01-settings/_settings.messages.scss +0 -98
  241. package/src/themes/mashroom/01-settings/_settings.modal.scss +0 -41
  242. package/src/themes/mashroom/01-settings/_settings.nav.scss +0 -20
  243. package/src/themes/mashroom/01-settings/_settings.navbar.scss +0 -54
  244. package/src/themes/mashroom/01-settings/_settings.pagination.scss +0 -30
  245. package/src/themes/mashroom/01-settings/_settings.photoviewer.scss +0 -45
  246. package/src/themes/mashroom/01-settings/_settings.popover.scss +0 -20
  247. package/src/themes/mashroom/01-settings/_settings.position.scss +0 -9
  248. package/src/themes/mashroom/01-settings/_settings.progress.scss +0 -17
  249. package/src/themes/mashroom/01-settings/_settings.rating.scss +0 -11
  250. package/src/themes/mashroom/01-settings/_settings.river.scss +0 -50
  251. package/src/themes/mashroom/01-settings/_settings.sectionintro.scss +0 -31
  252. package/src/themes/mashroom/01-settings/_settings.select.scss +0 -47
  253. package/src/themes/mashroom/01-settings/_settings.side-menu.scss +0 -79
  254. package/src/themes/mashroom/01-settings/_settings.skeleton.scss +0 -24
  255. package/src/themes/mashroom/01-settings/_settings.spacing.scss +0 -66
  256. package/src/themes/mashroom/01-settings/_settings.spinner.scss +0 -34
  257. package/src/themes/mashroom/01-settings/_settings.steps.scss +0 -33
  258. package/src/themes/mashroom/01-settings/_settings.tabs.scss +0 -33
  259. package/src/themes/mashroom/01-settings/_settings.testimonials.scss +0 -24
  260. package/src/themes/mashroom/01-settings/_settings.todo.scss +0 -52
  261. package/src/themes/mashroom/01-settings/_settings.toggle.scss +0 -49
  262. package/src/themes/mashroom/01-settings/_settings.tooltip.scss +0 -20
  263. package/src/themes/mashroom/01-settings/_settings.typography.scss +0 -95
  264. package/src/themes/mashroom/01-settings/_settings.upload.scss +0 -96
  265. package/src/themes/mashroom/01-settings/_settings.z-layers.scss +0 -19
  266. package/src/themes/mashroom/02-tools/_index.scss +0 -8
  267. package/src/themes/mashroom/02-tools/_tools.psychedelic-gradients.scss +0 -78
  268. package/src/themes/mashroom/02-tools/_tools.trippy-effects.scss +0 -114
  269. package/src/themes/mashroom/03-generic/_index.scss +0 -6
  270. package/src/themes/mashroom/04-elements/_index.scss +0 -6
  271. package/src/themes/mashroom/05-objects/_index.scss +0 -6
  272. package/src/themes/mashroom/06-components/_components.accordion.scss +0 -187
  273. package/src/themes/mashroom/06-components/_components.avatar-group.scss +0 -276
  274. package/src/themes/mashroom/06-components/_components.avatar.scss +0 -114
  275. package/src/themes/mashroom/06-components/_components.badge.scss +0 -152
  276. package/src/themes/mashroom/06-components/_components.breadcrumb.scss +0 -162
  277. package/src/themes/mashroom/06-components/_components.btn-group.scss +0 -404
  278. package/src/themes/mashroom/06-components/_components.button.scss +0 -160
  279. package/src/themes/mashroom/06-components/_components.callout.scss +0 -140
  280. package/src/themes/mashroom/06-components/_components.card.scss +0 -225
  281. package/src/themes/mashroom/06-components/_components.checkbox.scss +0 -186
  282. package/src/themes/mashroom/06-components/_components.color-mode-toggle.scss +0 -308
  283. package/src/themes/mashroom/06-components/_components.countdown.scss +0 -402
  284. package/src/themes/mashroom/06-components/_components.data-table.scss +0 -354
  285. package/src/themes/mashroom/06-components/_components.datepicker.scss +0 -349
  286. package/src/themes/mashroom/06-components/_components.dropdown.scss +0 -334
  287. package/src/themes/mashroom/06-components/_components.edge-panel.scss +0 -413
  288. package/src/themes/mashroom/06-components/_components.form-group.scss +0 -433
  289. package/src/themes/mashroom/06-components/_components.form.scss +0 -358
  290. package/src/themes/mashroom/06-components/_components.hero.scss +0 -151
  291. package/src/themes/mashroom/06-components/_components.input.scss +0 -147
  292. package/src/themes/mashroom/06-components/_components.list-group.scss +0 -456
  293. package/src/themes/mashroom/06-components/_components.list.scss +0 -145
  294. package/src/themes/mashroom/06-components/_components.menu.scss +0 -497
  295. package/src/themes/mashroom/06-components/_components.messages.scss +0 -277
  296. package/src/themes/mashroom/06-components/_components.modal.scss +0 -264
  297. package/src/themes/mashroom/06-components/_components.nav.scss +0 -181
  298. package/src/themes/mashroom/06-components/_components.navbar.scss +0 -538
  299. package/src/themes/mashroom/06-components/_components.pagination.scss +0 -400
  300. package/src/themes/mashroom/06-components/_components.photoviewer.scss +0 -498
  301. package/src/themes/mashroom/06-components/_components.popover.scss +0 -383
  302. package/src/themes/mashroom/06-components/_components.product-review.scss +0 -408
  303. package/src/themes/mashroom/06-components/_components.progress.scss +0 -249
  304. package/src/themes/mashroom/06-components/_components.rating.scss +0 -300
  305. package/src/themes/mashroom/06-components/_components.river.scss +0 -570
  306. package/src/themes/mashroom/06-components/_components.sectionintro.scss +0 -546
  307. package/src/themes/mashroom/06-components/_components.select.scss +0 -455
  308. package/src/themes/mashroom/06-components/_components.side-menu.scss +0 -635
  309. package/src/themes/mashroom/06-components/_components.skeleton.scss +0 -447
  310. package/src/themes/mashroom/06-components/_components.slider.scss +0 -414
  311. package/src/themes/mashroom/06-components/_components.spinner.scss +0 -198
  312. package/src/themes/mashroom/06-components/_components.steps.scss +0 -350
  313. package/src/themes/mashroom/06-components/_components.tabs.scss +0 -269
  314. package/src/themes/mashroom/06-components/_components.testimonials.scss +0 -561
  315. package/src/themes/mashroom/06-components/_components.toggle.scss +0 -231
  316. package/src/themes/mashroom/06-components/_components.tooltip.scss +0 -167
  317. package/src/themes/mashroom/06-components/_components.upload.scss +0 -537
  318. package/src/themes/mashroom/06-components/_components.video-player.scss +0 -560
  319. package/src/themes/mashroom/06-components/_index.scss +0 -55
  320. package/src/themes/mashroom/99-utilities/_index.scss +0 -6
  321. package/src/themes/mashroom/index.scss +0 -26
  322. package/src/themes/shaj-default/01-settings/_index.scss +0 -69
  323. package/src/themes/shaj-default/01-settings/_settings.accordion.scss +0 -38
  324. package/src/themes/shaj-default/01-settings/_settings.animations.scss +0 -32
  325. package/src/themes/shaj-default/01-settings/_settings.avatar-group.scss +0 -28
  326. package/src/themes/shaj-default/01-settings/_settings.avatar.scss +0 -63
  327. package/src/themes/shaj-default/01-settings/_settings.badge.scss +0 -25
  328. package/src/themes/shaj-default/01-settings/_settings.border-radius.scss +0 -24
  329. package/src/themes/shaj-default/01-settings/_settings.border.scss +0 -20
  330. package/src/themes/shaj-default/01-settings/_settings.box-shadow.scss +0 -46
  331. package/src/themes/shaj-default/01-settings/_settings.breadcrumb.scss +0 -0
  332. package/src/themes/shaj-default/01-settings/_settings.breakpoints.scss +0 -23
  333. package/src/themes/shaj-default/01-settings/_settings.btn-group.scss +0 -11
  334. package/src/themes/shaj-default/01-settings/_settings.button.scss +0 -56
  335. package/src/themes/shaj-default/01-settings/_settings.callout.scss +0 -87
  336. package/src/themes/shaj-default/01-settings/_settings.card.scss +0 -52
  337. package/src/themes/shaj-default/01-settings/_settings.checkbox-group.scss +0 -11
  338. package/src/themes/shaj-default/01-settings/_settings.checkbox.scss +0 -29
  339. package/src/themes/shaj-default/01-settings/_settings.color-mode.scss +0 -13
  340. package/src/themes/shaj-default/01-settings/_settings.colors.scss +0 -91
  341. package/src/themes/shaj-default/01-settings/_settings.config.scss +0 -4
  342. package/src/themes/shaj-default/01-settings/_settings.countdown.scss +0 -26
  343. package/src/themes/shaj-default/01-settings/_settings.data-table.scss +0 -62
  344. package/src/themes/shaj-default/01-settings/_settings.datepicker.scss +0 -51
  345. package/src/themes/shaj-default/01-settings/_settings.design-tokens.scss +0 -9
  346. package/src/themes/shaj-default/01-settings/_settings.dropdown.scss +0 -51
  347. package/src/themes/shaj-default/01-settings/_settings.edge-panel.scss +0 -30
  348. package/src/themes/shaj-default/01-settings/_settings.fonts.scss +0 -13
  349. package/src/themes/shaj-default/01-settings/_settings.form-group.scss +0 -20
  350. package/src/themes/shaj-default/01-settings/_settings.form.scss +0 -12
  351. package/src/themes/shaj-default/01-settings/_settings.grid.scss +0 -29
  352. package/src/themes/shaj-default/01-settings/_settings.hero.scss +0 -47
  353. package/src/themes/shaj-default/01-settings/_settings.input.scss +0 -57
  354. package/src/themes/shaj-default/01-settings/_settings.link.scss +0 -19
  355. package/src/themes/shaj-default/01-settings/_settings.list-group.scss +0 -22
  356. package/src/themes/shaj-default/01-settings/_settings.list.scss +0 -19
  357. package/src/themes/shaj-default/01-settings/_settings.masonry-grid.scss +0 -29
  358. package/src/themes/shaj-default/01-settings/_settings.menu.scss +0 -56
  359. package/src/themes/shaj-default/01-settings/_settings.messages.scss +0 -104
  360. package/src/themes/shaj-default/01-settings/_settings.modal.scss +0 -47
  361. package/src/themes/shaj-default/01-settings/_settings.nav.scss +0 -26
  362. package/src/themes/shaj-default/01-settings/_settings.navbar.scss +0 -60
  363. package/src/themes/shaj-default/01-settings/_settings.pagination.scss +0 -36
  364. package/src/themes/shaj-default/01-settings/_settings.photoviewer.scss +0 -51
  365. package/src/themes/shaj-default/01-settings/_settings.popover.scss +0 -26
  366. package/src/themes/shaj-default/01-settings/_settings.position.scss +0 -15
  367. package/src/themes/shaj-default/01-settings/_settings.progress.scss +0 -23
  368. package/src/themes/shaj-default/01-settings/_settings.rating.scss +0 -17
  369. package/src/themes/shaj-default/01-settings/_settings.river.scss +0 -56
  370. package/src/themes/shaj-default/01-settings/_settings.sectionintro.scss +0 -37
  371. package/src/themes/shaj-default/01-settings/_settings.select.scss +0 -53
  372. package/src/themes/shaj-default/01-settings/_settings.side-menu.scss +0 -85
  373. package/src/themes/shaj-default/01-settings/_settings.skeleton.scss +0 -30
  374. package/src/themes/shaj-default/01-settings/_settings.spacing.scss +0 -72
  375. package/src/themes/shaj-default/01-settings/_settings.spinner.scss +0 -24
  376. package/src/themes/shaj-default/01-settings/_settings.steps.scss +0 -39
  377. package/src/themes/shaj-default/01-settings/_settings.tabs.scss +0 -39
  378. package/src/themes/shaj-default/01-settings/_settings.testimonials.scss +0 -30
  379. package/src/themes/shaj-default/01-settings/_settings.todo.scss +0 -58
  380. package/src/themes/shaj-default/01-settings/_settings.toggle.scss +0 -55
  381. package/src/themes/shaj-default/01-settings/_settings.tooltip.scss +0 -26
  382. package/src/themes/shaj-default/01-settings/_settings.typography.scss +0 -101
  383. package/src/themes/shaj-default/01-settings/_settings.upload.scss +0 -102
  384. package/src/themes/shaj-default/01-settings/_settings.z-layers.scss +0 -25
  385. package/src/themes/shaj-default/02-tools/_index.scss +0 -0
  386. package/src/themes/shaj-default/03-generic/_generic.root.scss +0 -0
  387. package/src/themes/shaj-default/03-generic/_index.scss +0 -2
  388. package/src/themes/shaj-default/04-elements/_index.scss +0 -0
  389. package/src/themes/shaj-default/05-objects/_index.scss +0 -0
  390. package/src/themes/shaj-default/06-components/_components.button.scss +0 -55
  391. package/src/themes/shaj-default/06-components/_components.card.scss +0 -57
  392. package/src/themes/shaj-default/06-components/_components.input.scss +0 -58
  393. package/src/themes/shaj-default/06-components/_components.navbar.scss +0 -99
  394. package/src/themes/shaj-default/06-components/_components.tooltip.scss +0 -0
  395. package/src/themes/shaj-default/06-components/_index.scss +0 -13
  396. package/src/themes/shaj-default/99-utilities/_index.scss +0 -0
  397. package/src/themes/shaj-default/index.scss +0 -25
  398. package/theme.config.ts +0 -360
@@ -2,7 +2,18 @@
2
2
  * CSS Variable Generator
3
3
  *
4
4
  * Generates CSS custom properties from theme objects and injects them into the DOM.
5
- * Follows the existing --atomix- prefix convention.
5
+ *
6
+ * **Token Naming Alignment:**
7
+ * This generator produces CSS variables that match the SCSS token naming pattern exactly:
8
+ * - Colors: --atomix-primary, --atomix-primary-1 through --atomix-primary-10
9
+ * - Spacing: --atomix-spacing-1, --atomix-spacing-4, etc.
10
+ * - Typography: --atomix-font-size-base, --atomix-font-weight-normal, etc.
11
+ * - Shadows: --atomix-box-shadow, --atomix-box-shadow-sm, etc.
12
+ *
13
+ * All tokens follow the flat structure pattern used in SCSS (not nested like --atomix-palette-primary-main).
14
+ * This ensures compatibility between SCSS themes and JavaScript themes.
15
+ *
16
+ * @see src/styles/03-generic/_generic.root.scss for SCSS token definitions
6
17
  */
7
18
 
8
19
  import type { Theme } from './types';
@@ -92,6 +103,13 @@ function generateColorScale(baseColor: string, prefix: string, colorName: string
92
103
 
93
104
  /**
94
105
  * Generate CSS variables from theme palette
106
+ *
107
+ * Matches SCSS token naming pattern:
108
+ * - --atomix-primary (main color)
109
+ * - --atomix-primary-1 through --atomix-primary-10 (color scale)
110
+ * - --atomix-primary-main (alias for primary-6)
111
+ * - --atomix-primary-light (alias for primary-3)
112
+ * - --atomix-primary-dark (alias for primary-9)
95
113
  */
96
114
  function generatePaletteVariables(palette: Theme['palette'], prefix: string): Record<string, string> {
97
115
  const vars: Record<string, string> = {};
@@ -101,46 +119,60 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
101
119
  colorKeys.forEach((key) => {
102
120
  const color = palette[key];
103
121
  if (color && typeof color === 'object') {
104
- // Main color
122
+ // Main color (flat structure, matches SCSS: --atomix-primary)
105
123
  vars[`${prefix}-${key}`] = color.main;
106
124
 
107
- // Generate RGB for transparency support
125
+ // Generate RGB for transparency support (matches SCSS: --atomix-primary-rgb)
108
126
  const rgb = hexToRgb(color.main);
109
127
  if (rgb) {
110
128
  vars[`${prefix}-${key}-rgb`] = `${rgb.r}, ${rgb.g}, ${rgb.b}`;
111
129
  }
112
130
 
113
- // Map dark variant to hover (closest SCSS equivalent)
131
+ // Generate full color scale (1-10) - matches SCSS: --atomix-primary-1 through --atomix-primary-10
132
+ // Only for primary, secondary, error, warning, info, success (not for light/dark)
133
+ if (key !== 'light' && key !== 'dark') {
134
+ const colorScale = generateColorScale(color.main, prefix, key);
135
+ Object.assign(vars, colorScale);
136
+
137
+ // Add semantic aliases that map to scale steps (for backward compatibility)
138
+ // primary-main → primary-6 (main color)
139
+ vars[`${prefix}-${key}-main`] = colorScale[`${prefix}-${key}-6`] || color.main;
140
+ // primary-light → primary-3 (light variant)
141
+ vars[`${prefix}-${key}-light`] = colorScale[`${prefix}-${key}-3`] || color.light || color.main;
142
+ // primary-dark → primary-9 (dark variant)
143
+ vars[`${prefix}-${key}-dark`] = colorScale[`${prefix}-${key}-9`] || color.dark || color.main;
144
+ } else {
145
+ // For light/dark, use the provided values directly
146
+ vars[`${prefix}-${key}-main`] = color.main;
147
+ if (color.light) vars[`${prefix}-${key}-light`] = color.light;
148
+ if (color.dark) vars[`${prefix}-${key}-dark`] = color.dark;
149
+ }
150
+
151
+ // Map dark variant to hover (matches SCSS: --atomix-primary-hover)
114
152
  if (color.dark) {
115
153
  vars[`${prefix}-${key}-hover`] = color.dark;
116
154
  }
117
155
 
118
- // Generate semantic color variants
119
- // Text emphasis: emphasized version of the color for text
156
+ // Generate semantic color variants (matches SCSS patterns)
157
+ // Text emphasis: emphasized version of the color for text (--atomix-primary-text-emphasis)
120
158
  vars[`${prefix}-${key}-text-emphasis`] = emphasize(color.main, 0.15);
121
159
 
122
- // Background subtle: very light version for backgrounds
160
+ // Background subtle: very light version for backgrounds (--atomix-primary-bg-subtle)
123
161
  vars[`${prefix}-${key}-bg-subtle`] = alpha(color.main, 0.1);
124
162
 
125
- // Border subtle: light version for borders
163
+ // Border subtle: light version for borders (--atomix-primary-border-subtle)
126
164
  vars[`${prefix}-${key}-border-subtle`] = alpha(color.main, 0.2);
127
-
128
- // Generate full color scale (1-10) - only for primary, not for light/dark
129
- if (key !== 'light' && key !== 'dark') {
130
- const colorScale = generateColorScale(color.main, prefix, key);
131
- Object.assign(vars, colorScale);
132
- }
133
165
  }
134
166
  });
135
167
 
136
- // Generate gray scale from text colors
168
+ // Generate gray scale from text colors (matches SCSS: --atomix-gray-1 through --atomix-gray-10)
137
169
  // Use text.primary as base for gray scale
138
170
  if (palette.text?.primary) {
139
171
  const grayScale = generateColorScale(palette.text.primary, prefix, 'gray');
140
172
  Object.assign(vars, grayScale);
141
173
  }
142
174
 
143
- // Generate red, green, blue, yellow scales if available
175
+ // Generate red, green, blue, yellow scales (matches SCSS: --atomix-red-1 through --atomix-red-10, etc.)
144
176
  // These are typically used for semantic colors but can be extended
145
177
  if (palette.error && typeof palette.error === 'object' && palette.error.main) {
146
178
  const redScale = generateColorScale(palette.error.main, prefix, 'red');
@@ -159,11 +191,11 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
159
191
  Object.assign(vars, yellowScale);
160
192
  }
161
193
 
162
- // Background mappings to SCSS body variables
194
+ // Background mappings to SCSS body variables (matches SCSS: --atomix-body-bg)
163
195
  if (palette.background) {
164
196
  vars[`${prefix}-body-bg`] = palette.background.default;
165
197
 
166
- // Generate background subtle variants
198
+ // Generate background subtle variants (matches SCSS: --atomix-primary-bg-subtle, etc.)
167
199
  if (palette.background.default) {
168
200
  vars[`${prefix}-primary-bg-subtle`] = palette.background.default;
169
201
  }
@@ -181,11 +213,11 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
181
213
  }
182
214
  }
183
215
 
184
- // Text mappings to SCSS body variables
216
+ // Text mappings to SCSS body variables (matches SCSS: --atomix-body-color, --atomix-primary-text-emphasis, etc.)
185
217
  if (palette.text) {
186
218
  vars[`${prefix}-body-color`] = palette.text.primary;
187
219
 
188
- // Generate text emphasis variants
220
+ // Generate text emphasis variants (matches SCSS pattern)
189
221
  if (palette.text.primary) {
190
222
  vars[`${prefix}-primary-text-emphasis`] = palette.text.primary;
191
223
  }
@@ -205,14 +237,14 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
205
237
  }
206
238
  }
207
239
 
208
- // Brand text emphasis (uses primary color)
240
+ // Brand text emphasis (uses primary color) - matches SCSS: --atomix-brand-text-emphasis
209
241
  if (palette.primary) {
210
242
  vars[`${prefix}-brand-text-emphasis`] = palette.primary.main;
211
- // Brand border subtle
243
+ // Brand border subtle - matches SCSS: --atomix-brand-border-subtle
212
244
  vars[`${prefix}-brand-border-subtle`] = alpha(palette.primary.main, 0.2);
213
245
  }
214
246
 
215
- // Light and dark border subtle (if light/dark colors exist)
247
+ // Light and dark border subtle (if light/dark colors exist) - matches SCSS pattern
216
248
  if (palette.light && typeof palette.light === 'object') {
217
249
  vars[`${prefix}-light-border-subtle`] = alpha(palette.light.main, 0.2);
218
250
  }
@@ -220,7 +252,7 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
220
252
  vars[`${prefix}-dark-border-subtle`] = alpha(palette.dark.main, 0.2);
221
253
  }
222
254
 
223
- // Heading color (defaults to text primary)
255
+ // Heading color (defaults to text primary) - matches SCSS: --atomix-heading-color
224
256
  if (palette.text) {
225
257
  vars[`${prefix}-heading-color`] = palette.text.primary;
226
258
  }
@@ -304,6 +336,12 @@ function generatePaletteVariables(palette: Theme['palette'], prefix: string): Re
304
336
 
305
337
  /**
306
338
  * Generate CSS variables from theme typography
339
+ *
340
+ * Matches SCSS token naming pattern:
341
+ * - --atomix-body-font-family
342
+ * - --atomix-body-font-size
343
+ * - --atomix-font-weight-normal
344
+ * - --atomix-line-height-base
307
345
  */
308
346
  function generateTypographyVariables(
309
347
  typography: Theme['typography'],
@@ -311,25 +349,24 @@ function generateTypographyVariables(
311
349
  ): Record<string, string> {
312
350
  const vars: Record<string, string> = {};
313
351
 
314
- // Font family (SCSS: --atomix-body-font-family)
352
+ // Font family (matches SCSS: --atomix-body-font-family, --atomix-font-sans-serif, --atomix-font-monospace)
315
353
  vars[`${prefix}-body-font-family`] = typography.fontFamily;
316
- // Additional font family tokens
317
354
  vars[`${prefix}-font-sans-serif`] = typography.fontFamily;
318
355
  vars[`${prefix}-font-monospace`] = 'SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace';
319
356
 
320
- // Root font size (SCSS: --atomix-root-font-size)
357
+ // Root font size (matches SCSS: --atomix-root-font-size)
321
358
  // Typically 16px, but can be customized
322
359
  const rootFontSize = typography.fontSize || 16;
323
360
  vars[`${prefix}-root-font-size`] = `${rootFontSize}px`;
324
361
 
325
- // Base font size (SCSS: --atomix-body-font-size)
362
+ // Base font size (matches SCSS: --atomix-body-font-size)
326
363
  const baseFontSize = typography.fontSize;
327
364
  vars[`${prefix}-body-font-size`] = `${baseFontSize}px`;
328
365
 
329
- // Base font weight (SCSS: --atomix-body-font-weight)
366
+ // Base font weight (matches SCSS: --atomix-body-font-weight)
330
367
  vars[`${prefix}-body-font-weight`] = String(typography.fontWeightRegular);
331
368
 
332
- // Font weight scale
369
+ // Font weight scale (matches SCSS: --atomix-font-weight-light, --atomix-font-weight-normal, etc.)
333
370
  vars[`${prefix}-font-weight-light`] = String(typography.fontWeightLight ?? 300);
334
371
  vars[`${prefix}-font-weight-normal`] = String(typography.fontWeightRegular ?? 400);
335
372
  vars[`${prefix}-font-weight-medium`] = String(typography.fontWeightMedium ?? 500);
@@ -343,18 +380,18 @@ function generateTypographyVariables(
343
380
  vars[`${prefix}-font-weight-black`] = String((typography as any).fontWeightBlack || 900);
344
381
  }
345
382
 
346
- // Base line height (SCSS: --atomix-body-line-height)
383
+ // Base line height (matches SCSS: --atomix-body-line-height)
347
384
  const baseLineHeight = typeof typography.body1?.lineHeight === 'number'
348
385
  ? typography.body1.lineHeight
349
386
  : parseFloat(String(typography.body1?.lineHeight || 1.2));
350
387
  vars[`${prefix}-body-line-height`] = String(baseLineHeight);
351
388
 
352
- // Line height scale (using calculated defaults based on design tokens)
389
+ // Line height scale (matches SCSS: --atomix-line-height-base, --atomix-line-height-sm, --atomix-line-height-lg)
353
390
  vars[`${prefix}-line-height-base`] = String(baseLineHeight);
354
391
  vars[`${prefix}-line-height-sm`] = String(1.43);
355
392
  vars[`${prefix}-line-height-lg`] = String(1.56);
356
393
 
357
- // Extended font size scale (matching design system tokens)
394
+ // Extended font size scale (matches SCSS: --atomix-font-size-xs, --atomix-font-size-sm, etc.)
358
395
  const fontSizeXs = baseFontSize * 0.75; // 12px if base is 16px
359
396
  const fontSizeSm = baseFontSize * 0.875; // 14px if base is 16px
360
397
  const fontSizeMd = baseFontSize * 1; // 16px if base is 16px (same as base)
@@ -369,13 +406,13 @@ function generateTypographyVariables(
369
406
  vars[`${prefix}-font-size-xl`] = `${fontSizeXl}px`;
370
407
  vars[`${prefix}-font-size-2xl`] = `${fontSize2xl}px`;
371
408
 
372
- // Display font size (optional, may not be in theme)
409
+ // Display font size (matches SCSS: --atomix-display-1)
373
410
  if ('display1' in typography) {
374
411
  const display1 = (typography as any).display1;
375
412
  vars[`${prefix}-display-1`] = typeof display1 === 'string' ? display1 : `${display1}px`;
376
413
  }
377
414
 
378
- // Letter spacing for headings (from typography config)
415
+ // Letter spacing for headings (matches SCSS: --atomix-letter-spacing-h1, etc.)
379
416
  const headings = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6'] as const;
380
417
  headings.forEach((heading) => {
381
418
  const headingConfig = typography[heading];
@@ -389,19 +426,23 @@ function generateTypographyVariables(
389
426
 
390
427
  /**
391
428
  * Generate CSS variables from theme shadows
429
+ *
430
+ * Matches SCSS token naming pattern:
431
+ * - --atomix-box-shadow (base, mapped from md)
432
+ * - --atomix-box-shadow-xs, --atomix-box-shadow-sm, --atomix-box-shadow-lg, --atomix-box-shadow-xl
433
+ * - --atomix-box-shadow-inset
392
434
  */
393
435
  function generateShadowVariables(shadows: Theme['shadows'], prefix: string): Record<string, string> {
394
436
  const vars: Record<string, string> = {};
395
437
 
396
- // Map JS shadow keys to SCSS variables
397
- // SCSS uses --atomix-box-shadow (base) and --atomix-box-shadow-{size}
438
+ // Map JS shadow keys to SCSS variables (matches SCSS pattern exactly)
398
439
  if (shadows.md) vars[`${prefix}-box-shadow`] = shadows.md; // Map md to base
399
440
  if (shadows.xs) vars[`${prefix}-box-shadow-xs`] = shadows.xs;
400
441
  if (shadows.sm) vars[`${prefix}-box-shadow-sm`] = shadows.sm;
401
442
  if (shadows.lg) vars[`${prefix}-box-shadow-lg`] = shadows.lg;
402
443
  if (shadows.xl) vars[`${prefix}-box-shadow-xl`] = shadows.xl;
403
444
 
404
- // Inset shadow (generate from base shadow if not provided)
445
+ // Inset shadow (matches SCSS: --atomix-box-shadow-inset)
405
446
  if (shadows.inset) {
406
447
  vars[`${prefix}-box-shadow-inset`] = shadows.inset;
407
448
  } else if (shadows.sm) {
@@ -8,9 +8,18 @@
8
8
  export { ThemeProvider } from './runtime/ThemeProvider';
9
9
  export { useTheme } from './runtime/useTheme';
10
10
  export { ThemeContext } from './ThemeContext';
11
+ export { ThemeManager } from './runtime/ThemeManager';
12
+ export { ThemeErrorBoundary } from './runtime/ThemeErrorBoundary';
11
13
 
12
- // Theme building
13
- export { ThemeBuilder, createThemeBuilder, extendTheme, createTheme } from './builders/ThemeBuilder';
14
+ // Theme creation
15
+ export { createTheme } from './createTheme';
16
+ export { createThemeFromConfig } from './createThemeFromConfig';
17
+
18
+ // Theme utilities
19
+ export { quickTheme, createDarkVariant, validateTheme, themeToCSS, exportTheme, importTheme } from '../theme-tools';
20
+
21
+ // DevTools (for development and debugging)
22
+ export * from './devtools';
14
23
 
15
24
  // Theme application
16
25
  export { ThemeApplicator, getThemeApplicator, applyTheme, removeTheme } from './runtime/ThemeApplicator';
@@ -29,6 +38,9 @@ export {
29
38
  extractComponentName,
30
39
  } from './cssVariableMapper';
31
40
 
41
+ // RTL Support
42
+ export { RTLManager } from './i18n/rtl';
43
+
32
44
  // Types
33
45
  export type {
34
46
  Theme,
@@ -44,7 +56,11 @@ export type {
44
56
  ThemeComponentOverrides,
45
57
  } from './types';
46
58
 
59
+ export type { ThemeErrorBoundaryProps } from './runtime/ThemeErrorBoundary';
60
+
47
61
  export type {
48
62
  CSSVariableConfig,
49
63
  CSSVariableNamingOptions,
50
64
  } from './cssVariableMapper';
65
+
66
+ export type { RTLConfig } from './i18n/rtl';
@@ -10,7 +10,23 @@ import { ThemeError, ThemeErrorCode } from '../errors';
10
10
  import type { ThemeMetadata } from '../types';
11
11
 
12
12
  // Mock dependencies
13
- vi.mock('../core/ThemeEngine');
13
+ vi.mock('../core/ThemeEngine', () => {
14
+ return {
15
+ ThemeEngine: class {
16
+ initialize = vi.fn().mockResolvedValue(undefined);
17
+ on = vi.fn();
18
+ getRegistry = vi.fn().mockReturnValue({
19
+ has: vi.fn().mockReturnValue(false),
20
+ register: vi.fn(),
21
+ getAllMetadata: vi.fn().mockReturnValue([]),
22
+ });
23
+ setTheme = vi.fn().mockResolvedValue(undefined);
24
+ getActiveTheme = vi.fn().mockReturnValue(null);
25
+ isThemeLoaded = vi.fn().mockReturnValue(false);
26
+ preloadTheme = vi.fn().mockResolvedValue(undefined);
27
+ },
28
+ };
29
+ });
14
30
  vi.mock('../config/loader');
15
31
  vi.mock('../utils', () => ({
16
32
  isBrowser: () => true,
@@ -63,7 +63,7 @@ const DEFAULT_CONFIG: Partial<ThemeManagerConfig> = {
63
63
  * // No defaultTheme - uses built-in styles
64
64
  * });
65
65
  *
66
- * await themeManager.setTheme('flashtrade');
66
+ * await themeManager.setTheme('my-custom-theme');
67
67
  * ```
68
68
  */
69
69
  export class ThemeManager {
@@ -356,13 +356,13 @@ export class ThemeManager {
356
356
  * Emit theme error event
357
357
  */
358
358
  private emitThemeError(error: Error, themeName: string): void {
359
- const themeError = error instanceof ThemeError
360
- ? error
359
+ const themeError = error instanceof ThemeError
360
+ ? error
361
361
  : new ThemeError(
362
- error.message,
363
- ThemeErrorCode.THEME_LOAD_FAILED,
364
- { themeName, originalError: error.message }
365
- );
362
+ error.message,
363
+ ThemeErrorCode.THEME_LOAD_FAILED,
364
+ { themeName, originalError: error.message }
365
+ );
366
366
 
367
367
  if (this.config.onError) {
368
368
  try {
@@ -189,56 +189,56 @@ export interface UseThemeReturn {
189
189
  * Component-level theme override configuration
190
190
  */
191
191
  export interface ComponentThemeOverride {
192
- /** CSS variable overrides for the component */
193
- cssVars?: Record<string, string | number>;
194
-
195
- /** Default prop overrides */
196
- defaultProps?: Record<string, any>;
197
-
198
- /** Part-specific overrides */
199
- parts?: Record<string, {
200
- cssVars?: Record<string, string | number>;
201
- className?: string;
202
- }>;
203
-
204
- /** Variant overrides */
205
- variants?: Record<string, {
192
+ /** CSS variable overrides for the component */
206
193
  cssVars?: Record<string, string | number>;
194
+
195
+ /** Default prop overrides */
196
+ defaultProps?: Record<string, any>;
197
+
198
+ /** Part-specific overrides */
199
+ parts?: Record<string, {
200
+ cssVars?: Record<string, string | number>;
201
+ className?: string;
202
+ }>;
203
+
204
+ /** Variant overrides */
205
+ variants?: Record<string, {
206
+ cssVars?: Record<string, string | number>;
207
+ className?: string;
208
+ }>;
209
+
210
+ /** Additional className for the component */
207
211
  className?: string;
208
- }>;
209
-
210
- /** Additional className for the component */
211
- className?: string;
212
212
  }
213
213
 
214
214
  /**
215
215
  * Theme component overrides for all components
216
216
  */
217
217
  export interface ThemeComponentOverrides {
218
- Button?: ComponentThemeOverride;
219
- Card?: ComponentThemeOverride;
220
- Input?: ComponentThemeOverride;
221
- Modal?: ComponentThemeOverride;
222
- Dropdown?: ComponentThemeOverride;
223
- Badge?: ComponentThemeOverride;
224
- Tabs?: ComponentThemeOverride;
225
- Progress?: ComponentThemeOverride;
226
- Tooltip?: ComponentThemeOverride;
227
- Select?: ComponentThemeOverride;
228
- Checkbox?: ComponentThemeOverride;
229
- Radio?: ComponentThemeOverride;
230
- Textarea?: ComponentThemeOverride;
231
- FormGroup?: ComponentThemeOverride;
232
- Navbar?: ComponentThemeOverride;
233
- Accordion?: ComponentThemeOverride;
234
- DataTable?: ComponentThemeOverride;
235
- Avatar?: ComponentThemeOverride;
236
- List?: ComponentThemeOverride;
237
- Popover?: ComponentThemeOverride;
238
- Messages?: ComponentThemeOverride;
239
- Callout?: ComponentThemeOverride;
240
- Spinner?: ComponentThemeOverride;
241
- [key: string]: ComponentThemeOverride | undefined;
218
+ Button?: ComponentThemeOverride;
219
+ Card?: ComponentThemeOverride;
220
+ Input?: ComponentThemeOverride;
221
+ Modal?: ComponentThemeOverride;
222
+ Dropdown?: ComponentThemeOverride;
223
+ Badge?: ComponentThemeOverride;
224
+ Tabs?: ComponentThemeOverride;
225
+ Progress?: ComponentThemeOverride;
226
+ Tooltip?: ComponentThemeOverride;
227
+ Select?: ComponentThemeOverride;
228
+ Checkbox?: ComponentThemeOverride;
229
+ Radio?: ComponentThemeOverride;
230
+ Textarea?: ComponentThemeOverride;
231
+ FormGroup?: ComponentThemeOverride;
232
+ Navbar?: ComponentThemeOverride;
233
+ Accordion?: ComponentThemeOverride;
234
+ DataTable?: ComponentThemeOverride;
235
+ Avatar?: ComponentThemeOverride;
236
+ List?: ComponentThemeOverride;
237
+ Popover?: ComponentThemeOverride;
238
+ Messages?: ComponentThemeOverride;
239
+ Callout?: ComponentThemeOverride;
240
+ Spinner?: ComponentThemeOverride;
241
+ [key: string]: ComponentThemeOverride | undefined;
242
242
  }
243
243
 
244
244
  /**
@@ -334,7 +334,6 @@ export interface PaletteOptions {
334
334
  /** Background colors */
335
335
  background?: {
336
336
  default?: string;
337
- paper?: string;
338
337
  subtle?: string;
339
338
  };
340
339
  /** Text colors */
@@ -7,8 +7,6 @@
7
7
  import { Theme, ThemeMetadata } from './theme/types';
8
8
  import { createTheme } from './theme/createTheme';
9
9
  import { extendTheme, mergeTheme } from './theme/composeTheme';
10
- import { ComponentOverrideManager } from './theme/overrides/ComponentOverrides';
11
- import { WhiteLabelManager } from './theme/whitelabel/WhiteLabelManager';
12
10
  import { generateCSSVariables } from './theme/generateCSSVariables';
13
11
 
14
12
  /**
@@ -49,19 +47,19 @@ export function createDarkVariant(lightTheme: Theme): Theme {
49
47
  */
50
48
  export function validateTheme(theme: Theme): { valid: boolean; errors: string[] } {
51
49
  const errors: string[] = [];
52
-
50
+
53
51
  if (!theme.name) {
54
52
  errors.push('Theme must have a name');
55
53
  }
56
-
54
+
57
55
  if (!theme.palette) {
58
56
  errors.push('Theme must have a palette');
59
57
  }
60
-
58
+
61
59
  if (theme.palette && !theme.palette.primary) {
62
60
  errors.push('Theme palette must have a primary color');
63
61
  }
64
-
62
+
65
63
  return {
66
64
  valid: errors.length === 0,
67
65
  errors,
@@ -78,61 +76,6 @@ export function themeToCSS(theme: Theme, selector = ':root'): string {
78
76
  });
79
77
  }
80
78
 
81
- /**
82
- * Apply overrides to theme easily
83
- */
84
- export function applyOverrides(
85
- theme: Theme,
86
- overrides: Record<string, any>
87
- ): Theme {
88
- const manager = new ComponentOverrideManager(theme);
89
-
90
- Object.entries(overrides).forEach(([component, override]) => {
91
- manager.addOverride(component, override);
92
- });
93
-
94
- const overriddenTheme = manager.getThemeWithOverrides();
95
- if (!overriddenTheme) {
96
- throw new Error('Failed to get theme with overrides: theme was not set');
97
- }
98
-
99
- return overriddenTheme;
100
- }
101
-
102
- /**
103
- * Apply white label configuration
104
- */
105
- export function applyWhiteLabel(
106
- theme: Theme,
107
- brand: {
108
- name: string;
109
- primaryColor: string;
110
- logo?: string;
111
- }
112
- ): Theme {
113
- const manager = new WhiteLabelManager(theme);
114
-
115
- manager.configure({
116
- brand: {
117
- name: brand.name,
118
- primaryColor: brand.primaryColor,
119
- logo: brand.logo,
120
- },
121
- themeOverrides: {
122
- palette: {
123
- primary: { main: brand.primaryColor },
124
- },
125
- },
126
- });
127
-
128
- const whiteLabeledTheme = manager.getWhiteLabeledTheme();
129
- if (!whiteLabeledTheme) {
130
- throw new Error('Failed to get white labeled theme: theme was not set');
131
- }
132
-
133
- return whiteLabeledTheme;
134
- }
135
-
136
79
  /**
137
80
  * Get theme metadata
138
81
  */
@@ -153,9 +96,9 @@ export function getThemeMetadata(theme: Theme): ThemeMetadata {
153
96
  * Check if theme supports dark mode
154
97
  */
155
98
  export function supportsDarkMode(theme: Theme): boolean {
156
- return theme.palette?.mode === 'dark' ||
157
- theme.supportsDarkMode === true ||
158
- Boolean(theme.a11y?.modes?.includes('dark'));
99
+ return theme.palette?.mode === 'dark' ||
100
+ theme.supportsDarkMode === true ||
101
+ Boolean(theme.a11y?.modes?.includes('dark'));
159
102
  }
160
103
 
161
104
  /**
@@ -179,7 +122,4 @@ export function importTheme(json: string): Theme {
179
122
  // Re-export commonly used functions
180
123
  export { createTheme, extendTheme, mergeTheme };
181
124
  export { generateCSSVariables };
182
- export { ComponentOverrideManager } from './theme/overrides/ComponentOverrides';
183
- export { WhiteLabelManager } from './theme/whitelabel/WhiteLabelManager';
184
125
  export { RTLManager } from './theme/i18n/rtl';
185
- export { ThemeAnalytics } from './theme/monitoring/ThemeAnalytics';