@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.
- package/README.md +46 -28
- package/dist/atomix.css +13 -6
- package/dist/atomix.min.css +1 -1
- package/dist/index.d.ts +912 -505
- package/dist/index.esm.js +2924 -2133
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +2719 -1916
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +11 -62
- package/scripts/atomix-cli.js +338 -2
- package/scripts/cli/interactive-init.js +36 -44
- package/scripts/cli/theme-bridge.js +129 -0
- package/scripts/sync-theme-config.js +22 -22
- package/src/components/Button/Button.tsx +36 -1
- package/src/lib/config/index.ts +275 -0
- package/src/lib/config/loader.ts +105 -0
- package/src/lib/index.ts +1 -0
- package/src/lib/theme/composeTheme.ts +0 -5
- package/src/lib/theme/config/index.ts +1 -1
- package/src/lib/theme/config/loader.ts +75 -41
- package/src/lib/theme/config/types.ts +21 -7
- package/src/lib/theme/config/validator.ts +1 -1
- package/src/lib/theme/constants.ts +12 -2
- package/src/lib/theme/createTheme.ts +0 -1
- package/src/lib/theme/createThemeFromConfig.ts +132 -0
- package/src/lib/theme/devtools/CLI.ts +161 -76
- package/src/lib/theme/devtools/Comparator.tsx +343 -0
- package/src/lib/theme/devtools/IMPROVEMENTS.md +429 -0
- package/src/lib/theme/devtools/Inspector.tsx +21 -6
- package/src/lib/theme/devtools/LiveEditor.tsx +393 -0
- package/src/lib/theme/devtools/README.md +433 -0
- package/src/lib/theme/devtools/index.ts +12 -11
- package/src/lib/theme/generateCSSVariables.ts +79 -38
- package/src/lib/theme/index.ts +18 -2
- package/src/lib/theme/runtime/ThemeManager.test.ts +17 -1
- package/src/lib/theme/runtime/ThemeManager.ts +7 -7
- package/src/lib/theme/types.ts +42 -43
- package/src/lib/theme-tools.ts +7 -67
- package/src/lib/types/components.ts +69 -75
- package/src/styles/01-settings/_settings.navbar.scss +1 -1
- package/src/styles/03-generic/_generated-root.css +5 -0
- package/src/styles/06-components/_components.navbar.scss +12 -5
- package/src/themes/README.md +1 -2
- package/src/themes/themes.config.js +10 -194
- package/dist/themes/applemix.css +0 -16576
- package/dist/themes/applemix.css.map +0 -1
- package/dist/themes/applemix.min.css +0 -73
- package/dist/themes/boomdevs.css +0 -16007
- package/dist/themes/boomdevs.css.map +0 -1
- package/dist/themes/boomdevs.min.css +0 -406
- package/dist/themes/esrar.css +0 -18424
- package/dist/themes/esrar.css.map +0 -1
- package/dist/themes/esrar.min.css +0 -221
- package/dist/themes/flashtrade.css +0 -17596
- package/dist/themes/flashtrade.css.map +0 -1
- package/dist/themes/flashtrade.min.css +0 -196
- package/dist/themes/mashroom.css +0 -31082
- package/dist/themes/mashroom.css.map +0 -1
- package/dist/themes/mashroom.min.css +0 -450
- package/dist/themes/shaj-default.css +0 -17200
- package/dist/themes/shaj-default.css.map +0 -1
- package/dist/themes/shaj-default.min.css +0 -502
- package/src/lib/theme/__tests__/ThemeBuilder.test.ts +0 -223
- package/src/lib/theme/builders/ThemeBuilder.ts +0 -372
- package/src/lib/theme/errors.test.ts +0 -207
- package/src/lib/theme/generators/CSSGenerator.ts +0 -311
- package/src/lib/theme/generators/ConfigGenerator.ts +0 -287
- package/src/lib/theme/generators/TypeGenerator.ts +0 -228
- package/src/lib/theme/generators/index.ts +0 -21
- package/src/lib/theme/monitoring/ThemeAnalytics.ts +0 -409
- package/src/lib/theme/monitoring/index.ts +0 -17
- package/src/lib/theme/overrides/ComponentOverrides.ts +0 -243
- package/src/lib/theme/overrides/index.ts +0 -15
- package/src/lib/theme/whitelabel/WhiteLabelManager.ts +0 -364
- package/src/lib/theme/whitelabel/index.ts +0 -13
- package/src/themes/THEME_CHECKLIST.md +0 -74
- package/src/themes/applemix/01-settings/_index.scss +0 -24
- package/src/themes/applemix/01-settings/_settings.animations.scss +0 -0
- package/src/themes/applemix/01-settings/_settings.background.scss +0 -6
- package/src/themes/applemix/01-settings/_settings.colors.scss +0 -75
- package/src/themes/applemix/01-settings/_settings.config.scss +0 -15
- package/src/themes/applemix/01-settings/_settings.typography.scss +0 -30
- package/src/themes/applemix/02-tools/_index.scss +0 -4
- package/src/themes/applemix/03-generic/_index.scss +0 -7
- package/src/themes/applemix/04-elements/_index.scss +0 -7
- package/src/themes/applemix/05-objects/_index.scss +0 -7
- package/src/themes/applemix/06-components/_index.scss +0 -15
- package/src/themes/applemix/99-utilities/_index.scss +0 -7
- package/src/themes/applemix/README.md +0 -378
- package/src/themes/applemix/index.scss +0 -33
- package/src/themes/boomdevs/01-settings/_index.scss +0 -38
- package/src/themes/boomdevs/01-settings/_settings.accordion.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.animations.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.avatar.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.badge.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.border-radius.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.border.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.box-shadow.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.breadcrumb.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.breakpoints.scss +0 -15
- package/src/themes/boomdevs/01-settings/_settings.button.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.callout.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.card.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.checkbox.scss +0 -9
- package/src/themes/boomdevs/01-settings/_settings.colors.scss +0 -145
- package/src/themes/boomdevs/01-settings/_settings.dropdown.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.grid.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.input.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.link.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.list.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.modal.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.navbar.scss +0 -16
- package/src/themes/boomdevs/01-settings/_settings.pagination.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.progress.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.rating.scss +0 -10
- package/src/themes/boomdevs/01-settings/_settings.spacing.scss +0 -33
- package/src/themes/boomdevs/01-settings/_settings.spinner.scss +0 -11
- package/src/themes/boomdevs/01-settings/_settings.steps.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.tabs.scss +0 -12
- package/src/themes/boomdevs/01-settings/_settings.todo.scss +0 -15
- package/src/themes/boomdevs/01-settings/_settings.toggle.scss +0 -14
- package/src/themes/boomdevs/01-settings/_settings.tooltip.scss +0 -13
- package/src/themes/boomdevs/01-settings/_settings.typography.scss +0 -58
- package/src/themes/boomdevs/01-settings/_settings.video-player.scss +0 -12
- package/src/themes/boomdevs/02-tools/_index.scss +0 -7
- package/src/themes/boomdevs/03-generic/_index.scss +0 -7
- package/src/themes/boomdevs/04-elements/_index.scss +0 -7
- package/src/themes/boomdevs/05-objects/_index.scss +0 -7
- package/src/themes/boomdevs/06-components/_components.button.scss +0 -11
- package/src/themes/boomdevs/06-components/_index.scss +0 -11
- package/src/themes/boomdevs/99-utilities/_index.scss +0 -7
- package/src/themes/boomdevs/index.scss +0 -26
- package/src/themes/esrar/01-settings/_index.scss +0 -15
- package/src/themes/esrar/01-settings/_settings.colors.scss +0 -91
- package/src/themes/esrar/02-tools/_index.scss +0 -8
- package/src/themes/esrar/02-tools/_tools.animations.scss +0 -342
- package/src/themes/esrar/06-components/_components.accordion.scss +0 -49
- package/src/themes/esrar/06-components/_components.avatar-group.scss +0 -14
- package/src/themes/esrar/06-components/_components.avatar.scss +0 -61
- package/src/themes/esrar/06-components/_components.badge.scss +0 -117
- package/src/themes/esrar/06-components/_components.breadcrumb.scss +0 -65
- package/src/themes/esrar/06-components/_components.btn-group.scss +0 -19
- package/src/themes/esrar/06-components/_components.button.scss +0 -224
- package/src/themes/esrar/06-components/_components.callout.scss +0 -51
- package/src/themes/esrar/06-components/_components.card.scss +0 -134
- package/src/themes/esrar/06-components/_components.chart.scss +0 -24
- package/src/themes/esrar/06-components/_components.checkbox-group.scss +0 -26
- package/src/themes/esrar/06-components/_components.checkbox.scss +0 -71
- package/src/themes/esrar/06-components/_components.color-mode-toggle.scss +0 -29
- package/src/themes/esrar/06-components/_components.countdown.scss +0 -67
- package/src/themes/esrar/06-components/_components.data-table.scss +0 -22
- package/src/themes/esrar/06-components/_components.datepicker.scss +0 -20
- package/src/themes/esrar/06-components/_components.dropdown.scss +0 -272
- package/src/themes/esrar/06-components/_components.edge-panel.scss +0 -10
- package/src/themes/esrar/06-components/_components.form-group.scss +0 -15
- package/src/themes/esrar/06-components/_components.form.scss +0 -66
- package/src/themes/esrar/06-components/_components.hero.scss +0 -251
- package/src/themes/esrar/06-components/_components.icon.scss +0 -33
- package/src/themes/esrar/06-components/_components.image-gallery.scss +0 -29
- package/src/themes/esrar/06-components/_components.input.scss +0 -91
- package/src/themes/esrar/06-components/_components.list-group.scss +0 -26
- package/src/themes/esrar/06-components/_components.modal.scss +0 -148
- package/src/themes/esrar/06-components/_components.notification.scss +0 -80
- package/src/themes/esrar/06-components/_components.pagination.scss +0 -84
- package/src/themes/esrar/06-components/_components.popover.scss +0 -10
- package/src/themes/esrar/06-components/_components.progress.scss +0 -64
- package/src/themes/esrar/06-components/_components.rating.scss +0 -26
- package/src/themes/esrar/06-components/_components.skeleton.scss +0 -15
- package/src/themes/esrar/06-components/_components.slider.scss +0 -90
- package/src/themes/esrar/06-components/_components.spinner.scss +0 -71
- package/src/themes/esrar/06-components/_components.steps.scss +0 -76
- package/src/themes/esrar/06-components/_components.tab.scss +0 -58
- package/src/themes/esrar/06-components/_components.tag.scss +0 -21
- package/src/themes/esrar/06-components/_components.timeline.scss +0 -19
- package/src/themes/esrar/06-components/_components.toast.scss +0 -91
- package/src/themes/esrar/06-components/_components.toggle.scss +0 -74
- package/src/themes/esrar/06-components/_components.tooltip.scss +0 -45
- package/src/themes/esrar/06-components/_components.upload.scss +0 -102
- package/src/themes/esrar/06-components/_index.scss +0 -42
- package/src/themes/esrar/index.scss +0 -30
- package/src/themes/flashtrade/01-settings/_index.scss +0 -19
- package/src/themes/flashtrade/01-settings/_settings.animations.scss +0 -11
- package/src/themes/flashtrade/01-settings/_settings.background.scss +0 -9
- package/src/themes/flashtrade/01-settings/_settings.colors.scss +0 -79
- package/src/themes/flashtrade/01-settings/_settings.config.scss +0 -16
- package/src/themes/flashtrade/01-settings/_settings.typography.scss +0 -35
- package/src/themes/flashtrade/02-tools/_index.scss +0 -8
- package/src/themes/flashtrade/03-generic/_index.scss +0 -8
- package/src/themes/flashtrade/04-elements/_index.scss +0 -12
- package/src/themes/flashtrade/05-objects/_index.scss +0 -8
- package/src/themes/flashtrade/06-components/_components.badge.scss +0 -156
- package/src/themes/flashtrade/06-components/_components.button.scss +0 -135
- package/src/themes/flashtrade/06-components/_components.card.scss +0 -214
- package/src/themes/flashtrade/06-components/_components.navbar.scss +0 -227
- package/src/themes/flashtrade/06-components/_index.scss +0 -13
- package/src/themes/flashtrade/99-utilities/_index.scss +0 -9
- package/src/themes/flashtrade/99-utilities/_utilities.trading.scss +0 -187
- package/src/themes/flashtrade/README.md +0 -386
- package/src/themes/flashtrade/demo.html +0 -272
- package/src/themes/flashtrade/index.scss +0 -36
- package/src/themes/mashroom/01-settings/_index.scss +0 -69
- package/src/themes/mashroom/01-settings/_settings.accordion.scss +0 -32
- package/src/themes/mashroom/01-settings/_settings.animations.scss +0 -26
- package/src/themes/mashroom/01-settings/_settings.avatar-group.scss +0 -22
- package/src/themes/mashroom/01-settings/_settings.avatar.scss +0 -57
- package/src/themes/mashroom/01-settings/_settings.badge.scss +0 -19
- package/src/themes/mashroom/01-settings/_settings.border-radius.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.border.scss +0 -14
- package/src/themes/mashroom/01-settings/_settings.box-shadow.scss +0 -40
- package/src/themes/mashroom/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/mashroom/01-settings/_settings.breakpoints.scss +0 -17
- package/src/themes/mashroom/01-settings/_settings.btn-group.scss +0 -5
- package/src/themes/mashroom/01-settings/_settings.button.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.callout.scss +0 -81
- package/src/themes/mashroom/01-settings/_settings.card.scss +0 -52
- package/src/themes/mashroom/01-settings/_settings.checkbox-group.scss +0 -5
- package/src/themes/mashroom/01-settings/_settings.checkbox.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.color-mode.scss +0 -7
- package/src/themes/mashroom/01-settings/_settings.colors.scss +0 -180
- package/src/themes/mashroom/01-settings/_settings.config.scss +0 -4
- package/src/themes/mashroom/01-settings/_settings.countdown.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.data-table.scss +0 -56
- package/src/themes/mashroom/01-settings/_settings.datepicker.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.design-tokens.scss +0 -3
- package/src/themes/mashroom/01-settings/_settings.dropdown.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.edge-panel.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.fonts.scss +0 -8
- package/src/themes/mashroom/01-settings/_settings.form-group.scss +0 -14
- package/src/themes/mashroom/01-settings/_settings.form.scss +0 -6
- package/src/themes/mashroom/01-settings/_settings.grid.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.hero.scss +0 -41
- package/src/themes/mashroom/01-settings/_settings.input.scss +0 -51
- package/src/themes/mashroom/01-settings/_settings.link.scss +0 -13
- package/src/themes/mashroom/01-settings/_settings.list-group.scss +0 -16
- package/src/themes/mashroom/01-settings/_settings.list.scss +0 -13
- package/src/themes/mashroom/01-settings/_settings.masonry-grid.scss +0 -23
- package/src/themes/mashroom/01-settings/_settings.menu.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.messages.scss +0 -98
- package/src/themes/mashroom/01-settings/_settings.modal.scss +0 -41
- package/src/themes/mashroom/01-settings/_settings.nav.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.navbar.scss +0 -54
- package/src/themes/mashroom/01-settings/_settings.pagination.scss +0 -30
- package/src/themes/mashroom/01-settings/_settings.photoviewer.scss +0 -45
- package/src/themes/mashroom/01-settings/_settings.popover.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.position.scss +0 -9
- package/src/themes/mashroom/01-settings/_settings.progress.scss +0 -17
- package/src/themes/mashroom/01-settings/_settings.rating.scss +0 -11
- package/src/themes/mashroom/01-settings/_settings.river.scss +0 -50
- package/src/themes/mashroom/01-settings/_settings.sectionintro.scss +0 -31
- package/src/themes/mashroom/01-settings/_settings.select.scss +0 -47
- package/src/themes/mashroom/01-settings/_settings.side-menu.scss +0 -79
- package/src/themes/mashroom/01-settings/_settings.skeleton.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.spacing.scss +0 -66
- package/src/themes/mashroom/01-settings/_settings.spinner.scss +0 -34
- package/src/themes/mashroom/01-settings/_settings.steps.scss +0 -33
- package/src/themes/mashroom/01-settings/_settings.tabs.scss +0 -33
- package/src/themes/mashroom/01-settings/_settings.testimonials.scss +0 -24
- package/src/themes/mashroom/01-settings/_settings.todo.scss +0 -52
- package/src/themes/mashroom/01-settings/_settings.toggle.scss +0 -49
- package/src/themes/mashroom/01-settings/_settings.tooltip.scss +0 -20
- package/src/themes/mashroom/01-settings/_settings.typography.scss +0 -95
- package/src/themes/mashroom/01-settings/_settings.upload.scss +0 -96
- package/src/themes/mashroom/01-settings/_settings.z-layers.scss +0 -19
- package/src/themes/mashroom/02-tools/_index.scss +0 -8
- package/src/themes/mashroom/02-tools/_tools.psychedelic-gradients.scss +0 -78
- package/src/themes/mashroom/02-tools/_tools.trippy-effects.scss +0 -114
- package/src/themes/mashroom/03-generic/_index.scss +0 -6
- package/src/themes/mashroom/04-elements/_index.scss +0 -6
- package/src/themes/mashroom/05-objects/_index.scss +0 -6
- package/src/themes/mashroom/06-components/_components.accordion.scss +0 -187
- package/src/themes/mashroom/06-components/_components.avatar-group.scss +0 -276
- package/src/themes/mashroom/06-components/_components.avatar.scss +0 -114
- package/src/themes/mashroom/06-components/_components.badge.scss +0 -152
- package/src/themes/mashroom/06-components/_components.breadcrumb.scss +0 -162
- package/src/themes/mashroom/06-components/_components.btn-group.scss +0 -404
- package/src/themes/mashroom/06-components/_components.button.scss +0 -160
- package/src/themes/mashroom/06-components/_components.callout.scss +0 -140
- package/src/themes/mashroom/06-components/_components.card.scss +0 -225
- package/src/themes/mashroom/06-components/_components.checkbox.scss +0 -186
- package/src/themes/mashroom/06-components/_components.color-mode-toggle.scss +0 -308
- package/src/themes/mashroom/06-components/_components.countdown.scss +0 -402
- package/src/themes/mashroom/06-components/_components.data-table.scss +0 -354
- package/src/themes/mashroom/06-components/_components.datepicker.scss +0 -349
- package/src/themes/mashroom/06-components/_components.dropdown.scss +0 -334
- package/src/themes/mashroom/06-components/_components.edge-panel.scss +0 -413
- package/src/themes/mashroom/06-components/_components.form-group.scss +0 -433
- package/src/themes/mashroom/06-components/_components.form.scss +0 -358
- package/src/themes/mashroom/06-components/_components.hero.scss +0 -151
- package/src/themes/mashroom/06-components/_components.input.scss +0 -147
- package/src/themes/mashroom/06-components/_components.list-group.scss +0 -456
- package/src/themes/mashroom/06-components/_components.list.scss +0 -145
- package/src/themes/mashroom/06-components/_components.menu.scss +0 -497
- package/src/themes/mashroom/06-components/_components.messages.scss +0 -277
- package/src/themes/mashroom/06-components/_components.modal.scss +0 -264
- package/src/themes/mashroom/06-components/_components.nav.scss +0 -181
- package/src/themes/mashroom/06-components/_components.navbar.scss +0 -538
- package/src/themes/mashroom/06-components/_components.pagination.scss +0 -400
- package/src/themes/mashroom/06-components/_components.photoviewer.scss +0 -498
- package/src/themes/mashroom/06-components/_components.popover.scss +0 -383
- package/src/themes/mashroom/06-components/_components.product-review.scss +0 -408
- package/src/themes/mashroom/06-components/_components.progress.scss +0 -249
- package/src/themes/mashroom/06-components/_components.rating.scss +0 -300
- package/src/themes/mashroom/06-components/_components.river.scss +0 -570
- package/src/themes/mashroom/06-components/_components.sectionintro.scss +0 -546
- package/src/themes/mashroom/06-components/_components.select.scss +0 -455
- package/src/themes/mashroom/06-components/_components.side-menu.scss +0 -635
- package/src/themes/mashroom/06-components/_components.skeleton.scss +0 -447
- package/src/themes/mashroom/06-components/_components.slider.scss +0 -414
- package/src/themes/mashroom/06-components/_components.spinner.scss +0 -198
- package/src/themes/mashroom/06-components/_components.steps.scss +0 -350
- package/src/themes/mashroom/06-components/_components.tabs.scss +0 -269
- package/src/themes/mashroom/06-components/_components.testimonials.scss +0 -561
- package/src/themes/mashroom/06-components/_components.toggle.scss +0 -231
- package/src/themes/mashroom/06-components/_components.tooltip.scss +0 -167
- package/src/themes/mashroom/06-components/_components.upload.scss +0 -537
- package/src/themes/mashroom/06-components/_components.video-player.scss +0 -560
- package/src/themes/mashroom/06-components/_index.scss +0 -55
- package/src/themes/mashroom/99-utilities/_index.scss +0 -6
- package/src/themes/mashroom/index.scss +0 -26
- package/src/themes/shaj-default/01-settings/_index.scss +0 -69
- package/src/themes/shaj-default/01-settings/_settings.accordion.scss +0 -38
- package/src/themes/shaj-default/01-settings/_settings.animations.scss +0 -32
- package/src/themes/shaj-default/01-settings/_settings.avatar-group.scss +0 -28
- package/src/themes/shaj-default/01-settings/_settings.avatar.scss +0 -63
- package/src/themes/shaj-default/01-settings/_settings.badge.scss +0 -25
- package/src/themes/shaj-default/01-settings/_settings.border-radius.scss +0 -24
- package/src/themes/shaj-default/01-settings/_settings.border.scss +0 -20
- package/src/themes/shaj-default/01-settings/_settings.box-shadow.scss +0 -46
- package/src/themes/shaj-default/01-settings/_settings.breadcrumb.scss +0 -0
- package/src/themes/shaj-default/01-settings/_settings.breakpoints.scss +0 -23
- package/src/themes/shaj-default/01-settings/_settings.btn-group.scss +0 -11
- package/src/themes/shaj-default/01-settings/_settings.button.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.callout.scss +0 -87
- package/src/themes/shaj-default/01-settings/_settings.card.scss +0 -52
- package/src/themes/shaj-default/01-settings/_settings.checkbox-group.scss +0 -11
- package/src/themes/shaj-default/01-settings/_settings.checkbox.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.color-mode.scss +0 -13
- package/src/themes/shaj-default/01-settings/_settings.colors.scss +0 -91
- package/src/themes/shaj-default/01-settings/_settings.config.scss +0 -4
- package/src/themes/shaj-default/01-settings/_settings.countdown.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.data-table.scss +0 -62
- package/src/themes/shaj-default/01-settings/_settings.datepicker.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.design-tokens.scss +0 -9
- package/src/themes/shaj-default/01-settings/_settings.dropdown.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.edge-panel.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.fonts.scss +0 -13
- package/src/themes/shaj-default/01-settings/_settings.form-group.scss +0 -20
- package/src/themes/shaj-default/01-settings/_settings.form.scss +0 -12
- package/src/themes/shaj-default/01-settings/_settings.grid.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.hero.scss +0 -47
- package/src/themes/shaj-default/01-settings/_settings.input.scss +0 -57
- package/src/themes/shaj-default/01-settings/_settings.link.scss +0 -19
- package/src/themes/shaj-default/01-settings/_settings.list-group.scss +0 -22
- package/src/themes/shaj-default/01-settings/_settings.list.scss +0 -19
- package/src/themes/shaj-default/01-settings/_settings.masonry-grid.scss +0 -29
- package/src/themes/shaj-default/01-settings/_settings.menu.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.messages.scss +0 -104
- package/src/themes/shaj-default/01-settings/_settings.modal.scss +0 -47
- package/src/themes/shaj-default/01-settings/_settings.nav.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.navbar.scss +0 -60
- package/src/themes/shaj-default/01-settings/_settings.pagination.scss +0 -36
- package/src/themes/shaj-default/01-settings/_settings.photoviewer.scss +0 -51
- package/src/themes/shaj-default/01-settings/_settings.popover.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.position.scss +0 -15
- package/src/themes/shaj-default/01-settings/_settings.progress.scss +0 -23
- package/src/themes/shaj-default/01-settings/_settings.rating.scss +0 -17
- package/src/themes/shaj-default/01-settings/_settings.river.scss +0 -56
- package/src/themes/shaj-default/01-settings/_settings.sectionintro.scss +0 -37
- package/src/themes/shaj-default/01-settings/_settings.select.scss +0 -53
- package/src/themes/shaj-default/01-settings/_settings.side-menu.scss +0 -85
- package/src/themes/shaj-default/01-settings/_settings.skeleton.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.spacing.scss +0 -72
- package/src/themes/shaj-default/01-settings/_settings.spinner.scss +0 -24
- package/src/themes/shaj-default/01-settings/_settings.steps.scss +0 -39
- package/src/themes/shaj-default/01-settings/_settings.tabs.scss +0 -39
- package/src/themes/shaj-default/01-settings/_settings.testimonials.scss +0 -30
- package/src/themes/shaj-default/01-settings/_settings.todo.scss +0 -58
- package/src/themes/shaj-default/01-settings/_settings.toggle.scss +0 -55
- package/src/themes/shaj-default/01-settings/_settings.tooltip.scss +0 -26
- package/src/themes/shaj-default/01-settings/_settings.typography.scss +0 -101
- package/src/themes/shaj-default/01-settings/_settings.upload.scss +0 -102
- package/src/themes/shaj-default/01-settings/_settings.z-layers.scss +0 -25
- package/src/themes/shaj-default/02-tools/_index.scss +0 -0
- package/src/themes/shaj-default/03-generic/_generic.root.scss +0 -0
- package/src/themes/shaj-default/03-generic/_index.scss +0 -2
- package/src/themes/shaj-default/04-elements/_index.scss +0 -0
- package/src/themes/shaj-default/05-objects/_index.scss +0 -0
- package/src/themes/shaj-default/06-components/_components.button.scss +0 -55
- package/src/themes/shaj-default/06-components/_components.card.scss +0 -57
- package/src/themes/shaj-default/06-components/_components.input.scss +0 -58
- package/src/themes/shaj-default/06-components/_components.navbar.scss +0 -99
- package/src/themes/shaj-default/06-components/_components.tooltip.scss +0 -0
- package/src/themes/shaj-default/06-components/_index.scss +0 -13
- package/src/themes/shaj-default/99-utilities/_index.scss +0 -0
- package/src/themes/shaj-default/index.scss +0 -25
- 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
|
+
"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
|
-
"./
|
|
85
|
-
"
|
|
86
|
-
"
|
|
87
|
-
"
|
|
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
|
-
"
|
|
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
|
+
}
|
package/scripts/atomix-cli.js
CHANGED
|
@@ -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
|
-
?
|
|
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
|