@shohojdhara/atomix 0.3.3 → 0.3.5

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 (489) hide show
  1. package/README.md +46 -28
  2. package/dist/atomix.css +15 -9
  3. package/dist/atomix.css.map +1 -0
  4. package/dist/atomix.min.css +15108 -11
  5. package/dist/atomix.min.css.map +1 -0
  6. package/dist/charts.d.ts +1929 -0
  7. package/dist/charts.js +6482 -0
  8. package/dist/charts.js.map +1 -0
  9. package/dist/core.d.ts +1289 -0
  10. package/dist/core.js +3357 -0
  11. package/dist/core.js.map +1 -0
  12. package/dist/forms.d.ts +1085 -0
  13. package/dist/forms.js +2450 -0
  14. package/dist/forms.js.map +1 -0
  15. package/dist/heavy.d.ts +636 -0
  16. package/dist/heavy.js +4550 -0
  17. package/dist/heavy.js.map +1 -0
  18. package/dist/index.d.ts +5196 -4618
  19. package/dist/index.esm.js +4240 -2776
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/index.js +4057 -2571
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.min.js +1 -1
  24. package/dist/index.min.js.map +1 -1
  25. package/dist/layout.d.ts +300 -0
  26. package/dist/layout.js +336 -0
  27. package/dist/layout.js.map +1 -0
  28. package/dist/theme.d.ts +1992 -0
  29. package/dist/theme.js +5348 -0
  30. package/dist/theme.js.map +1 -0
  31. package/package.json +63 -68
  32. package/scripts/atomix-cli.js +879 -15
  33. package/scripts/cli/__tests__/cli-commands.test.js +204 -0
  34. package/scripts/cli/__tests__/utils.test.js +201 -0
  35. package/scripts/cli/__tests__/vitest.config.js +26 -0
  36. package/scripts/cli/interactive-init.js +37 -45
  37. package/scripts/cli/theme-bridge.js +129 -0
  38. package/scripts/cli/token-manager.js +32 -7
  39. package/scripts/cli/utils.js +347 -0
  40. package/scripts/sync-theme-config.js +22 -22
  41. package/src/components/Accordion/Accordion.tsx +5 -54
  42. package/src/components/Accordion/index.ts +1 -1
  43. package/src/components/Avatar/Avatar.tsx +3 -3
  44. package/src/components/Badge/Badge.tsx +3 -3
  45. package/src/components/Breadcrumb/Breadcrumb.tsx +3 -3
  46. package/src/components/Button/Button.tsx +36 -1
  47. package/src/components/Card/ElevationCard.tsx +1 -1
  48. package/src/components/Chart/AnimatedChart.tsx +19 -17
  49. package/src/components/Chart/AreaChart.tsx +5 -1
  50. package/src/components/Chart/BarChart.tsx +1 -0
  51. package/src/components/Chart/BubbleChart.tsx +6 -5
  52. package/src/components/Chart/ChartToolbar.tsx +1 -0
  53. package/src/components/Chart/FunnelChart.tsx +1 -1
  54. package/src/components/Chart/RadarChart.tsx +19 -12
  55. package/src/components/Chart/ScatterChart.tsx +3 -3
  56. package/src/components/Chart/TreemapChart.tsx +2 -1
  57. package/src/components/Chart/WaterfallChart.tsx +0 -1
  58. package/src/components/Chart/types.ts +12 -2
  59. package/src/components/Chart/utils.ts +4 -3
  60. package/src/components/DataTable/DataTable.tsx +3 -3
  61. package/src/components/Dropdown/Dropdown.tsx +12 -9
  62. package/src/components/Footer/FooterSection.tsx +3 -3
  63. package/src/components/Form/Checkbox.tsx +3 -3
  64. package/src/components/Form/Input.tsx +4 -2
  65. package/src/components/Form/Radio.tsx +3 -3
  66. package/src/components/Form/Select.tsx +3 -3
  67. package/src/components/Form/Textarea.tsx +4 -2
  68. package/src/components/List/List.stories.tsx +3 -3
  69. package/src/components/List/List.tsx +3 -3
  70. package/src/components/List/ListGroup.tsx +3 -1
  71. package/src/components/Modal/Modal.tsx +3 -3
  72. package/src/components/Navigation/Menu/MegaMenu.tsx +9 -3
  73. package/src/components/Navigation/Menu/Menu.tsx +9 -3
  74. package/src/components/Pagination/Pagination.tsx +6 -5
  75. package/src/components/PhotoViewer/PhotoViewerImage.tsx +2 -2
  76. package/src/components/Popover/Popover.tsx +4 -4
  77. package/src/components/Progress/Progress.tsx +6 -2
  78. package/src/components/Rating/Rating.tsx +5 -2
  79. package/src/components/Slider/Slider.tsx +10 -9
  80. package/src/components/Spinner/Spinner.tsx +3 -3
  81. package/src/components/Tabs/Tabs.tsx +3 -3
  82. package/src/components/Tooltip/Tooltip.tsx +3 -3
  83. package/src/components/index.ts +5 -2
  84. package/src/layouts/MasonryGrid/MasonryGrid.tsx +2 -2
  85. package/src/lib/composables/useChartPerformance.ts +102 -78
  86. package/src/lib/composables/useChartScale.ts +10 -0
  87. package/src/lib/composables/useHero.ts +9 -2
  88. package/src/lib/composables/useHeroBackgroundSlider.ts +5 -3
  89. package/src/lib/composables/useSideMenu.ts +1 -0
  90. package/src/lib/composables/useVideoPlayer.ts +3 -2
  91. package/src/lib/config/index.ts +275 -0
  92. package/src/lib/config/loader.ts +147 -0
  93. package/src/lib/hooks/index.ts +0 -1
  94. package/src/lib/hooks/useComponentCustomization.ts +10 -14
  95. package/src/lib/hooks/usePerformanceMonitor.ts +149 -0
  96. package/src/lib/index.ts +1 -0
  97. package/src/lib/patterns/index.ts +2 -2
  98. package/src/lib/patterns/slots.tsx +2 -2
  99. package/src/lib/theme/composeTheme.ts +1 -6
  100. package/src/lib/theme/config/index.ts +1 -1
  101. package/src/lib/theme/config/loader.ts +75 -41
  102. package/src/lib/theme/config/types.ts +21 -7
  103. package/src/lib/theme/config/validator.ts +1 -1
  104. package/src/lib/theme/constants.ts +12 -2
  105. package/src/lib/theme/core/ThemeEngine.ts +8 -0
  106. package/src/lib/theme/core/ThemeValidator.ts +5 -2
  107. package/src/lib/theme/createTheme.ts +0 -1
  108. package/src/lib/theme/createThemeFromConfig.ts +132 -0
  109. package/src/lib/theme/devtools/CLI.ts +161 -76
  110. package/src/lib/theme/devtools/Comparator.tsx +343 -0
  111. package/src/lib/theme/devtools/IMPROVEMENTS.md +429 -0
  112. package/src/lib/theme/devtools/Inspector.tsx +22 -7
  113. package/src/lib/theme/devtools/LiveEditor.tsx +399 -0
  114. package/src/lib/theme/devtools/README.md +433 -0
  115. package/src/lib/theme/devtools/index.ts +12 -11
  116. package/src/lib/theme/generateCSSVariables.ts +80 -39
  117. package/src/lib/theme/i18n/rtl.ts +2 -1
  118. package/src/lib/theme/index.ts +18 -2
  119. package/src/lib/theme/runtime/ThemeApplicator.ts +28 -11
  120. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +3 -3
  121. package/src/lib/theme/runtime/ThemeManager.test.ts +17 -1
  122. package/src/lib/theme/runtime/ThemeManager.ts +11 -7
  123. package/src/lib/theme/types.ts +42 -43
  124. package/src/lib/theme-tools.ts +8 -68
  125. package/src/lib/types/components.ts +252 -109
  126. package/src/lib/types/partProps.ts +0 -16
  127. package/src/lib/utils/fontPreloader.ts +148 -0
  128. package/src/lib/utils/index.ts +11 -0
  129. package/src/lib/utils/memoryMonitor.ts +189 -0
  130. package/src/styles/01-settings/_settings.fonts.scss +2 -5
  131. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  132. package/src/styles/03-generic/_generated-root.css +26 -0
  133. package/src/styles/06-components/_components.navbar.scss +6 -5
  134. package/src/themes/README.md +1 -2
  135. package/src/themes/themes.config.js +30 -181
  136. package/dist/themes/applemix.css +0 -16576
  137. package/dist/themes/applemix.css.map +0 -1
  138. package/dist/themes/applemix.min.css +0 -73
  139. package/dist/themes/boomdevs.css +0 -16007
  140. package/dist/themes/boomdevs.css.map +0 -1
  141. package/dist/themes/boomdevs.min.css +0 -406
  142. package/dist/themes/esrar.css +0 -18424
  143. package/dist/themes/esrar.css.map +0 -1
  144. package/dist/themes/esrar.min.css +0 -221
  145. package/dist/themes/flashtrade.css +0 -17596
  146. package/dist/themes/flashtrade.css.map +0 -1
  147. package/dist/themes/flashtrade.min.css +0 -196
  148. package/dist/themes/mashroom.css +0 -31082
  149. package/dist/themes/mashroom.css.map +0 -1
  150. package/dist/themes/mashroom.min.css +0 -450
  151. package/dist/themes/shaj-default.css +0 -17200
  152. package/dist/themes/shaj-default.css.map +0 -1
  153. package/dist/themes/shaj-default.min.css +0 -502
  154. package/scripts/build-themes.js +0 -208
  155. package/src/components/AtomixGlass/atomixGLass.old.tsx +0 -1263
  156. package/src/lib/theme/__tests__/ThemeBuilder.test.ts +0 -223
  157. package/src/lib/theme/builders/ThemeBuilder.ts +0 -372
  158. package/src/lib/theme/errors.test.ts +0 -207
  159. package/src/lib/theme/generators/CSSGenerator.ts +0 -311
  160. package/src/lib/theme/generators/ConfigGenerator.ts +0 -287
  161. package/src/lib/theme/generators/TypeGenerator.ts +0 -228
  162. package/src/lib/theme/generators/index.ts +0 -21
  163. package/src/lib/theme/monitoring/ThemeAnalytics.ts +0 -409
  164. package/src/lib/theme/monitoring/index.ts +0 -17
  165. package/src/lib/theme/overrides/ComponentOverrides.ts +0 -243
  166. package/src/lib/theme/overrides/index.ts +0 -15
  167. package/src/lib/theme/whitelabel/WhiteLabelManager.ts +0 -364
  168. package/src/lib/theme/whitelabel/index.ts +0 -13
  169. package/src/themes/THEME_CHECKLIST.md +0 -74
  170. package/src/themes/applemix/01-settings/_index.scss +0 -24
  171. package/src/themes/applemix/01-settings/_settings.animations.scss +0 -0
  172. package/src/themes/applemix/01-settings/_settings.background.scss +0 -6
  173. package/src/themes/applemix/01-settings/_settings.colors.scss +0 -75
  174. package/src/themes/applemix/01-settings/_settings.config.scss +0 -15
  175. package/src/themes/applemix/01-settings/_settings.typography.scss +0 -30
  176. package/src/themes/applemix/02-tools/_index.scss +0 -4
  177. package/src/themes/applemix/03-generic/_index.scss +0 -7
  178. package/src/themes/applemix/04-elements/_index.scss +0 -7
  179. package/src/themes/applemix/05-objects/_index.scss +0 -7
  180. package/src/themes/applemix/06-components/_index.scss +0 -15
  181. package/src/themes/applemix/99-utilities/_index.scss +0 -7
  182. package/src/themes/applemix/README.md +0 -378
  183. package/src/themes/applemix/index.scss +0 -33
  184. package/src/themes/boomdevs/01-settings/_index.scss +0 -38
  185. package/src/themes/boomdevs/01-settings/_settings.accordion.scss +0 -12
  186. package/src/themes/boomdevs/01-settings/_settings.animations.scss +0 -11
  187. package/src/themes/boomdevs/01-settings/_settings.avatar.scss +0 -9
  188. package/src/themes/boomdevs/01-settings/_settings.badge.scss +0 -11
  189. package/src/themes/boomdevs/01-settings/_settings.border-radius.scss +0 -16
  190. package/src/themes/boomdevs/01-settings/_settings.border.scss +0 -10
  191. package/src/themes/boomdevs/01-settings/_settings.box-shadow.scss +0 -14
  192. package/src/themes/boomdevs/01-settings/_settings.breadcrumb.scss +0 -13
  193. package/src/themes/boomdevs/01-settings/_settings.breakpoints.scss +0 -15
  194. package/src/themes/boomdevs/01-settings/_settings.button.scss +0 -9
  195. package/src/themes/boomdevs/01-settings/_settings.callout.scss +0 -9
  196. package/src/themes/boomdevs/01-settings/_settings.card.scss +0 -11
  197. package/src/themes/boomdevs/01-settings/_settings.checkbox.scss +0 -9
  198. package/src/themes/boomdevs/01-settings/_settings.colors.scss +0 -145
  199. package/src/themes/boomdevs/01-settings/_settings.dropdown.scss +0 -11
  200. package/src/themes/boomdevs/01-settings/_settings.grid.scss +0 -16
  201. package/src/themes/boomdevs/01-settings/_settings.input.scss +0 -14
  202. package/src/themes/boomdevs/01-settings/_settings.link.scss +0 -11
  203. package/src/themes/boomdevs/01-settings/_settings.list.scss +0 -10
  204. package/src/themes/boomdevs/01-settings/_settings.modal.scss +0 -16
  205. package/src/themes/boomdevs/01-settings/_settings.navbar.scss +0 -16
  206. package/src/themes/boomdevs/01-settings/_settings.pagination.scss +0 -13
  207. package/src/themes/boomdevs/01-settings/_settings.progress.scss +0 -11
  208. package/src/themes/boomdevs/01-settings/_settings.rating.scss +0 -10
  209. package/src/themes/boomdevs/01-settings/_settings.spacing.scss +0 -33
  210. package/src/themes/boomdevs/01-settings/_settings.spinner.scss +0 -11
  211. package/src/themes/boomdevs/01-settings/_settings.steps.scss +0 -12
  212. package/src/themes/boomdevs/01-settings/_settings.tabs.scss +0 -12
  213. package/src/themes/boomdevs/01-settings/_settings.todo.scss +0 -15
  214. package/src/themes/boomdevs/01-settings/_settings.toggle.scss +0 -14
  215. package/src/themes/boomdevs/01-settings/_settings.tooltip.scss +0 -13
  216. package/src/themes/boomdevs/01-settings/_settings.typography.scss +0 -58
  217. package/src/themes/boomdevs/01-settings/_settings.video-player.scss +0 -12
  218. package/src/themes/boomdevs/02-tools/_index.scss +0 -7
  219. package/src/themes/boomdevs/03-generic/_index.scss +0 -7
  220. package/src/themes/boomdevs/04-elements/_index.scss +0 -7
  221. package/src/themes/boomdevs/05-objects/_index.scss +0 -7
  222. package/src/themes/boomdevs/06-components/_components.button.scss +0 -11
  223. package/src/themes/boomdevs/06-components/_index.scss +0 -11
  224. package/src/themes/boomdevs/99-utilities/_index.scss +0 -7
  225. package/src/themes/boomdevs/index.scss +0 -26
  226. package/src/themes/esrar/01-settings/_index.scss +0 -15
  227. package/src/themes/esrar/01-settings/_settings.colors.scss +0 -91
  228. package/src/themes/esrar/02-tools/_index.scss +0 -8
  229. package/src/themes/esrar/02-tools/_tools.animations.scss +0 -342
  230. package/src/themes/esrar/06-components/_components.accordion.scss +0 -49
  231. package/src/themes/esrar/06-components/_components.avatar-group.scss +0 -14
  232. package/src/themes/esrar/06-components/_components.avatar.scss +0 -61
  233. package/src/themes/esrar/06-components/_components.badge.scss +0 -117
  234. package/src/themes/esrar/06-components/_components.breadcrumb.scss +0 -65
  235. package/src/themes/esrar/06-components/_components.btn-group.scss +0 -19
  236. package/src/themes/esrar/06-components/_components.button.scss +0 -224
  237. package/src/themes/esrar/06-components/_components.callout.scss +0 -51
  238. package/src/themes/esrar/06-components/_components.card.scss +0 -134
  239. package/src/themes/esrar/06-components/_components.chart.scss +0 -24
  240. package/src/themes/esrar/06-components/_components.checkbox-group.scss +0 -26
  241. package/src/themes/esrar/06-components/_components.checkbox.scss +0 -71
  242. package/src/themes/esrar/06-components/_components.color-mode-toggle.scss +0 -29
  243. package/src/themes/esrar/06-components/_components.countdown.scss +0 -67
  244. package/src/themes/esrar/06-components/_components.data-table.scss +0 -22
  245. package/src/themes/esrar/06-components/_components.datepicker.scss +0 -20
  246. package/src/themes/esrar/06-components/_components.dropdown.scss +0 -272
  247. package/src/themes/esrar/06-components/_components.edge-panel.scss +0 -10
  248. package/src/themes/esrar/06-components/_components.form-group.scss +0 -15
  249. package/src/themes/esrar/06-components/_components.form.scss +0 -66
  250. package/src/themes/esrar/06-components/_components.hero.scss +0 -251
  251. package/src/themes/esrar/06-components/_components.icon.scss +0 -33
  252. package/src/themes/esrar/06-components/_components.image-gallery.scss +0 -29
  253. package/src/themes/esrar/06-components/_components.input.scss +0 -91
  254. package/src/themes/esrar/06-components/_components.list-group.scss +0 -26
  255. package/src/themes/esrar/06-components/_components.modal.scss +0 -148
  256. package/src/themes/esrar/06-components/_components.notification.scss +0 -80
  257. package/src/themes/esrar/06-components/_components.pagination.scss +0 -84
  258. package/src/themes/esrar/06-components/_components.popover.scss +0 -10
  259. package/src/themes/esrar/06-components/_components.progress.scss +0 -64
  260. package/src/themes/esrar/06-components/_components.rating.scss +0 -26
  261. package/src/themes/esrar/06-components/_components.skeleton.scss +0 -15
  262. package/src/themes/esrar/06-components/_components.slider.scss +0 -90
  263. package/src/themes/esrar/06-components/_components.spinner.scss +0 -71
  264. package/src/themes/esrar/06-components/_components.steps.scss +0 -76
  265. package/src/themes/esrar/06-components/_components.tab.scss +0 -58
  266. package/src/themes/esrar/06-components/_components.tag.scss +0 -21
  267. package/src/themes/esrar/06-components/_components.timeline.scss +0 -19
  268. package/src/themes/esrar/06-components/_components.toast.scss +0 -91
  269. package/src/themes/esrar/06-components/_components.toggle.scss +0 -74
  270. package/src/themes/esrar/06-components/_components.tooltip.scss +0 -45
  271. package/src/themes/esrar/06-components/_components.upload.scss +0 -102
  272. package/src/themes/esrar/06-components/_index.scss +0 -42
  273. package/src/themes/esrar/index.scss +0 -30
  274. package/src/themes/flashtrade/01-settings/_index.scss +0 -19
  275. package/src/themes/flashtrade/01-settings/_settings.animations.scss +0 -11
  276. package/src/themes/flashtrade/01-settings/_settings.background.scss +0 -9
  277. package/src/themes/flashtrade/01-settings/_settings.colors.scss +0 -79
  278. package/src/themes/flashtrade/01-settings/_settings.config.scss +0 -16
  279. package/src/themes/flashtrade/01-settings/_settings.typography.scss +0 -35
  280. package/src/themes/flashtrade/02-tools/_index.scss +0 -8
  281. package/src/themes/flashtrade/03-generic/_index.scss +0 -8
  282. package/src/themes/flashtrade/04-elements/_index.scss +0 -12
  283. package/src/themes/flashtrade/05-objects/_index.scss +0 -8
  284. package/src/themes/flashtrade/06-components/_components.badge.scss +0 -156
  285. package/src/themes/flashtrade/06-components/_components.button.scss +0 -135
  286. package/src/themes/flashtrade/06-components/_components.card.scss +0 -214
  287. package/src/themes/flashtrade/06-components/_components.navbar.scss +0 -227
  288. package/src/themes/flashtrade/06-components/_index.scss +0 -13
  289. package/src/themes/flashtrade/99-utilities/_index.scss +0 -9
  290. package/src/themes/flashtrade/99-utilities/_utilities.trading.scss +0 -187
  291. package/src/themes/flashtrade/README.md +0 -386
  292. package/src/themes/flashtrade/demo.html +0 -272
  293. package/src/themes/flashtrade/index.scss +0 -36
  294. package/src/themes/mashroom/01-settings/_index.scss +0 -69
  295. package/src/themes/mashroom/01-settings/_settings.accordion.scss +0 -32
  296. package/src/themes/mashroom/01-settings/_settings.animations.scss +0 -26
  297. package/src/themes/mashroom/01-settings/_settings.avatar-group.scss +0 -22
  298. package/src/themes/mashroom/01-settings/_settings.avatar.scss +0 -57
  299. package/src/themes/mashroom/01-settings/_settings.badge.scss +0 -19
  300. package/src/themes/mashroom/01-settings/_settings.border-radius.scss +0 -24
  301. package/src/themes/mashroom/01-settings/_settings.border.scss +0 -14
  302. package/src/themes/mashroom/01-settings/_settings.box-shadow.scss +0 -40
  303. package/src/themes/mashroom/01-settings/_settings.breadcrumb.scss +0 -0
  304. package/src/themes/mashroom/01-settings/_settings.breakpoints.scss +0 -17
  305. package/src/themes/mashroom/01-settings/_settings.btn-group.scss +0 -5
  306. package/src/themes/mashroom/01-settings/_settings.button.scss +0 -50
  307. package/src/themes/mashroom/01-settings/_settings.callout.scss +0 -81
  308. package/src/themes/mashroom/01-settings/_settings.card.scss +0 -52
  309. package/src/themes/mashroom/01-settings/_settings.checkbox-group.scss +0 -5
  310. package/src/themes/mashroom/01-settings/_settings.checkbox.scss +0 -23
  311. package/src/themes/mashroom/01-settings/_settings.color-mode.scss +0 -7
  312. package/src/themes/mashroom/01-settings/_settings.colors.scss +0 -180
  313. package/src/themes/mashroom/01-settings/_settings.config.scss +0 -4
  314. package/src/themes/mashroom/01-settings/_settings.countdown.scss +0 -20
  315. package/src/themes/mashroom/01-settings/_settings.data-table.scss +0 -56
  316. package/src/themes/mashroom/01-settings/_settings.datepicker.scss +0 -45
  317. package/src/themes/mashroom/01-settings/_settings.design-tokens.scss +0 -3
  318. package/src/themes/mashroom/01-settings/_settings.dropdown.scss +0 -45
  319. package/src/themes/mashroom/01-settings/_settings.edge-panel.scss +0 -24
  320. package/src/themes/mashroom/01-settings/_settings.fonts.scss +0 -8
  321. package/src/themes/mashroom/01-settings/_settings.form-group.scss +0 -14
  322. package/src/themes/mashroom/01-settings/_settings.form.scss +0 -6
  323. package/src/themes/mashroom/01-settings/_settings.grid.scss +0 -23
  324. package/src/themes/mashroom/01-settings/_settings.hero.scss +0 -41
  325. package/src/themes/mashroom/01-settings/_settings.input.scss +0 -51
  326. package/src/themes/mashroom/01-settings/_settings.link.scss +0 -13
  327. package/src/themes/mashroom/01-settings/_settings.list-group.scss +0 -16
  328. package/src/themes/mashroom/01-settings/_settings.list.scss +0 -13
  329. package/src/themes/mashroom/01-settings/_settings.masonry-grid.scss +0 -23
  330. package/src/themes/mashroom/01-settings/_settings.menu.scss +0 -50
  331. package/src/themes/mashroom/01-settings/_settings.messages.scss +0 -98
  332. package/src/themes/mashroom/01-settings/_settings.modal.scss +0 -41
  333. package/src/themes/mashroom/01-settings/_settings.nav.scss +0 -20
  334. package/src/themes/mashroom/01-settings/_settings.navbar.scss +0 -54
  335. package/src/themes/mashroom/01-settings/_settings.pagination.scss +0 -30
  336. package/src/themes/mashroom/01-settings/_settings.photoviewer.scss +0 -45
  337. package/src/themes/mashroom/01-settings/_settings.popover.scss +0 -20
  338. package/src/themes/mashroom/01-settings/_settings.position.scss +0 -9
  339. package/src/themes/mashroom/01-settings/_settings.progress.scss +0 -17
  340. package/src/themes/mashroom/01-settings/_settings.rating.scss +0 -11
  341. package/src/themes/mashroom/01-settings/_settings.river.scss +0 -50
  342. package/src/themes/mashroom/01-settings/_settings.sectionintro.scss +0 -31
  343. package/src/themes/mashroom/01-settings/_settings.select.scss +0 -47
  344. package/src/themes/mashroom/01-settings/_settings.side-menu.scss +0 -79
  345. package/src/themes/mashroom/01-settings/_settings.skeleton.scss +0 -24
  346. package/src/themes/mashroom/01-settings/_settings.spacing.scss +0 -66
  347. package/src/themes/mashroom/01-settings/_settings.spinner.scss +0 -34
  348. package/src/themes/mashroom/01-settings/_settings.steps.scss +0 -33
  349. package/src/themes/mashroom/01-settings/_settings.tabs.scss +0 -33
  350. package/src/themes/mashroom/01-settings/_settings.testimonials.scss +0 -24
  351. package/src/themes/mashroom/01-settings/_settings.todo.scss +0 -52
  352. package/src/themes/mashroom/01-settings/_settings.toggle.scss +0 -49
  353. package/src/themes/mashroom/01-settings/_settings.tooltip.scss +0 -20
  354. package/src/themes/mashroom/01-settings/_settings.typography.scss +0 -95
  355. package/src/themes/mashroom/01-settings/_settings.upload.scss +0 -96
  356. package/src/themes/mashroom/01-settings/_settings.z-layers.scss +0 -19
  357. package/src/themes/mashroom/02-tools/_index.scss +0 -8
  358. package/src/themes/mashroom/02-tools/_tools.psychedelic-gradients.scss +0 -78
  359. package/src/themes/mashroom/02-tools/_tools.trippy-effects.scss +0 -114
  360. package/src/themes/mashroom/03-generic/_index.scss +0 -6
  361. package/src/themes/mashroom/04-elements/_index.scss +0 -6
  362. package/src/themes/mashroom/05-objects/_index.scss +0 -6
  363. package/src/themes/mashroom/06-components/_components.accordion.scss +0 -187
  364. package/src/themes/mashroom/06-components/_components.avatar-group.scss +0 -276
  365. package/src/themes/mashroom/06-components/_components.avatar.scss +0 -114
  366. package/src/themes/mashroom/06-components/_components.badge.scss +0 -152
  367. package/src/themes/mashroom/06-components/_components.breadcrumb.scss +0 -162
  368. package/src/themes/mashroom/06-components/_components.btn-group.scss +0 -404
  369. package/src/themes/mashroom/06-components/_components.button.scss +0 -160
  370. package/src/themes/mashroom/06-components/_components.callout.scss +0 -140
  371. package/src/themes/mashroom/06-components/_components.card.scss +0 -225
  372. package/src/themes/mashroom/06-components/_components.checkbox.scss +0 -186
  373. package/src/themes/mashroom/06-components/_components.color-mode-toggle.scss +0 -308
  374. package/src/themes/mashroom/06-components/_components.countdown.scss +0 -402
  375. package/src/themes/mashroom/06-components/_components.data-table.scss +0 -354
  376. package/src/themes/mashroom/06-components/_components.datepicker.scss +0 -349
  377. package/src/themes/mashroom/06-components/_components.dropdown.scss +0 -334
  378. package/src/themes/mashroom/06-components/_components.edge-panel.scss +0 -413
  379. package/src/themes/mashroom/06-components/_components.form-group.scss +0 -433
  380. package/src/themes/mashroom/06-components/_components.form.scss +0 -358
  381. package/src/themes/mashroom/06-components/_components.hero.scss +0 -151
  382. package/src/themes/mashroom/06-components/_components.input.scss +0 -147
  383. package/src/themes/mashroom/06-components/_components.list-group.scss +0 -456
  384. package/src/themes/mashroom/06-components/_components.list.scss +0 -145
  385. package/src/themes/mashroom/06-components/_components.menu.scss +0 -497
  386. package/src/themes/mashroom/06-components/_components.messages.scss +0 -277
  387. package/src/themes/mashroom/06-components/_components.modal.scss +0 -264
  388. package/src/themes/mashroom/06-components/_components.nav.scss +0 -181
  389. package/src/themes/mashroom/06-components/_components.navbar.scss +0 -538
  390. package/src/themes/mashroom/06-components/_components.pagination.scss +0 -400
  391. package/src/themes/mashroom/06-components/_components.photoviewer.scss +0 -498
  392. package/src/themes/mashroom/06-components/_components.popover.scss +0 -383
  393. package/src/themes/mashroom/06-components/_components.product-review.scss +0 -408
  394. package/src/themes/mashroom/06-components/_components.progress.scss +0 -249
  395. package/src/themes/mashroom/06-components/_components.rating.scss +0 -300
  396. package/src/themes/mashroom/06-components/_components.river.scss +0 -570
  397. package/src/themes/mashroom/06-components/_components.sectionintro.scss +0 -546
  398. package/src/themes/mashroom/06-components/_components.select.scss +0 -455
  399. package/src/themes/mashroom/06-components/_components.side-menu.scss +0 -635
  400. package/src/themes/mashroom/06-components/_components.skeleton.scss +0 -447
  401. package/src/themes/mashroom/06-components/_components.slider.scss +0 -414
  402. package/src/themes/mashroom/06-components/_components.spinner.scss +0 -198
  403. package/src/themes/mashroom/06-components/_components.steps.scss +0 -350
  404. package/src/themes/mashroom/06-components/_components.tabs.scss +0 -269
  405. package/src/themes/mashroom/06-components/_components.testimonials.scss +0 -561
  406. package/src/themes/mashroom/06-components/_components.toggle.scss +0 -231
  407. package/src/themes/mashroom/06-components/_components.tooltip.scss +0 -167
  408. package/src/themes/mashroom/06-components/_components.upload.scss +0 -537
  409. package/src/themes/mashroom/06-components/_components.video-player.scss +0 -560
  410. package/src/themes/mashroom/06-components/_index.scss +0 -55
  411. package/src/themes/mashroom/99-utilities/_index.scss +0 -6
  412. package/src/themes/mashroom/index.scss +0 -26
  413. package/src/themes/shaj-default/01-settings/_index.scss +0 -69
  414. package/src/themes/shaj-default/01-settings/_settings.accordion.scss +0 -38
  415. package/src/themes/shaj-default/01-settings/_settings.animations.scss +0 -32
  416. package/src/themes/shaj-default/01-settings/_settings.avatar-group.scss +0 -28
  417. package/src/themes/shaj-default/01-settings/_settings.avatar.scss +0 -63
  418. package/src/themes/shaj-default/01-settings/_settings.badge.scss +0 -25
  419. package/src/themes/shaj-default/01-settings/_settings.border-radius.scss +0 -24
  420. package/src/themes/shaj-default/01-settings/_settings.border.scss +0 -20
  421. package/src/themes/shaj-default/01-settings/_settings.box-shadow.scss +0 -46
  422. package/src/themes/shaj-default/01-settings/_settings.breadcrumb.scss +0 -0
  423. package/src/themes/shaj-default/01-settings/_settings.breakpoints.scss +0 -23
  424. package/src/themes/shaj-default/01-settings/_settings.btn-group.scss +0 -11
  425. package/src/themes/shaj-default/01-settings/_settings.button.scss +0 -56
  426. package/src/themes/shaj-default/01-settings/_settings.callout.scss +0 -87
  427. package/src/themes/shaj-default/01-settings/_settings.card.scss +0 -52
  428. package/src/themes/shaj-default/01-settings/_settings.checkbox-group.scss +0 -11
  429. package/src/themes/shaj-default/01-settings/_settings.checkbox.scss +0 -29
  430. package/src/themes/shaj-default/01-settings/_settings.color-mode.scss +0 -13
  431. package/src/themes/shaj-default/01-settings/_settings.colors.scss +0 -91
  432. package/src/themes/shaj-default/01-settings/_settings.config.scss +0 -4
  433. package/src/themes/shaj-default/01-settings/_settings.countdown.scss +0 -26
  434. package/src/themes/shaj-default/01-settings/_settings.data-table.scss +0 -62
  435. package/src/themes/shaj-default/01-settings/_settings.datepicker.scss +0 -51
  436. package/src/themes/shaj-default/01-settings/_settings.design-tokens.scss +0 -9
  437. package/src/themes/shaj-default/01-settings/_settings.dropdown.scss +0 -51
  438. package/src/themes/shaj-default/01-settings/_settings.edge-panel.scss +0 -30
  439. package/src/themes/shaj-default/01-settings/_settings.fonts.scss +0 -13
  440. package/src/themes/shaj-default/01-settings/_settings.form-group.scss +0 -20
  441. package/src/themes/shaj-default/01-settings/_settings.form.scss +0 -12
  442. package/src/themes/shaj-default/01-settings/_settings.grid.scss +0 -29
  443. package/src/themes/shaj-default/01-settings/_settings.hero.scss +0 -47
  444. package/src/themes/shaj-default/01-settings/_settings.input.scss +0 -57
  445. package/src/themes/shaj-default/01-settings/_settings.link.scss +0 -19
  446. package/src/themes/shaj-default/01-settings/_settings.list-group.scss +0 -22
  447. package/src/themes/shaj-default/01-settings/_settings.list.scss +0 -19
  448. package/src/themes/shaj-default/01-settings/_settings.masonry-grid.scss +0 -29
  449. package/src/themes/shaj-default/01-settings/_settings.menu.scss +0 -56
  450. package/src/themes/shaj-default/01-settings/_settings.messages.scss +0 -104
  451. package/src/themes/shaj-default/01-settings/_settings.modal.scss +0 -47
  452. package/src/themes/shaj-default/01-settings/_settings.nav.scss +0 -26
  453. package/src/themes/shaj-default/01-settings/_settings.navbar.scss +0 -60
  454. package/src/themes/shaj-default/01-settings/_settings.pagination.scss +0 -36
  455. package/src/themes/shaj-default/01-settings/_settings.photoviewer.scss +0 -51
  456. package/src/themes/shaj-default/01-settings/_settings.popover.scss +0 -26
  457. package/src/themes/shaj-default/01-settings/_settings.position.scss +0 -15
  458. package/src/themes/shaj-default/01-settings/_settings.progress.scss +0 -23
  459. package/src/themes/shaj-default/01-settings/_settings.rating.scss +0 -17
  460. package/src/themes/shaj-default/01-settings/_settings.river.scss +0 -56
  461. package/src/themes/shaj-default/01-settings/_settings.sectionintro.scss +0 -37
  462. package/src/themes/shaj-default/01-settings/_settings.select.scss +0 -53
  463. package/src/themes/shaj-default/01-settings/_settings.side-menu.scss +0 -85
  464. package/src/themes/shaj-default/01-settings/_settings.skeleton.scss +0 -30
  465. package/src/themes/shaj-default/01-settings/_settings.spacing.scss +0 -72
  466. package/src/themes/shaj-default/01-settings/_settings.spinner.scss +0 -24
  467. package/src/themes/shaj-default/01-settings/_settings.steps.scss +0 -39
  468. package/src/themes/shaj-default/01-settings/_settings.tabs.scss +0 -39
  469. package/src/themes/shaj-default/01-settings/_settings.testimonials.scss +0 -30
  470. package/src/themes/shaj-default/01-settings/_settings.todo.scss +0 -58
  471. package/src/themes/shaj-default/01-settings/_settings.toggle.scss +0 -55
  472. package/src/themes/shaj-default/01-settings/_settings.tooltip.scss +0 -26
  473. package/src/themes/shaj-default/01-settings/_settings.typography.scss +0 -101
  474. package/src/themes/shaj-default/01-settings/_settings.upload.scss +0 -102
  475. package/src/themes/shaj-default/01-settings/_settings.z-layers.scss +0 -25
  476. package/src/themes/shaj-default/02-tools/_index.scss +0 -0
  477. package/src/themes/shaj-default/03-generic/_generic.root.scss +0 -0
  478. package/src/themes/shaj-default/03-generic/_index.scss +0 -2
  479. package/src/themes/shaj-default/04-elements/_index.scss +0 -0
  480. package/src/themes/shaj-default/05-objects/_index.scss +0 -0
  481. package/src/themes/shaj-default/06-components/_components.button.scss +0 -55
  482. package/src/themes/shaj-default/06-components/_components.card.scss +0 -57
  483. package/src/themes/shaj-default/06-components/_components.input.scss +0 -58
  484. package/src/themes/shaj-default/06-components/_components.navbar.scss +0 -99
  485. package/src/themes/shaj-default/06-components/_components.tooltip.scss +0 -0
  486. package/src/themes/shaj-default/06-components/_index.scss +0 -13
  487. package/src/themes/shaj-default/99-utilities/_index.scss +0 -0
  488. package/src/themes/shaj-default/index.scss +0 -25
  489. package/theme.config.ts +0 -360
