@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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shohojdhara/atomix",
3
- "version": "0.3.3",
3
+ "version": "0.3.4",
4
4
  "description": "Atomix Design System - A modern component library for web applications",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -81,65 +81,11 @@
81
81
  "require": "./dist/lib/theme/index.js",
82
82
  "default": "./dist/lib/theme/index.js"
83
83
  },
84
- "./themes/shaj-default": {
85
- "import": "./dist/themes/shaj-default.css",
86
- "require": "./dist/themes/shaj-default.css",
87
- "default": "./dist/themes/shaj-default.css"
88
- },
89
- "./themes/shaj-default.min": {
90
- "import": "./dist/themes/shaj-default.min.css",
91
- "require": "./dist/themes/shaj-default.min.css",
92
- "default": "./dist/themes/shaj-default.min.css"
93
- },
94
- "./themes/flashtrade": {
95
- "import": "./dist/themes/flashtrade.css",
96
- "require": "./dist/themes/flashtrade.css",
97
- "default": "./dist/themes/flashtrade.css"
98
- },
99
- "./themes/flashtrade.min": {
100
- "import": "./dist/themes/flashtrade.min.css",
101
- "require": "./dist/themes/flashtrade.min.css",
102
- "default": "./dist/themes/flashtrade.min.css"
103
- },
104
- "./themes/boomdevs": {
105
- "import": "./dist/themes/boomdevs.css",
106
- "require": "./dist/themes/boomdevs.css",
107
- "default": "./dist/themes/boomdevs.css"
108
- },
109
- "./themes/boomdevs.min": {
110
- "import": "./dist/themes/boomdevs.min.css",
111
- "require": "./dist/themes/boomdevs.min.css",
112
- "default": "./dist/themes/boomdevs.min.css"
113
- },
114
- "./themes/esrar": {
115
- "import": "./dist/themes/esrar.css",
116
- "require": "./dist/themes/esrar.css",
117
- "default": "./dist/themes/esrar.css"
118
- },
119
- "./themes/esrar.min": {
120
- "import": "./dist/themes/esrar.min.css",
121
- "require": "./dist/themes/esrar.min.css",
122
- "default": "./dist/themes/esrar.min.css"
123
- },
124
- "./themes/mashroom": {
125
- "import": "./dist/themes/mashroom.css",
126
- "require": "./dist/themes/mashroom.css",
127
- "default": "./dist/themes/mashroom.css"
128
- },
129
- "./themes/mashroom.min": {
130
- "import": "./dist/themes/mashroom.min.css",
131
- "require": "./dist/themes/mashroom.min.css",
132
- "default": "./dist/themes/mashroom.min.css"
133
- },
134
- "./themes/applemix": {
135
- "import": "./dist/themes/applemix.css",
136
- "require": "./dist/themes/applemix.css",
137
- "default": "./dist/themes/applemix.css"
138
- },
139
- "./themes/applemix.min": {
140
- "import": "./dist/themes/applemix.min.css",
141
- "require": "./dist/themes/applemix.min.css",
142
- "default": "./dist/themes/applemix.min.css"
84
+ "./config": {
85
+ "types": "./dist/lib/config/index.d.ts",
86
+ "import": "./dist/lib/config/index.js",
87
+ "require": "./dist/lib/config/index.js",
88
+ "default": "./dist/lib/config/index.js"
143
89
  },
144
90
  "./package.json": "./package.json"
145
91
  },
@@ -243,7 +189,10 @@
243
189
  "typecheck": "tsc --noEmit",
244
190
  "attw": "attw --pack",
245
191
  "sync:config": "npx tsx scripts/sync-theme-config-ts.ts",
246
- "prebuild": "npm run sync:config",
192
+ "sync:tokens": "npx tsx scripts/generate-tokens.ts",
193
+ "validate:config": "npx tsx scripts/validate-config-sync.ts",
194
+ "prebuild": "npm run sync:config && npm run validate:config",
195
+ "prebuild:with-tokens": "npm run sync:config && npm run sync:tokens && npm run validate:config",
247
196
  "prepublishOnly": "npm run clean && npm run build && npm run attw",
248
197
  "prepack": "echo 'Preparing package for publishing...'"
249
198
  },
@@ -306,4 +255,4 @@
306
255
  "publishConfig": {
307
256
  "access": "public"
308
257
  }
309
- }
258
+ }
@@ -32,6 +32,7 @@ import {
32
32
  exportTokens,
33
33
  importTokens
34
34
  } from './cli/token-manager.js';
35
+ import { createThemeCLIBridge } from './cli/theme-bridge.js';
35
36
 
36
37
  const __filename = fileURLToPath(import.meta.url);
