@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
@@ -312,7 +312,6 @@ export function createTheme(...options: ThemeOptions[]): Theme {
312
312
  }),
313
313
  background: {
314
314
  default: mergedOptions.palette?.background?.default || DEFAULT_PALETTE.background.default,
315
- paper: mergedOptions.palette?.background?.paper || DEFAULT_PALETTE.background.paper,
316
315
  subtle: mergedOptions.palette?.background?.subtle || DEFAULT_PALETTE.background.subtle,
317
316
  },
318
317
  text: {
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Create Theme from Atomix Config
3
+ *
4
+ * Helper function to create a theme from atomix.config.ts,
5
+ * similar to how Tailwind processes its config.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * import { createThemeFromConfig } from '@shohojdhara/atomix/theme';
10
+ * import config from './atomix.config';
11
+ *
12
+ * const theme = createThemeFromConfig(config);
13
+ * ```
14
+ */
15
+
16
+ import type { AtomixConfig } from '../config';
17
+ import { createTheme } from './createTheme';
18
+ import type { ThemeOptions } from './types';
19
+
20
+ /**
21
+ * Convert config tokens to theme options
22
+ */
23
+ function configToThemeOptions(config: AtomixConfig): ThemeOptions {
24
+ const tokens = config.theme?.tokens || config.theme?.extend || {};
25
+ const options: ThemeOptions = {};
26
+
27
+ // Convert colors
28
+ if (tokens.colors) {
29
+ options.palette = {};
30
+
31
+ // Handle primary color
32
+ if (tokens.colors.primary) {
33
+ const primary = tokens.colors.primary;
34
+ if (typeof primary === 'string') {
35
+ options.palette.primary = { main: primary };
36
+ } else if (typeof primary === 'object' && 'main' in primary) {
37
+ options.palette.primary = primary as any;
38
+ } else if (typeof primary === 'object' && '6' in primary) {
39
+ // Color scale format
40
+ options.palette.primary = { main: (primary as any)[6] || (primary as any).main };
41
+ }
42
+ }
43
+
44
+ // Handle other colors
45
+ if (tokens.colors) {
46
+ const colorKeys = ['secondary', 'error', 'warning', 'info', 'success'] as const;
47
+ colorKeys.forEach((key) => {
48
+ if (tokens.colors![key]) {
49
+ const color = tokens.colors![key];
50
+ if (typeof color === 'string') {
51
+ options.palette![key] = { main: color };
52
+ } else if (typeof color === 'object' && 'main' in color) {
53
+ options.palette![key] = color as any;
54
+ } else if (typeof color === 'object' && '6' in color) {
55
+ options.palette![key] = { main: (color as any)[6] || (color as any).main };
56
+ }
57
+ }
58
+ });
59
+ }
60
+ }
61
+
62
+ // Convert typography
63
+ if (tokens.typography) {
64
+ options.typography = {};
65
+
66
+ if (tokens.typography.fontFamilies?.sans) {
67
+ options.typography.fontFamily = Array.isArray(tokens.typography.fontFamilies.sans)
68
+ ? tokens.typography.fontFamilies.sans.join(', ')
69
+ : tokens.typography.fontFamilies.sans;
70
+ }
71
+
72
+ if (tokens.typography.fontSizes) {
73
+ // Map font sizes to theme typography
74
+ const baseSize = tokens.typography.fontSizes.base || tokens.typography.fontSizes.md;
75
+ if (baseSize) {
76
+ const numericSize = parseFloat(String(baseSize).replace(/[^\d.]/g, ''));
77
+ options.typography.fontSize = numericSize || 16;
78
+ }
79
+ }
80
+ }
81
+
82
+ // Convert spacing (if needed for theme spacing function)
83
+ if (tokens.spacing) {
84
+ // Spacing is handled via CSS variables, but we can set a base multiplier
85
+ options.spacing = 4; // Default 4px base unit
86
+ }
87
+
88
+ // Convert border radius
89
+ if (tokens.borderRadius) {
90
+ options.borderRadius = {};
91
+ Object.entries(tokens.borderRadius).forEach(([key, value]) => {
92
+ options.borderRadius![key as keyof typeof options.borderRadius] = String(value);
93
+ });
94
+ }
95
+
96
+ return options;
97
+ }
98
+
99
+ /**
100
+ * Create a theme from Atomix configuration
101
+ *
102
+ * This function converts atomix.config.ts format to a theme object
103
+ * that can be used with ThemeProvider.
104
+ *
105
+ * @param config - Atomix configuration object
106
+ * @returns Theme object ready for use
107
+ *
108
+ * @example
109
+ * ```typescript
110
+ * import { createThemeFromConfig } from '@shohojdhara/atomix/theme';
111
+ * import config from './atomix.config';
112
+ *
113
+ * const theme = createThemeFromConfig(config);
114
+ * ```
115
+ */
116
+ export function createThemeFromConfig(config: AtomixConfig) {
117
+ const themeOptions = configToThemeOptions(config);
118
+
119
+ // Create theme with options
120
+ const theme = createTheme(themeOptions);
121
+
122
+ // Apply prefix if specified
123
+ if (config.prefix && config.prefix !== 'atomix') {
124
+ // Note: Prefix is applied when generating CSS variables
125
+ // The theme object itself doesn't store prefix
126
+ }
127
+
128
+ return theme;
129
+ }
130
+
131
+ export default createThemeFromConfig;
132
+
@@ -4,9 +4,6 @@
4
4
  * Command-line interface for theme management
5
5
  */
6
6
 
7
- import { generateConfigTemplate } from '../generators/ConfigGenerator';
8
- import { generateCSS } from '../generators/CSSGenerator';
9
- import { generateTypes } from '../generators/TypeGenerator';
10
7
  import { loadThemeConfig } from '../config/loader';
11
8
  import { validateConfig } from '../config/validator';
12
9
 
@@ -37,39 +34,49 @@ export class ThemeCLI {
37
34
  */
38
35
  private registerDefaultCommands(): void {
39
36
  this.register({
40
- name: 'init',
41
- description: 'Initialize theme configuration',
37
+ name: 'validate',
38
+ description: 'Validate theme configuration',
42
39
  options: {
43
- '--format': 'Output format (typescript, javascript, json)',
44
- '--examples': 'Include example themes',
40
+ '--config': 'Path to config file',
41
+ '--strict': 'Enable strict validation',
45
42
  },
46
- handler: this.handleInit.bind(this),
43
+ handler: this.handleValidate.bind(this),
47
44
  });
48
45
 
49
46
  this.register({
50
- name: 'validate',
51
- description: 'Validate theme configuration',
52
- handler: this.handleValidate.bind(this),
47
+ name: 'list',
48
+ description: 'List all available themes',
49
+ handler: this.handleList.bind(this),
50
+ });
51
+
52
+ this.register({
53
+ name: 'inspect',
54
+ description: 'Inspect a specific theme',
55
+ options: {
56
+ '--theme': 'Theme name to inspect',
57
+ '--json': 'Output as JSON',
58
+ },
59
+ handler: this.handleInspect.bind(this),
53
60
  });
54
61
 
55
62
  this.register({
56
- name: 'build',
57
- description: 'Build theme CSS files',
63
+ name: 'compare',
64
+ description: 'Compare two themes',
58
65
  options: {
59
- '--output': 'Output directory',
60
- '--minify': 'Minify output',
66
+ '--theme1': 'First theme name',
67
+ '--theme2': 'Second theme name',
61
68
  },
62
- handler: this.handleBuild.bind(this),
69
+ handler: this.handleCompare.bind(this),
63
70
  });
64
71
 
65
72
  this.register({
66
- name: 'types',
67
- description: 'Generate TypeScript types',
73
+ name: 'export',
74
+ description: 'Export theme to JSON',
68
75
  options: {
69
- '--output': 'Output file',
70
- '--module': 'Module name',
76
+ '--theme': 'Theme name to export',
77
+ '--output': 'Output file path',
71
78
  },
72
- handler: this.handleTypes.bind(this),
79
+ handler: this.handleExport.bind(this),
73
80
  });
74
81
 
75
82
  this.register({
@@ -139,29 +146,6 @@ export class ThemeCLI {
139
146
  return { args: parsedArgs, options };
140
147
  }
141
148
 
142
- /**
143
- * Handle init command
144
- */
145
- private handleInit(args: string[], options: Record<string, any>): void {
146
- const format = options.format || 'typescript';
147
- const includeExamples = options.examples !== false;
148
-
149
- const config = generateConfigTemplate({
150
- format: format as any,
151
- includeExamples,
152
- includeComments: true,
153
- });
154
-
155
- const filename = format === 'json' ? 'theme.config.json' :
156
- format === 'javascript' ? 'theme.config.js' :
157
- 'theme.config.ts';
158
-
159
- console.log(`Generating ${filename}...`);
160
- console.log(config);
161
- console.log(`\\nTheme configuration template generated!`);
162
- console.log(`Save this content to ${filename} in your project root.`);
163
- }
164
-
165
149
  /**
166
150
  * Handle validate command
167
151
  */
@@ -173,16 +157,16 @@ export class ThemeCLI {
173
157
  if (result.valid) {
174
158
  console.log('✅ Theme configuration is valid');
175
159
  if (result.warnings.length > 0) {
176
- console.log('\\n⚠️ Warnings:');
160
+ console.log('\n⚠️ Warnings:');
177
161
  result.warnings.forEach(warning => console.log(` - ${warning}`));
178
162
  }
179
163
  } else {
180
164
  console.log('❌ Theme configuration is invalid');
181
- console.log('\\nErrors:');
165
+ console.log('\nErrors:');
182
166
  result.errors.forEach(error => console.log(` - ${error}`));
183
-
167
+
184
168
  if (result.warnings.length > 0) {
185
- console.log('\\nWarnings:');
169
+ console.log('\nWarnings:');
186
170
  result.warnings.forEach(warning => console.log(` - ${warning}`));
187
171
  }
188
172
  process.exit(1);
@@ -194,49 +178,150 @@ export class ThemeCLI {
194
178
  }
195
179
 
196
180
  /**
197
- * Handle build command
181
+ * Handle list command
198
182
  */
199
- private handleBuild(args: string[], options: Record<string, any>): void {
200
- console.log('Building themes...');
201
- console.log('Note: This is a placeholder. Implement actual build logic based on your needs.');
202
-
183
+ private handleList(args: string[], options: Record<string, any>): void {
203
184
  try {
204
185
  const config = loadThemeConfig();
205
- console.log(`Found ${Object.keys(config.themes).length} themes to build`);
186
+ const themes = config.themes || {};
206
187
 
207
- // This would typically:
208
- // 1. Load each theme
209
- // 2. Generate CSS for CSS themes
210
- // 3. Execute createTheme for JS themes and generate CSS
211
- // 4. Write files to output directory
188
+ console.log('Available Themes:\n');
212
189
 
213
- console.log('✅ Build completed');
190
+ if (Object.keys(themes).length === 0) {
191
+ console.log('No themes found in configuration.');
192
+ return;
193
+ }
194
+
195
+ for (const [id, theme] of Object.entries(themes)) {
196
+ console.log(` ${id}`);
197
+ console.log(` Name: ${theme.name}`);
198
+ if (theme.description) {
199
+ console.log(` Description: ${theme.description}`);
200
+ }
201
+ if (theme.version) {
202
+ console.log(` Version: ${theme.version}`);
203
+ }
204
+ if (theme.status) {
205
+ console.log(` Status: ${theme.status}`);
206
+ }
207
+ console.log();
208
+ }
214
209
  } catch (error) {
215
- console.error('Build failed:', error);
210
+ console.error('Failed to list themes:', error);
216
211
  process.exit(1);
217
212
  }
218
213
  }
219
214
 
220
215
  /**
221
- * Handle types command
216
+ * Handle inspect command
222
217
  */
223
- private handleTypes(args: string[], options: Record<string, any>): void {
224
- console.log('Generating TypeScript types...');
225
- console.log('Note: This is a placeholder. Implement actual type generation logic.');
218
+ private handleInspect(args: string[], options: Record<string, any>): void {
219
+ const themeName = options.theme || args[0];
226
220
 
221
+ if (!themeName) {
222
+ console.error('Error: Theme name is required');
223
+ console.error('Usage: atomix-theme inspect --theme <theme-name>');
224
+ process.exit(1);
225
+ }
226
+
227
+ try {
228
+ const config = loadThemeConfig();
229
+ const theme = config.themes?.[themeName];
230
+
231
+ if (!theme) {
232
+ console.error(`Error: Theme "${themeName}" not found`);
233
+ process.exit(1);
234
+ }
235
+
236
+ if (options.json) {
237
+ console.log(JSON.stringify(theme, null, 2));
238
+ } else {
239
+ console.log(`Theme: ${themeName}\n`);
240
+ console.log(JSON.stringify(theme, null, 2));
241
+ }
242
+ } catch (error) {
243
+ console.error('Failed to inspect theme:', error);
244
+ process.exit(1);
245
+ }
246
+ }
247
+
248
+ /**
249
+ * Handle compare command
250
+ */
251
+ private handleCompare(args: string[], options: Record<string, any>): void {
252
+ const theme1 = options.theme1 || args[0];
253
+ const theme2 = options.theme2 || args[1];
254
+
255
+ if (!theme1 || !theme2) {
256
+ console.error('Error: Two theme names are required');
257
+ console.error('Usage: atomix-theme compare --theme1 <name1> --theme2 <name2>');
258
+ process.exit(1);
259
+ }
260
+
227
261
  try {
228
262
  const config = loadThemeConfig();
229
- const moduleName = options.module || 'CustomTheme';
263
+ const themeA = config.themes?.[theme1];
264
+ const themeB = config.themes?.[theme2];
265
+
266
+ if (!themeA) {
267
+ console.error(`Error: Theme "${theme1}" not found`);
268
+ process.exit(1);
269
+ }
270
+
271
+ if (!themeB) {
272
+ console.error(`Error: Theme "${theme2}" not found`);
273
+ process.exit(1);
274
+ }
275
+
276
+ console.log(`Comparing: ${theme1} vs ${theme2}\n`);
277
+ console.log('Differences:');
230
278
 
231
- // This would typically:
232
- // 1. Load themes
233
- // 2. Generate TypeScript definitions
234
- // 3. Write to output file
279
+ // Simple comparison (could be enhanced)
280
+ const keys = new Set([...Object.keys(themeA), ...Object.keys(themeB)]);
235
281
 
236
- console.log(`Generated types for module: ${moduleName}`);
237
- console.log('✅ Type generation completed');
282
+ for (const key of keys) {
283
+ const valueA = (themeA as any)[key];
284
+ const valueB = (themeB as any)[key];
285
+
286
+ if (JSON.stringify(valueA) !== JSON.stringify(valueB)) {
287
+ console.log(`\n ${key}:`);
288
+ console.log(` ${theme1}: ${JSON.stringify(valueA)}`);
289
+ console.log(` ${theme2}: ${JSON.stringify(valueB)}`);
290
+ }
291
+ }
238
292
  } catch (error) {
239
- console.error('Type generation failed:', error);
293
+ console.error('Failed to compare themes:', error);
294
+ process.exit(1);
295
+ }
296
+ }
297
+
298
+ /**
299
+ * Handle export command
300
+ */
301
+ private handleExport(args: string[], options: Record<string, any>): void {
302
+ const themeName = options.theme || args[0];
303
+ const outputPath = options.output || `${themeName}.json`;
304
+
305
+ if (!themeName) {
306
+ console.error('Error: Theme name is required');
307
+ console.error('Usage: atomix-theme export --theme <theme-name> [--output <path>]');
308
+ process.exit(1);
309
+ }
310
+
311
+ try {
312
+ const config = loadThemeConfig();
313
+ const theme = config.themes?.[themeName];
314
+
315
+ if (!theme) {
316
+ console.error(`Error: Theme "${themeName}" not found`);
317
+ process.exit(1);
318
+ }
319
+
320
+ const fs = require('fs');
321
+ fs.writeFileSync(outputPath, JSON.stringify(theme, null, 2));
322
+ console.log(`✅ Theme exported to: ${outputPath}`);
323
+ } catch (error) {
324
+ console.error('Failed to export theme:', error);
240
325
  process.exit(1);
241
326
  }
242
327
  }
@@ -245,13 +330,13 @@ export class ThemeCLI {
245
330
  * Handle help command
246
331
  */
247
332
  private handleHelp(args: string[], options: Record<string, any>): void {
248
- console.log('Atomix Theme CLI\\n');
249
- console.log('Usage: atomix-theme <command> [options]\\n');
333
+ console.log('Atomix Theme CLI\n');
334
+ console.log('Usage: atomix-theme <command> [options]\n');
250
335
  console.log('Commands:');
251
336
 
252
337
  for (const [name, command] of this.commands.entries()) {
253
338
  console.log(` ${name.padEnd(12)} ${command.description}`);
254
-
339
+
255
340
  if (command.options) {
256
341
  for (const [option, description] of Object.entries(command.options)) {
257
342
  console.log(` ${option.padEnd(16)} ${description}`);