@@ -0,0 +1,148 @@
1
+ /**
2
+ * Font Preloading Utilities
3
+ *
4
+ * Provides utilities for preloading fonts to improve performance
5
+ * and prevent Flash of Invisible Text (FOIT).
6
+ */
7
+
8
+ export interface FontPreloadConfig {
9
+ /**
10
+ * Font family name
11
+ */
12
+ family: string;
13
+ /**
14
+ * Font file path (relative to public/assets/fonts or absolute URL)
15
+ */
16
+ path: string;
17
+ /**
18
+ * Font weight
19
+ */
20
+ weight?: string | number;
21
+ /**
22
+ * Font style
23
+ */
24
+ style?: 'normal' | 'italic';
25
+ /**
26
+ * Font format (woff2 is preferred)
27
+ */
28
+ format?: 'woff2' | 'woff';
29
+ /**
30
+ * Cross-origin setting
31
+ */
32
+ crossorigin?: 'anonymous' | 'use-credentials';
33
+ }
34
+
35
+ /**
36
+ * Creates a preload link element for a font
37
+ *
38
+ * @param config - Font preload configuration
39
+ * @returns HTML link element for preloading
40
+ *
41
+ * @example
42
+ * ```tsx
43
+ * const preloadLink = createFontPreloadLink({
44
+ * family: 'Nunito Sans',
45
+ * path: '/fonts/nunito-sans/nunito-sans-regular.woff2',
46
+ * weight: 400
47
+ * });
48
+ * document.head.appendChild(preloadLink);
49
+ * ```
50
+ */
51
+ export function createFontPreloadLink(config: FontPreloadConfig): HTMLLinkElement {
52
+ const {
53
+ path,
54
+ format = 'woff2',
55
+ crossorigin = 'anonymous',
56
+ } = config;
57
+
58
+ const link = document.createElement('link');
59
+ link.rel = 'preload';
60
+ link.as = 'font';
61
+ link.href = path;
62
+ link.type = `font/${format}`;
63
+ link.crossOrigin = crossorigin;
64
+
65
+ return link;
66
+ }
67
+
68
+ /**
69
+ * Preloads multiple fonts
70
+ *
71
+ * @param fonts - Array of font configurations to preload
72
+ * @returns Array of created link elements
73
+ *
74
+ * @example
75
+ * ```tsx
76
+ * const links = preloadFonts([
77
+ * { family: 'Nunito Sans', path: '/fonts/nunito-sans/nunito-sans-regular.woff2', weight: 400 },
78
+ * { family: 'Nunito Sans', path: '/fonts/nunito-sans/nunito-sans-bold.woff2', weight: 700 },
79
+ * ]);
80
+ * links.forEach(link => document.head.appendChild(link));
81
+ * ```
82
+ */
83
+ export function preloadFonts(fonts: FontPreloadConfig[]): HTMLLinkElement[] {
84
+ return fonts.map(createFontPreloadLink);
85
+ }
86
+
87
+ /**
88
+ * Generates preload link HTML tags as strings
89
+ * Useful for server-side rendering or static HTML generation
90
+ *
91
+ * @param fonts - Array of font configurations
92
+ * @returns Array of HTML string representations
93
+ *
94
+ * @example
95
+ * ```tsx
96
+ * const htmlTags = generateFontPreloadTags([
97
+ * { family: 'Nunito Sans', path: '/fonts/nunito-sans/nunito-sans-regular.woff2' },
98
+ * ]);
99
+ * // Returns: ['<link rel="preload" as="font" href="/fonts/..." type="font/woff2" crossorigin="anonymous">']
100
+ * ```
101
+ */
102
+ export function generateFontPreloadTags(fonts: FontPreloadConfig[]): string[] {
103
+ return fonts.map((config) => {
104
+ const {
105
+ path,
106
+ format = 'woff2',
107
+ crossorigin = 'anonymous',
108
+ } = config;
109
+
110
+ return `<link rel="preload" as="font" href="${path}" type="font/${format}" crossorigin="${crossorigin}">`;
111
+ });
112
+ }
113
+
114
+ /**
115
+ * Default font configurations for Atomix Design System
116
+ * These can be used as a starting point for font preloading
117
+ */
118
+ export const DEFAULT_ATOMIX_FONTS: FontPreloadConfig[] = [
119
+ {
120
+ family: 'Nunito Sans',
121
+ path: '/fonts/nunito-sans/nunito-sans-regular.woff2',
122
+ weight: 400,
123
+ style: 'normal',
124
+ format: 'woff2',
125
+ },
126
+ {
127
+ family: 'Nunito Sans',
128
+ path: '/fonts/nunito-sans/nunito-sans-bold.woff2',
129
+ weight: 700,
130
+ style: 'normal',
131
+ format: 'woff2',
132
+ },
133
+ {
134
+ family: 'Nunito Sans',
135
+ path: '/fonts/nunito-sans/nunito-sans-italic.woff2',
136
+ weight: 400,
137
+ style: 'italic',
138
+ format: 'woff2',
139
+ },
140
+ {
141
+ family: 'Nunito Sans',
142
+ path: '/fonts/nunito-sans/nunito-sans-bold-italic.woff2',
143
+ weight: 700,
144
+ style: 'italic',
145
+ format: 'woff2',
146
+ },
147
+ ];
148
+
@@ -19,3 +19,14 @@ export {
19
19
  export type {
20
20
  MergePropsOptions,
21
21
  } from './componentUtils';
22
+
23
+ export {
24
+ createFontPreloadLink,
25
+ preloadFonts,
26
+ generateFontPreloadTags,
27
+ DEFAULT_ATOMIX_FONTS,
28
+ } from './fontPreloader';
29
+
30
+ export type {
31
+ FontPreloadConfig,
32
+ } from './fontPreloader';
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Memory Monitoring Utilities
3
+ *
4
+ * Detects memory leaks and tracks component lifecycle memory usage
5
+ * Only available in development mode
6
+ */
7
+
8
+ /**
9
+ * Memory snapshot for comparison
10
+ */
11
+ export interface MemorySnapshot {
12
+ /**
13
+ * Used JavaScript heap size in bytes
14
+ */
15
+ usedJSHeapSize: number;
16
+ /**
17
+ * Total JavaScript heap size in bytes
18
+ */
19
+ totalJSHeapSize: number;
20
+ /**
21
+ * JavaScript heap size limit in bytes
22
+ */
23
+ jsHeapSizeLimit: number;
24
+ /**
25
+ * Timestamp of the snapshot
26
+ */
27
+ timestamp: number;
28
+ }
29
+
30
+ /**
31
+ * Check if memory monitoring is available
32
+ */
33
+ export function isMemoryMonitoringAvailable(): boolean {
34
+ return (
35
+ typeof performance !== 'undefined' &&
36
+ 'memory' in performance &&
37
+ process.env.NODE_ENV === 'development'
38
+ );
39
+ }
40
+
41
+ /**
42
+ * Get current memory usage snapshot
43
+ *
44
+ * @returns Memory snapshot or null if not available
45
+ */
46
+ export function getMemorySnapshot(): MemorySnapshot | null {
47
+ if (!isMemoryMonitoringAvailable()) {
48
+ return null;
49
+ }
50
+
51
+ const memory = (performance as any).memory;
52
+
53
+ return {
54
+ usedJSHeapSize: memory.usedJSHeapSize,
55
+ totalJSHeapSize: memory.totalJSHeapSize,
56
+ jsHeapSizeLimit: memory.jsHeapSizeLimit,
57
+ timestamp: performance.now(),
58
+ };
59
+ }
60
+
61
+ /**
62
+ * Format bytes to human-readable string
63
+ *
64
+ * @param bytes - Number of bytes
65
+ * @returns Formatted string (e.g., "1.5 MB")
66
+ */
67
+ export function formatBytes(bytes: number): string {
68
+ if (bytes === 0) return '0 Bytes';
69
+
70
+ const k = 1024;
71
+ const sizes = ['Bytes', 'KB', 'MB', 'GB'];
72
+ const i = Math.floor(Math.log(bytes) / Math.log(k));
73
+
74
+ return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + ' ' + sizes[i];
75
+ }
76
+
77
+ /**
78
+ * Compare two memory snapshots and detect potential leaks
79
+ *
80
+ * @param before - Snapshot before operation
81
+ * @param after - Snapshot after operation
82
+ * @param threshold - Threshold in bytes to consider a leak (default: 5MB)
83
+ * @returns Object with leak detection results
84
+ */
85
+ export function detectMemoryLeak(
86
+ before: MemorySnapshot | null,
87
+ after: MemorySnapshot | null,
88
+ threshold: number = 5 * 1024 * 1024 // 5MB
89
+ ): {
90
+ hasLeak: boolean;
91
+ memoryIncrease: number;
92
+ formattedIncrease: string;
93
+ percentageIncrease: number;
94
+ } {
95
+ if (!before || !after) {
96
+ return {
97
+ hasLeak: false,
98
+ memoryIncrease: 0,
99
+ formattedIncrease: '0 Bytes',
100
+ percentageIncrease: 0,
101
+ };
102
+ }
103
+
104
+ const memoryIncrease = after.usedJSHeapSize - before.usedJSHeapSize;
105
+ const percentageIncrease = (memoryIncrease / before.usedJSHeapSize) * 100;
106
+
107
+ return {
108
+ hasLeak: memoryIncrease > threshold,
109
+ memoryIncrease,
110
+ formattedIncrease: formatBytes(memoryIncrease),
111
+ percentageIncrease,
112
+ };
113
+ }
114
+
115
+ /**
116
+ * Monitor memory usage over time
117
+ *
118
+ * @param interval - Interval in milliseconds to check memory
119
+ * @param callback - Callback function called with each snapshot
120
+ * @returns Function to stop monitoring
121
+ */
122
+ export function monitorMemoryUsage(
123
+ interval: number = 5000,
124
+ callback?: (snapshot: MemorySnapshot) => void
125
+ ): () => void {
126
+ if (!isMemoryMonitoringAvailable()) {
127
+ console.warn('[Memory Monitor] Memory monitoring is not available');
128
+ return () => {};
129
+ }
130
+
131
+ const checkMemory = () => {
132
+ const snapshot = getMemorySnapshot();
133
+ if (snapshot) {
134
+ if (callback) {
135
+ callback(snapshot);
136
+ } else if (process.env.NODE_ENV === 'development') {
137
+ console.log('[Memory Monitor]', {
138
+ used: formatBytes(snapshot.usedJSHeapSize),
139
+ total: formatBytes(snapshot.totalJSHeapSize),
140
+ limit: formatBytes(snapshot.jsHeapSizeLimit),
141
+ });
142
+ }
143
+ }
144
+ };
145
+
146
+ const intervalId = setInterval(checkMemory, interval);
147
+
148
+ // Initial check
149
+ checkMemory();
150
+
151
+ // Return cleanup function
152
+ return () => {
153
+ clearInterval(intervalId);
154
+ };
155
+ }
156
+
157
+ /**
158
+ * Track component lifecycle memory usage
159
+ *
160
+ * @param componentName - Name of the component
161
+ * @returns Object with start and end tracking functions
162
+ */
163
+ export function trackComponentMemory(componentName: string) {
164
+ const before = getMemorySnapshot();
165
+
166
+ return {
167
+ /**
168
+ * Get memory snapshot at component mount
169
+ */
170
+ getBeforeSnapshot: () => before,
171
+ /**
172
+ * Get memory snapshot at component unmount and detect leaks
173
+ */
174
+ getAfterSnapshot: () => {
175
+ const after = getMemorySnapshot();
176
+ if (before && after) {
177
+ const leakInfo = detectMemoryLeak(before, after);
178
+ if (leakInfo.hasLeak && process.env.NODE_ENV === 'development') {
179
+ console.warn(
180
+ `[Memory Monitor] Potential memory leak detected in ${componentName}:`,
181
+ leakInfo
182
+ );
183
+ }
184
+ }
185
+ return after;
186
+ },
187
+ };
188
+ }
189
+
@@ -3,15 +3,12 @@ $assets-fonts-path: '../assets/fonts/' !default;
3
3
  @mixin font-face($name, $foldername, $filename, $weight: normal, $style: normal) {
4
4
  @font-face {
5
5
  font-family: $name;
6
- src: url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.eot');
7
6
  src:
8
- url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.eot?#iefix')
9
- format('embedded-opentype'),
10
7
  url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.woff2') format('woff2'),
11
- url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.woff') format('woff'),
12
- url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.ttf') format('truetype');
8
+ url('#{$assets-fonts-path}/#{$foldername}/#{$filename}.woff') format('woff');
13
9
  font-weight: $weight;
14
10
  font-style: $style;
11
+ font-display: swap;
15
12
  text-rendering: optimizeLegibility;
16
13
  }
17
14
  }
@@ -24,7 +24,7 @@ $navbar-brand-font-weight: $font-weight-bold !default;
24
24
  $navbar-brand-color: var(--#{$prefix}body-color) !default;
25
25
 
26
26
  // Mobile toggler
27
- $navbar-toggler-size: 30px !default;
27
+ $navbar-toggler-size: 2rem !default;
28
28
  $navbar-toggler-color: var(--#{$prefix}body-color) !default;
29
29
  $navbar-toggler-bg: transparent !default;
30
30
  $navbar-toggler-border: 0 !default;
@@ -0,0 +1,26 @@
1
+ /* AUTO-GENERATED - DO NOT EDIT MANUALLY */
2
+ /* Generated on: 2025-12-23T09:44:24.463Z */
3
+ /* This file is generated from atomix.config.ts */
4
+ /* Edit atomix.config.ts and run 'npm run sync:config' to regenerate */
5
+
6
+ :root {
7
+ --atomix-primary: #3b82f6;
8
+ --atomix-primary-1: #d8e6fd;
9
+ --atomix-primary-10: #183462;
10
+ --atomix-primary-2: #b8d2fc;
11
+ --atomix-primary-3: #99befa;
12
+ --atomix-primary-4: #7aaaf9;
13
+ --atomix-primary-5: #5a96f7;
14
+ --atomix-primary-6: #3b82f6;
15
+ --atomix-primary-7: #326fd1;
16
+ --atomix-primary-8: #295bac;
17
+ --atomix-primary-9: #204887;
18
+ --atomix-primary-bg-subtle: rgba(59, 130, 246, 0.1);
19
+ --atomix-primary-border-subtle: rgba(59, 130, 246, 0.2);
20
+ --atomix-primary-dark: #204887;
21
+ --atomix-primary-hover: #326fd1;
22
+ --atomix-primary-light: #99befa;
23
+ --atomix-primary-main: #3b82f6;
24
+ --atomix-primary-rgb: 59, 130, 246;
25
+ --atomix-primary-text-emphasis: #5895f7;
26
+ }
@@ -72,6 +72,7 @@
72
72
  }
73
73
 
74
74
  &__toggler {
75
+ position: relative;
75
76
  display: none;
76
77
  align-items: center;
77
78
  justify-content: center;
@@ -99,17 +100,13 @@
99
100
 
100
101
  &-icon {
101
102
  position: relative;
102
- display: inline-block;
103
- width: 1.5em;
104
- height: 1.5em;
105
- vertical-align: middle;
106
103
 
107
104
  &::before,
108
105
  &::after,
109
106
  & {
110
107
  position: absolute;
111
108
  height: 2px;
112
- width: 100%;
109
+ width: var(--#{$prefix}navbar-toggler-size);
113
110
  background-color: var(--#{$prefix}navbar-toggler-color);
114
111
  border-radius: 1px;
115
112
  transition: transform 0.15s ease;
@@ -228,6 +225,10 @@
228
225
  #{$root}__collapse {
229
226
  display: flex !important;
230
227
  }
228
+
229
+ #{$root}__toggler {
230
+ display: none !important;
231
+ }
231
232
  }
232
233
  }
233
234
 
@@ -1,8 +1,7 @@
1
- # Atomix Design System Themes
2
1
 
3
2
  # Atomix Design System Themes
4
3
 
5
- This guide documents how to build SCSS-based themes for the Atomix Design System, using the existing `shaj-default` theme as the reference implementation. It covers the architecture, creation process, best practices, testing and validation, and maintenance guidelines. Real code excerpts are taken from `./src/themes/shaj-default` to ensure your new themes align with the established patterns.
4
+ This guide documents how to build SCSS-based themes for the Atomix Design System
6
5
 
7
6
  ## Theme Architecture
8
7
 
@@ -1,186 +1,37 @@
1
1
  /**
2
2
  * Theme Configuration
3
3
  *
4
- * This file is auto-generated from theme.config.ts
5
- * DO NOT EDIT MANUALLY - Edit theme.config.ts instead
4
+ * This file is auto-generated from atomix.config.ts
5
+ * DO NOT EDIT MANUALLY - Edit atomix.config.ts instead
6
6
  * Run 'npm run sync:config' to regenerate
7
7
  *
8
- * Generated on: 2025-12-18T01:03:26.168Z
8
+ * Generated on: 2025-12-23T09:44:24.454Z
9
9
  */
10
10
 
11
11
  export const themesConfig = {
12
+ // CSS variable prefix (from atomix.config.ts)
13
+ prefix: 'atomix',
14
+
12
15
  // Theme metadata
13
- metadata: {
14
- shaj-default: {
15
- name: "Shaj Default",
16
- description: "The default theme for the Atomix Design System",
17
- author: "Shohoj Dhara",
18
- version: "1.0.0",
19
- tags: [
20
- "default",
21
- "light"
22
- ],
23
- supportsDarkMode: true,
24
- status: "stable",
25
- a11y: {
26
- contrastTarget: 4.5,
27
- modes: [
28
- "light",
29
- "dark"
30
- ]
31
- },
32
- color: "#3b82f6"
33
- },
34
- boomdevs: {
35
- name: "BoomDevs",
36
- description: "BoomDevs theme for the Atomix Design System",
37
- author: "BoomDevs Team",
38
- version: "1.0.0",
39
- tags: [
40
- "dark",
41
- "modern"
42
- ],
43
- supportsDarkMode: true,
44
- status: "beta",
45
- a11y: {
46
- contrastTarget: 4.5,
47
- modes: [
48
- "light",
49
- "dark"
50
- ]
51
- },
52
- color: "#8b5cf6"
53
- },
54
- esrar: {
55
- name: "Esrar",
56
- description: "Esrar theme for the Atomix Design System",
57
- author: "Esrar Team",
58
- version: "1.0.0",
59
- tags: [
60
- "light",
61
- "minimal"
62
- ],
63
- supportsDarkMode: true,
64
- status: "beta",
65
- a11y: {
66
- contrastTarget: 4.5,
67
- modes: [
68
- "light",
69
- "dark"
70
- ]
71
- },
72
- color: "#10b981"
73
- },
74
- mashroom: {
75
- name: "Mashroom",
76
- description: "Mashroom theme for the Atomix Design System",
77
- author: "Mashroom Team",
78
- version: "1.0.0",
79
- tags: [
80
- "dark",
81
- "contrast"
82
- ],
83
- supportsDarkMode: true,
84
- status: "beta",
85
- a11y: {
86
- contrastTarget: 4.5,
87
- modes: [
88
- "light",
89
- "dark"
90
- ]
91
- },
92
- color: "#f59e0b"
93
- },
94
- applemix: {
95
- name: "Applemix",
96
- description: "Apple Mac OS 2026 Liquid Glass inspired theme with morphism effects",
97
- author: "Atomix Design System",
98
- version: "1.0.0",
99
- tags: [
100
- "glass",
101
- "apple",
102
- "modern",
103
- "liquid",
104
- "morphism"
105
- ],
106
- supportsDarkMode: true,
107
- status: "experimental",
108
- a11y: {
109
- contrastTarget: 4.5,
110
- modes: [
111
- "light",
112
- "dark"
113
- ]
114
- },
115
- color: "#f5f5f5",
116
- features: [
117
- "Liquid glass morphism effects",
118
- "Apple-inspired color palette",
119
- "Chromatic aberration effects",
120
- "Smooth animations and transitions",
121
- "AtomixGlass component integration",
122
- "Comprehensive component overrides",
123
- "Light and dark mode support"
124
- ]
125
- },
126
- flashtrade: {
127
- name: "Flash Trade",
128
- description: "Professional dark crypto perpetuals trading platform theme inspired by flash.trade",
129
- author: "Atomix Design System",
130
- version: "1.1.0",
131
- tags: [
132
- "dark",
133
- "crypto",
134
- "trading",
135
- "glass",
136
- "modern",
137
- "decentralized",
138
- "defi"
139
- ],
140
- supportsDarkMode: true,
141
- status: "stable",
142
- a11y: {
143
- contrastTarget: 4.5,
144
- modes: [
145
- "dark"
146
- ]
147
- },
148
- color: "#06b6d4",
149
- features: [
150
- "Ultra-dark trading interface aesthetic matching flash.trade",
151
- "Bright cyan (#06b6d4) primary color for brand consistency",
152
- "High contrast for financial data readability",
153
- "Trading-focused color palette (green for long/profit, red for short/loss)",
154
- "Glass morphism effects for modern UI depth",
155
- "Optimized Inter typography for trading information",
156
- "Fast animations for real-time data updates",
157
- "Professional navbar with asset selector bar",
158
- "Trading cards with hover effects and glass morphism",
159
- "Comprehensive button styles for trading actions",
160
- "Price change badges with glow effects",
161
- "Responsive mobile-first design",
162
- "AtomixGlass component integration"
163
- ]
164
- }
165
- },
16
+ metadata: {},
166
17
 
167
18
  // Build configuration
168
19
  build: {
169
20
  output: {
170
- directory: "themes",
171
- formats: {
172
- expanded: ".css",
173
- compressed: ".min.css"
174
- }
21
+ directory: 'dist/themes',
22
+ formats: {
23
+ expanded: '.css',
24
+ compressed: '.min.css'
25
+ }
175
26
  },
176
27
  sass: {
177
- style: "expanded",
178
- sourceMap: true,
179
- loadPaths: [
180
- "src"
181
- ]
28
+ style: 'expanded',
29
+ sourceMap: true,
30
+ loadPaths: [
31
+ 'src'
32
+ ]
182
33
  }
183
- },
34
+ },
184
35
 
185
36
  // Export configuration for package.json
186
37
  exports: {
@@ -191,28 +42,26 @@ export const themesConfig = {
191
42
  // Theme integration settings
192
43
  integration: {
193
44
  cssVariables: {
194
- colorMode: "--storybook-color-mode"
45
+ colorMode: '--color-mode'
195
46
  },
196
47
  classNames: {
197
- theme: "data-theme",
198
- colorMode: "data-atomix-color-mode"
48
+ theme: 'data-theme',
49
+ colorMode: 'data-color-mode'
199
50
  }
200
- },
51
+ },
201
52
 
202
53
  // Runtime theme loading configuration
203
54
  runtime: {
204
- basePath: "/themes",
55
+ basePath: '/themes',
205
56
  cdnPath: null,
206
- preload: [
207
- "shaj-default"
208
- ],
209
- lazy: true,
210
- defaultTheme: "shaj-default",
211
- storageKey: "atomix-theme",
212
- dataAttribute: "data-theme",
57
+ preload: [],
58
+ lazy: false,
59
+ defaultTheme: null,
60
+ storageKey: 'atomix-theme',
61
+ dataAttribute: 'data-atomix-theme',
213
62
  enablePersistence: true,
214
- useMinified: process.env.NODE_ENV === 'production'
215
- },
63
+ useMinified: false
64
+ },
216
65
 
217
66
  // Theme dependencies (if a theme requires another theme to be loaded)
218
67
  dependencies: {},