37
38
  const __dirname = dirname(__filename);
@@ -1328,6 +1329,326 @@ program
1328
1329
  }
1329
1330
  });
1330
1331
 
1332
+ /**
1333
+ * Theme Command Group - NEW (Integrated with Theme Devtools)
1334
+ */
1335
+ const themeCommand = program
1336
+ .command('theme')
1337
+ .description('Theme management commands');
1338
+
1339
+ // Theme validate
1340
+ themeCommand
1341
+ .command('validate')
1342
+ .description('Validate theme configuration')
1343
+ .option('--config <path>', 'Path to theme config file')
1344
+ .option('--strict', 'Enable strict validation')
1345
+ .action(async (options) => {
1346
+ try {
1347
+ const themeCLI = createThemeCLIBridge();
1348
+ await themeCLI.validate(options);
1349
+ } catch (error) {
1350
+ handleError(error);
1351
+ }
1352
+ });
1353
+
1354
+ // Theme list
1355
+ themeCommand
1356
+ .command('list')
1357
+ .alias('ls')
1358
+ .description('List all available themes')
1359
+ .action(async () => {
1360
+ try {
1361
+ const themeCLI = createThemeCLIBridge();
1362
+ await themeCLI.list();
1363
+ } catch (error) {
1364
+ handleError(error);
1365
+ }
1366
+ });
1367
+
1368
+ // Theme inspect
1369
+ themeCommand
1370
+ .command('inspect <name>')
1371
+ .description('Inspect a specific theme')
1372
+ .option('--json', 'Output as JSON')
1373
+ .action(async (name, options) => {
1374
+ try {
1375
+ const themeCLI = createThemeCLIBridge();
1376
+ await themeCLI.inspect(name, options);
1377
+ } catch (error) {
1378
+ handleError(error);
1379
+ }
1380
+ });
1381
+
1382
+ // Theme compare
1383
+ themeCommand
1384
+ .command('compare <theme1> <theme2>')
1385
+ .description('Compare two themes')
1386
+ .action(async (theme1, theme2) => {
1387
+ try {
1388
+ const themeCLI = createThemeCLIBridge();
1389
+ await themeCLI.compare(theme1, theme2);
1390
+ } catch (error) {
1391
+ handleError(error);
1392
+ }
1393
+ });
1394
+
1395
+ // Theme export
1396
+ themeCommand
1397
+ .command('export <name>')
1398
+ .description('Export theme to JSON')
1399
+ .option('-o, --output <path>', 'Output file path')
1400
+ .action(async (name, options) => {
1401
+ try {
1402
+ const themeCLI = createThemeCLIBridge();
1403
+ await themeCLI.export(name, options);
1404
+ } catch (error) {
1405
+ handleError(error);
1406
+ }
1407
+ });
1408
+
1409
+ // Theme create - NEW
1410
+ themeCommand
1411
+ .command('create <name>')
1412
+ .description('Create a new theme')
1413
+ .option('-t, --type <type>', 'Theme type (css|js)', 'css')
1414
+ .option('--template <name>', 'Use template (dark|light|high-contrast)')
1415
+ .option('--interactive', 'Interactive mode', false)
1416
+ .option('-o, --output <path>', 'Output directory', './themes')
1417
+ .action(async (name, options) => {
1418
+ const spinner = ora('Creating theme...').start();
1419
+
1420
+ try {
1421
+ debug(`Creating theme: ${name}`, options);
1422
+
1423
+ // Validate name
1424
+ if (!/^[a-z][a-z0-9-]*$/.test(name)) {
1425
+ throw new AtomixCLIError(
1426
+ 'Theme name must be lowercase and use hyphens (e.g., my-theme)',
1427
+ 'INVALID_NAME',
1428
+ [
1429
+ 'Use lowercase letters, numbers, and hyphens',
1430
+ 'Start with a letter',
1431
+ 'Example: dark-theme, light-mode, custom-theme'
1432
+ ]
1433
+ );
1434
+ }
1435
+
1436
+ const themePath = join(options.output, name);
1437
+
1438
+ // Check if theme already exists
1439
+ if (existsSync(themePath)) {
1440
+ throw new AtomixCLIError(
1441
+ `Theme ${name} already exists`,
1442
+ 'THEME_EXISTS',
1443
+ [
1444
+ `Delete the existing theme at ${themePath}`,
1445
+ 'Choose a different theme name',
1446
+ 'Use --force flag to overwrite (not yet implemented)'
1447
+ ]
1448
+ );
1449
+ }
1450
+
1451
+ // Create theme directory
1452
+ await mkdir(themePath, { recursive: true });
1453
+
1454
+ // Generate theme files based on type
1455
+ if (options.type === 'css') {
1456
+ // Create SCSS theme
1457
+ const scssContent = `// Theme: ${name}
1458
+ // =============================================================================
1459
+
1460
+ @import '../../src/styles/01-settings';
1461
+ @import '../../src/styles/02-tools';
1462
+
1463
+ // Theme Variables
1464
+ // =============================================================================
1465
+ :root[data-theme="${name}"] {
1466
+ // Colors
1467
+ --atomix-color-primary: #7AFFD7;
1468
+ --atomix-color-secondary: #FF5733;
1469
+ --atomix-color-success: #4DFF9F;
1470
+ --atomix-color-error: #FF1A1A;
1471
+ --atomix-color-warning: #FFB84D;
1472
+
1473
+ // Background
1474
+ --atomix-color-background: #000000;
1475
+ --atomix-color-surface: #212121;
1476
+
1477
+ // Text
1478
+ --atomix-color-text: #FFFFFF;
1479
+ --atomix-color-text-secondary: rgba(255, 255, 255, 0.8);
1480
+
1481
+ // Border
1482
+ --atomix-color-border: rgba(255, 255, 255, 0.1);
1483
+
1484
+ // Spacing (if needed)
1485
+ // --atomix-space-base: 16px;
1486
+
1487
+ // Typography (if needed)
1488
+ // --atomix-font-family-base: 'Inter', sans-serif;
1489
+ }
1490
+
1491
+ // Theme-specific Component Overrides
1492
+ // =============================================================================
1493
+ [data-theme="${name}"] {
1494
+ // Add component-specific overrides here
1495
+
1496
+ .c-button {
1497
+ // Button overrides
1498
+ }
1499
+
1500
+ .c-card {
1501
+ // Card overrides
1502
+ }
1503
+ }
1504
+ `;
1505
+
1506
+ await writeFile(join(themePath, 'index.scss'), scssContent, 'utf8');
1507
+ spinner.succeed(chalk.green(`✓ Created ${name}/index.scss`));
1508
+
1509
+ } else if (options.type === 'js') {
1510
+ // Create JavaScript theme
1511
+ const jsContent = `/**
1512
+ * Theme: ${name}
1513
+ */
1514
+
1515
+ import { createTheme } from '@shohojdhara/atomix/theme';
1516
+
1517
+ export const ${name.replace(/-([a-z])/g, (_, c) => c.toUpperCase())}Theme = createTheme({
1518
+ name: '${name}',
1519
+ palette: {
1520
+ primary: {
1521
+ main: '#7AFFD7',
1522
+ light: '#A0FFE6',
1523
+ dark: '#00E6C3',
1524
+ contrastText: '#000000',
1525
+ },
1526
+ secondary: {
1527
+ main: '#FF5733',
1528
+ light: '#FF8A65',
1529
+ dark: '#E64A19',
1530
+ contrastText: '#FFFFFF',
1531
+ },
1532
+ success: {
1533
+ main: '#4DFF9F',
1534
+ light: '#80FFB8',
1535
+ dark: '#00E66B',
1536
+ contrastText: '#000000',
1537
+ },
1538
+ error: {
1539
+ main: '#FF1A1A',
1540
+ light: '#FF5252',
1541
+ dark: '#E60000',
1542
+ contrastText: '#FFFFFF',
1543
+ },
1544
+ warning: {
1545
+ main: '#FFB84D',
1546
+ light: '#FFCC80',
1547
+ dark: '#FF9800',
1548
+ contrastText: '#000000',
1549
+ },
1550
+ background: {
1551
+ default: '#000000',
1552
+ paper: '#212121',
1553
+ },
1554
+ text: {
1555
+ primary: '#FFFFFF',
1556
+ secondary: 'rgba(255, 255, 255, 0.8)',
1557
+ disabled: 'rgba(255, 255, 255, 0.5)',
1558
+ },
1559
+ },
1560
+ typography: {
1561
+ fontFamily: 'Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif',
1562
+ fontSize: 16,
1563
+ fontWeightLight: 300,
1564
+ fontWeightRegular: 400,
1565
+ fontWeightMedium: 500,
1566
+ fontWeightBold: 700,
1567
+ },
1568
+ spacing: {
1569
+ unit: 8,
1570
+ },
1571
+ shape: {
1572
+ borderRadius: 6,
1573
+ },
1574
+ });
1575
+
1576
+ export default ${name.replace(/-([a-z])/g, (_, c) => c.toUpperCase())}Theme;
1577
+ `;
1578
+
1579
+ await writeFile(join(themePath, 'index.ts'), jsContent, 'utf8');
1580
+ spinner.succeed(chalk.green(`✓ Created ${name}/index.ts`));
1581
+ }
1582
+
1583
+ // Create README
1584
+ const readmeContent = `# ${name} Theme
1585
+
1586
+ ## Description
1587
+
1588
+ A custom theme for Atomix Design System.
1589
+
1590
+ ## Usage
1591
+
1592
+ ### CSS Theme
1593
+
1594
+ \`\`\`scss
1595
+ @import 'themes/${name}';
1596
+ \`\`\`
1597
+
1598
+ ### JavaScript Theme
1599
+
1600
+ \`\`\`typescript
1601
+ import { ${name.replace(/-([a-z])/g, (_, c) => c.toUpperCase())}Theme } from './themes/${name}';
1602
+ import { ThemeProvider } from '@shohojdhara/atomix/theme';
1603
+
1604
+ function App() {
1605
+ return (
1606
+ <ThemeProvider theme={${name.replace(/-([a-z])/g, (_, c) => c.toUpperCase())}Theme}>
1607
+ {/* Your app */}
1608
+ </ThemeProvider>
1609
+ );
1610
+ }
1611
+ \`\`\`
1612
+
1613
+ ## Customization
1614
+
1615
+ Edit the theme variables in \`index.${options.type === 'css' ? 'scss' : 'ts'}\` to customize colors, typography, spacing, and more.
1616
+
1617
+ ## Build
1618
+
1619
+ \`\`\`bash
1620
+ atomix build-theme themes/${name}
1621
+ \`\`\`
1622
+ `;
1623
+
1624
+ await writeFile(join(themePath, 'README.md'), readmeContent, 'utf8');
1625
+ console.log(chalk.green(` ✓ Created ${name}/README.md`));
1626
+
1627
+ // Success message
1628
+ console.log(boxen(
1629
+ chalk.bold.green(`🎨 Theme "${name}" created successfully!\n\n`) +
1630
+ chalk.cyan('Next steps:\n') +
1631
+ chalk.gray(`1. Customize your theme:\n`) +
1632
+ chalk.white(` Edit ${themePath}/index.${options.type === 'css' ? 'scss' : 'ts'}\n\n`) +
1633
+ (options.type === 'css'
1634
+ ? chalk.gray(`2. Build your theme:\n`) + chalk.white(` atomix build-theme ${themePath}\n\n`)
1635
+ : chalk.gray(`2. Use in your app:\n`) + chalk.white(` import theme from './themes/${name}';\n\n`)
1636
+ ) +
1637
+ chalk.gray(`3. Apply your theme:\n`) +
1638
+ chalk.white(` <ThemeProvider theme="${name}">...</ThemeProvider>`),
1639
+ {
1640
+ padding: 1,
1641
+ margin: 1,
1642
+ borderStyle: 'round',
1643
+ borderColor: 'green'
1644
+ }
1645
+ ));
1646
+
1647
+ } catch (error) {
1648
+ handleError(error, spinner);
1649
+ }
1650
+ });
1651
+
1331
1652
  /**
1332
1653
  * Doctor Command - NEW
1333
1654
  */
@@ -1375,11 +1696,13 @@ program
1375
1696
  }
1376
1697
 
1377
1698
  // Check for configuration files
1378
- const configFiles = ['.atomixrc', 'atomix.config.js', 'atomix.config.json'];
1699
+ const configFiles = ['.atomixrc', 'atomix.config.js', 'atomix.config.json', 'theme.config.ts'];
1379
1700
  let hasConfig = false;
1701
+ let configFile = null;
1380
1702
  for (const file of configFiles) {
1381
1703
  if (existsSync(join(process.cwd(), file))) {
1382
1704
  hasConfig = true;
1705
+ configFile = file;
1383
1706
  break;
1384
1707
  }
1385
1708
  }
@@ -1388,10 +1711,23 @@ program
1388
1711
  name: 'Configuration File',
1389
1712
  status: hasConfig ? '✅' : '💡',
1390
1713
  message: hasConfig
1391
- ? 'Configuration found'
1714
+ ? `Configuration found (${configFile})`
1392
1715
  : 'No config file (using defaults)',
1393
1716
  });
1394
1717
 
1718
+ // Check theme CLI availability
1719
+ const themeCLIAvailable = await import('./cli/theme-bridge.js')
1720
+ .then(m => m.isThemeCLIAvailable())
1721
+ .catch(() => false);
1722
+
1723
+ checks.push({
1724
+ name: 'Theme CLI',
1725
+ status: themeCLIAvailable ? '✅' : '⚠️',
1726
+ message: themeCLIAvailable
1727
+ ? 'Available'
1728
+ : 'Theme devtools not found',
1729
+ });
1730
+
1395
1731
  spinner.stop();
1396
1732
 
1397
1733
  // Display results