@shohojdhara/atomix 0.3.14 → 0.4.0

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 (343) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/build-tools/EXAMPLES.md +372 -0
  3. package/build-tools/README.md +242 -0
  4. package/build-tools/__tests__/error-handler.test.js +230 -0
  5. package/build-tools/__tests__/index.test.js +141 -0
  6. package/build-tools/__tests__/rollup-plugin.test.js +194 -0
  7. package/build-tools/__tests__/utils.test.js +161 -0
  8. package/build-tools/__tests__/vite-plugin.test.js +129 -0
  9. package/build-tools/__tests__/webpack-loader.test.js +190 -0
  10. package/build-tools/error-handler.js +308 -0
  11. package/build-tools/index.d.ts +44 -0
  12. package/build-tools/index.js +88 -0
  13. package/build-tools/package.json +50 -0
  14. package/build-tools/rollup-plugin.js +236 -0
  15. package/build-tools/types.d.ts +163 -0
  16. package/build-tools/utils.js +203 -0
  17. package/build-tools/vite-plugin.js +161 -0
  18. package/build-tools/webpack-loader.js +123 -0
  19. package/dist/atomix.css +21044 -2618
  20. package/dist/atomix.css.map +1 -1
  21. package/dist/atomix.min.css +77 -3
  22. package/dist/atomix.min.css.map +1 -1
  23. package/dist/build-tools/EXAMPLES.md +372 -0
  24. package/dist/build-tools/README.md +242 -0
  25. package/dist/build-tools/__tests__/error-handler.test.js +230 -0
  26. package/dist/build-tools/__tests__/index.test.js +141 -0
  27. package/dist/build-tools/__tests__/rollup-plugin.test.js +194 -0
  28. package/dist/build-tools/__tests__/utils.test.js +161 -0
  29. package/dist/build-tools/__tests__/vite-plugin.test.js +129 -0
  30. package/dist/build-tools/__tests__/webpack-loader.test.js +190 -0
  31. package/dist/build-tools/error-handler.js +308 -0
  32. package/dist/build-tools/index.d.ts +44 -0
  33. package/dist/build-tools/index.js +88 -0
  34. package/dist/build-tools/package.json +50 -0
  35. package/dist/build-tools/rollup-plugin.js +236 -0
  36. package/dist/build-tools/types.d.ts +163 -0
  37. package/dist/build-tools/utils.js +203 -0
  38. package/dist/build-tools/vite-plugin.js +161 -0
  39. package/dist/build-tools/webpack-loader.js +123 -0
  40. package/dist/charts.d.ts +1 -1
  41. package/dist/charts.js +86 -57
  42. package/dist/charts.js.map +1 -1
  43. package/dist/core.d.ts +1 -1
  44. package/dist/core.js +136 -112
  45. package/dist/core.js.map +1 -1
  46. package/dist/forms.d.ts +2 -5
  47. package/dist/forms.js +140 -128
  48. package/dist/forms.js.map +1 -1
  49. package/dist/heavy.d.ts +1 -1
  50. package/dist/heavy.js +136 -112
  51. package/dist/heavy.js.map +1 -1
  52. package/dist/index.d.ts +152 -78
  53. package/dist/index.esm.js +346 -340
  54. package/dist/index.esm.js.map +1 -1
  55. package/dist/index.js +359 -353
  56. package/dist/index.js.map +1 -1
  57. package/dist/index.min.js +1 -1
  58. package/dist/index.min.js.map +1 -1
  59. package/dist/layout.js.map +1 -1
  60. package/dist/theme.d.ts +9 -9
  61. package/dist/theme.js.map +1 -1
  62. package/package.json +23 -8
  63. package/scripts/atomix-cli.js +170 -73
  64. package/scripts/cli/__tests__/README.md +81 -0
  65. package/scripts/cli/__tests__/basic.test.js +115 -0
  66. package/scripts/cli/__tests__/component-generator.test.js +332 -0
  67. package/scripts/cli/__tests__/integration.test.js +327 -0
  68. package/scripts/cli/__tests__/test-setup.js +133 -0
  69. package/scripts/cli/__tests__/token-manager.test.js +251 -0
  70. package/scripts/cli/__tests__/utils.test.js +161 -0
  71. package/scripts/cli/component-generator.js +253 -299
  72. package/scripts/cli/dependency-checker.js +355 -0
  73. package/scripts/cli/interactive-init.js +46 -5
  74. package/scripts/cli/template-manager.js +0 -2
  75. package/scripts/cli/templates/common-templates.js +636 -0
  76. package/scripts/cli/templates/composable-templates.js +148 -126
  77. package/scripts/cli/templates/index.js +23 -16
  78. package/scripts/cli/templates/project-templates.js +151 -23
  79. package/scripts/cli/templates/react-templates.js +280 -210
  80. package/scripts/cli/templates/scss-templates.js +90 -91
  81. package/scripts/cli/templates/testing-templates.js +206 -27
  82. package/scripts/cli/templates/testing-utils.js +278 -0
  83. package/scripts/cli/templates/types-templates.js +70 -56
  84. package/scripts/cli/theme-bridge.js +8 -2
  85. package/scripts/cli/token-manager.js +318 -206
  86. package/scripts/cli/utils.js +0 -1
  87. package/src/components/Accordion/Accordion.stories.tsx +358 -850
  88. package/src/components/Accordion/Accordion.test.tsx +70 -50
  89. package/src/components/Accordion/Accordion.tsx +99 -94
  90. package/src/components/AtomixGlass/AtomixGlass.test.tsx +1 -1
  91. package/src/components/AtomixGlass/AtomixGlass.tsx +80 -39
  92. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +103 -81
  93. package/src/components/AtomixGlass/GlassFilter.tsx +9 -16
  94. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +8 -7
  95. package/src/components/AtomixGlass/glass-utils.ts +6 -5
  96. package/src/components/AtomixGlass/shader-utils.ts +133 -52
  97. package/src/components/AtomixGlass/stories/Customization.stories.tsx +131 -0
  98. package/src/components/AtomixGlass/stories/Examples.stories.tsx +2957 -2853
  99. package/src/components/AtomixGlass/stories/Modes.stories.tsx +1 -1
  100. package/src/components/AtomixGlass/stories/Overview.stories.tsx +348 -0
  101. package/src/components/AtomixGlass/stories/Performance.stories.tsx +103 -0
  102. package/src/components/AtomixGlass/stories/Playground.stories.tsx +51 -36
  103. package/src/components/AtomixGlass/stories/{ShaderVariants.stories.tsx → Shaders.stories.tsx} +2 -2
  104. package/src/components/AtomixGlass/stories/shared-components.tsx +90 -190
  105. package/src/components/Avatar/Avatar.stories.tsx +195 -0
  106. package/src/components/Avatar/Avatar.tsx +58 -56
  107. package/src/components/Badge/Badge.stories.tsx +122 -352
  108. package/src/components/Badge/Badge.test.tsx +41 -41
  109. package/src/components/Badge/Badge.tsx +64 -62
  110. package/src/components/Block/Block.stories.tsx +30 -11
  111. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +142 -23
  112. package/src/components/Breadcrumb/Breadcrumb.tsx +62 -60
  113. package/src/components/Button/Button.stories.tsx +454 -1126
  114. package/src/components/Button/Button.test.tsx +123 -0
  115. package/src/components/Button/Button.tsx +88 -60
  116. package/src/components/Button/ButtonGroup.stories.tsx +376 -215
  117. package/src/components/Button/ButtonGroup.tsx +4 -15
  118. package/src/components/Callout/Callout.stories.tsx +316 -568
  119. package/src/components/Card/Card.stories.tsx +292 -81
  120. package/src/components/Card/Card.tsx +30 -14
  121. package/src/components/Chart/AreaChart.tsx +1 -1
  122. package/src/components/Chart/CandlestickChart.tsx +23 -16
  123. package/src/components/Chart/Chart.stories.tsx +153 -16
  124. package/src/components/Chart/Chart.tsx +40 -44
  125. package/src/components/Chart/ChartRenderer.tsx +39 -12
  126. package/src/components/Chart/ChartToolbar.tsx +21 -5
  127. package/src/components/Chart/DonutChart.tsx +1 -1
  128. package/src/components/Chart/FunnelChart.tsx +4 -1
  129. package/src/components/Chart/GaugeChart.tsx +3 -1
  130. package/src/components/Chart/HeatmapChart.tsx +50 -37
  131. package/src/components/Chart/LineChart.tsx +3 -2
  132. package/src/components/Chart/MultiAxisChart.tsx +24 -16
  133. package/src/components/Chart/RadarChart.tsx +19 -17
  134. package/src/components/Chart/ScatterChart.tsx +29 -21
  135. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +152 -66
  136. package/src/components/ColorModeToggle/ColorModeToggle.tsx +15 -3
  137. package/src/components/Countdown/Countdown.stories.tsx +114 -7
  138. package/src/components/DataTable/DataTable.stories.tsx +349 -144
  139. package/src/components/DataTable/DataTable.test.tsx +26 -148
  140. package/src/components/DataTable/DataTable.tsx +485 -456
  141. package/src/components/DatePicker/DatePicker.stories.tsx +310 -1066
  142. package/src/components/DatePicker/DatePicker.tsx +31 -26
  143. package/src/components/Dropdown/Dropdown.stories.tsx +153 -36
  144. package/src/components/Dropdown/Dropdown.tsx +313 -299
  145. package/src/components/EdgePanel/EdgePanel.stories.tsx +221 -25
  146. package/src/components/EdgePanel/EdgePanel.tsx +1 -3
  147. package/src/components/Footer/Footer.stories.tsx +396 -327
  148. package/src/components/Footer/Footer.tsx +130 -128
  149. package/src/components/Footer/FooterLink.tsx +2 -2
  150. package/src/components/Form/Checkbox.stories.tsx +140 -6
  151. package/src/components/Form/Checkbox.test.tsx +63 -0
  152. package/src/components/Form/Checkbox.tsx +122 -78
  153. package/src/components/Form/Form.stories.tsx +110 -19
  154. package/src/components/Form/FormGroup.stories.tsx +127 -4
  155. package/src/components/Form/Input.stories.tsx +22 -39
  156. package/src/components/Form/Input.test.tsx +38 -44
  157. package/src/components/Form/Radio.stories.tsx +146 -17
  158. package/src/components/Form/Radio.tsx +68 -66
  159. package/src/components/Form/Select.stories.tsx +140 -8
  160. package/src/components/Form/Select.tsx +184 -182
  161. package/src/components/Form/Textarea.stories.tsx +149 -6
  162. package/src/components/Form/Textarea.test.tsx +27 -32
  163. package/src/components/Hero/Hero.stories.tsx +372 -38
  164. package/src/components/Hero/Hero.tsx +201 -55
  165. package/src/components/Icon/index.ts +7 -1
  166. package/src/components/List/List.stories.tsx +141 -3
  167. package/src/components/List/List.tsx +19 -23
  168. package/src/components/Modal/Modal.stories.tsx +183 -43
  169. package/src/components/Modal/Modal.tsx +130 -127
  170. package/src/components/Navigation/Menu/MegaMenu.tsx +70 -70
  171. package/src/components/Navigation/Nav/NavDropdown.tsx +1 -5
  172. package/src/components/Navigation/SideMenu/SideMenu.stories.tsx +128 -28
  173. package/src/components/Navigation/SideMenu/SideMenu.tsx +5 -7
  174. package/src/components/Navigation/SideMenu/SideMenuItem.tsx +4 -5
  175. package/src/components/Pagination/Pagination.stories.tsx +7 -4
  176. package/src/components/Pagination/Pagination.tsx +199 -202
  177. package/src/components/PhotoViewer/PhotoViewer.tsx +4 -1
  178. package/src/components/Popover/Popover.stories.tsx +354 -97
  179. package/src/components/Popover/Popover.tsx +41 -37
  180. package/src/components/Progress/Progress.stories.tsx +160 -7
  181. package/src/components/River/River.stories.tsx +3 -2
  182. package/src/components/SectionIntro/SectionIntro.stories.tsx +239 -47
  183. package/src/components/Slider/Slider.stories.tsx +12 -4
  184. package/src/components/Spinner/Spinner.stories.tsx +104 -8
  185. package/src/components/Spinner/Spinner.test.tsx +23 -23
  186. package/src/components/Spinner/Spinner.tsx +43 -46
  187. package/src/components/Steps/Steps.stories.tsx +173 -42
  188. package/src/components/Tabs/Tabs.stories.tsx +141 -12
  189. package/src/components/Tabs/Tabs.tsx +74 -72
  190. package/src/components/Testimonial/Testimonial.stories.tsx +120 -3
  191. package/src/components/Todo/Todo.stories.tsx +198 -9
  192. package/src/components/Toggle/Toggle.stories.tsx +137 -36
  193. package/src/components/Toggle/Toggle.test.tsx +65 -70
  194. package/src/components/Toggle/Toggle.tsx +4 -1
  195. package/src/components/Tooltip/Tooltip.stories.tsx +194 -100
  196. package/src/components/Tooltip/Tooltip.tsx +104 -106
  197. package/src/components/Upload/Upload.stories.tsx +241 -150
  198. package/src/components/Upload/Upload.tsx +287 -283
  199. package/src/components/VideoPlayer/VideoPlayer.tsx +6 -1
  200. package/src/components/index.ts +13 -2
  201. package/src/layouts/Grid/Grid.stories.tsx +9 -3
  202. package/src/layouts/MasonryGrid/MasonryGrid.tsx +5 -1
  203. package/src/lib/README.md +2 -2
  204. package/src/lib/__tests__/theme-tools.test.ts +219 -0
  205. package/src/lib/composables/index.ts +2 -2
  206. package/src/lib/composables/shared-mouse-tracker.ts +13 -14
  207. package/src/lib/composables/useAtomixGlass.ts +126 -97
  208. package/src/lib/composables/useChartExport.ts +3 -8
  209. package/src/lib/composables/useDataTable.ts +72 -43
  210. package/src/lib/composables/useHero.ts +58 -14
  211. package/src/lib/composables/useHeroBackgroundSlider.ts +2 -9
  212. package/src/lib/composables/useInput.ts +10 -8
  213. package/src/lib/composables/useSideMenu.ts +6 -5
  214. package/src/lib/composables/useTooltip.ts +1 -2
  215. package/src/lib/composables/useVideoPlayer.ts +44 -35
  216. package/src/lib/config/index.ts +154 -154
  217. package/src/lib/constants/components.ts +9 -32
  218. package/src/lib/constants/cssVariables.ts +29 -29
  219. package/src/lib/hooks/__tests__/useComponentCustomization.test.ts +2 -6
  220. package/src/lib/hooks/index.ts +1 -1
  221. package/src/lib/hooks/useComponentCustomization.ts +11 -17
  222. package/src/lib/hooks/usePerformanceMonitor.ts +6 -7
  223. package/src/lib/patterns/__tests__/slots.test.ts +1 -1
  224. package/src/lib/patterns/index.ts +1 -1
  225. package/src/lib/patterns/slots.tsx +8 -13
  226. package/src/lib/storybook/InteractiveDemo.tsx +13 -18
  227. package/src/lib/storybook/PreviewContainer.tsx +1 -1
  228. package/src/lib/storybook/VariantsGrid.tsx +3 -7
  229. package/src/lib/storybook/index.ts +1 -1
  230. package/src/lib/theme/adapters/cssVariableMapper.ts +47 -74
  231. package/src/lib/theme/adapters/index.ts +3 -9
  232. package/src/lib/theme/adapters/themeAdapter.ts +41 -26
  233. package/src/lib/theme/config/index.ts +1 -1
  234. package/src/lib/theme/config/types.ts +2 -2
  235. package/src/lib/theme/config/validator.ts +10 -5
  236. package/src/lib/theme/constants/constants.ts +2 -2
  237. package/src/lib/theme/constants/index.ts +1 -2
  238. package/src/lib/theme/core/__tests__/createTheme.test.ts +20 -22
  239. package/src/lib/theme/core/composeTheme.ts +32 -26
  240. package/src/lib/theme/core/createTheme.ts +1 -1
  241. package/src/lib/theme/core/createThemeObject.ts +308 -301
  242. package/src/lib/theme/core/index.ts +3 -3
  243. package/src/lib/theme/devtools/CLI.ts +107 -105
  244. package/src/lib/theme/devtools/Comparator.tsx +50 -32
  245. package/src/lib/theme/devtools/DesignTokensCustomizer.stories.tsx +50 -48
  246. package/src/lib/theme/devtools/DesignTokensCustomizer.tsx +257 -63
  247. package/src/lib/theme/devtools/Inspector.tsx +75 -60
  248. package/src/lib/theme/devtools/LiveEditor.tsx +97 -76
  249. package/src/lib/theme/devtools/Preview.tsx +150 -106
  250. package/src/lib/theme/devtools/ThemeValidator.ts +29 -21
  251. package/src/lib/theme/devtools/index.ts +3 -9
  252. package/src/lib/theme/devtools/useHistory.ts +23 -21
  253. package/src/lib/theme/errors/errors.ts +12 -11
  254. package/src/lib/theme/errors/index.ts +2 -7
  255. package/src/lib/theme/generators/generateCSS.ts +9 -13
  256. package/src/lib/theme/generators/generateCSSNested.ts +1 -6
  257. package/src/lib/theme/generators/generateCSSVariables.ts +673 -630
  258. package/src/lib/theme/generators/index.ts +1 -4
  259. package/src/lib/theme/i18n/index.ts +1 -1
  260. package/src/lib/theme/i18n/rtl.ts +13 -13
  261. package/src/lib/theme/index.ts +7 -16
  262. package/src/lib/theme/runtime/ThemeApplicator.ts +4 -4
  263. package/src/lib/theme/runtime/ThemeContext.tsx +1 -1
  264. package/src/lib/theme/runtime/ThemeErrorBoundary.tsx +19 -23
  265. package/src/lib/theme/runtime/ThemeProvider.tsx +230 -239
  266. package/src/lib/theme/runtime/__tests__/ThemeProvider.integration.test.tsx +1 -1
  267. package/src/lib/theme/runtime/__tests__/ThemeProvider.test.tsx +24 -29
  268. package/src/lib/theme/runtime/index.ts +2 -5
  269. package/src/lib/theme/runtime/useTheme.ts +18 -18
  270. package/src/lib/theme/runtime/useThemeTokens.ts +22 -22
  271. package/src/lib/theme/test/testTheme.ts +15 -16
  272. package/src/lib/theme/tokens/index.ts +2 -7
  273. package/src/lib/theme/tokens/tokens.ts +25 -24
  274. package/src/lib/theme/types.ts +428 -411
  275. package/src/lib/theme/utils/__tests__/themeValidation.test.ts +3 -3
  276. package/src/lib/theme/utils/componentTheming.ts +18 -18
  277. package/src/lib/theme/utils/domUtils.ts +277 -289
  278. package/src/lib/theme/utils/index.ts +1 -2
  279. package/src/lib/theme/utils/injectCSS.ts +10 -14
  280. package/src/lib/theme/utils/naming.ts +20 -16
  281. package/src/lib/theme/utils/themeHelpers.ts +10 -12
  282. package/src/lib/theme/utils/themeUtils.ts +85 -86
  283. package/src/lib/theme/utils/themeValidation.ts +82 -33
  284. package/src/lib/theme-tools.ts +8 -6
  285. package/src/lib/types/components.ts +172 -71
  286. package/src/lib/types/partProps.ts +1 -1
  287. package/src/lib/utils/__tests__/csv.test.ts +45 -0
  288. package/src/lib/utils/componentUtils.ts +8 -12
  289. package/src/lib/utils/csv.ts +19 -0
  290. package/src/lib/utils/dataTableExport.ts +2 -15
  291. package/src/lib/utils/fontPreloader.ts +10 -19
  292. package/src/lib/utils/icons.ts +4 -1
  293. package/src/lib/utils/index.ts +2 -6
  294. package/src/lib/utils/memoryMonitor.ts +10 -8
  295. package/src/lib/utils/themeNaming.ts +2 -2
  296. package/src/styles/01-settings/_index.scss +1 -1
  297. package/src/styles/01-settings/_settings.accordion.scss +28 -7
  298. package/src/styles/01-settings/_settings.colors.scss +11 -11
  299. package/src/styles/01-settings/_settings.design-tokens.scss +61 -50
  300. package/src/styles/01-settings/_settings.navbar.scss +1 -1
  301. package/src/styles/01-settings/_settings.spacing.scss +3 -4
  302. package/src/styles/01-settings/_settings.tooltip.scss +1 -1
  303. package/src/styles/01-settings/_settings.typography.scss +4 -4
  304. package/src/styles/02-tools/_tools.button.scss +51 -21
  305. package/src/styles/02-tools/_tools.utility-api.scss +38 -12
  306. package/src/styles/03-generic/_generic.root.scss +4 -3
  307. package/src/styles/06-components/_components.accordion.scss +56 -14
  308. package/src/styles/06-components/_components.atomix-glass.scss +13 -9
  309. package/src/styles/06-components/_components.button.scss +16 -4
  310. package/src/styles/06-components/_components.callout.scss +27 -21
  311. package/src/styles/06-components/_components.card.scss +5 -14
  312. package/src/styles/06-components/_components.chart.scss +22 -19
  313. package/src/styles/06-components/_components.checkbox.scss +25 -17
  314. package/src/styles/06-components/_components.color-mode-toggle.scss +3 -1
  315. package/src/styles/06-components/_components.edge-panel.scss +9 -2
  316. package/src/styles/06-components/_components.footer.scss +1 -1
  317. package/src/styles/06-components/_components.side-menu.scss +5 -5
  318. package/src/styles/06-components/_components.toggle.scss +18 -0
  319. package/src/styles/06-components/_index.scss +1 -1
  320. package/src/styles/06-components/old.chart.styles.scss +0 -2
  321. package/src/styles/99-utilities/_index.scss +2 -0
  322. package/src/styles/99-utilities/_utilities.border.scss +69 -27
  323. package/src/styles/99-utilities/_utilities.display.scss +1 -1
  324. package/src/styles/99-utilities/_utilities.opacity.scss +10 -0
  325. package/src/styles/99-utilities/_utilities.position.scss +16 -9
  326. package/src/styles/99-utilities/_utilities.scss +2 -0
  327. package/src/styles/99-utilities/_utilities.sizes.scss +47 -18
  328. package/src/styles/99-utilities/_utilities.spacing.scss +118 -66
  329. package/src/styles/99-utilities/_utilities.text-gradient.scss +45 -0
  330. package/src/styles/99-utilities/_utilities.text.scss +67 -46
  331. package/themes/dark-complementary/README.md +98 -0
  332. package/themes/dark-complementary/index.scss +158 -0
  333. package/themes/default-light/README.md +81 -0
  334. package/themes/default-light/index.scss +154 -0
  335. package/themes/high-contrast/README.md +105 -0
  336. package/themes/high-contrast/index.scss +172 -0
  337. package/themes/test-theme/README.md +38 -0
  338. package/themes/test-theme/index.scss +47 -0
  339. package/scripts/cli/templates-original-backup.js +0 -1655
  340. package/scripts/cli/templates_backup.js +0 -684
  341. package/src/components/AtomixGlass/stories/AtomixGlass.stories.tsx +0 -1438
  342. package/src/lib/composables/useButton.ts +0 -93
  343. package/src/lib/composables/useCheckbox.ts +0 -70
@@ -0,0 +1,636 @@
1
+ /**
2
+ * Common Configuration Templates
3
+ * Templates for configuration files used across all project types
4
+ */
5
+
6
+ /**
7
+ * TypeScript Configuration Templates
8
+ */
9
+ export const typescriptTemplates = {
10
+ // React TypeScript config
11
+ react: `{
12
+ "compilerOptions": {
13
+ "target": "ES2020",
14
+ "useDefineForClassFields": true,
15
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
16
+ "module": "ESNext",
17
+ "skipLibCheck": true,
18
+
19
+ /* Bundler mode */
20
+ "moduleResolution": "bundler",
21
+ "allowImportingTsExtensions": true,
22
+ "resolveJsonModule": true,
23
+ "isolatedModules": true,
24
+ "noEmit": true,
25
+ "jsx": "react-jsx",
26
+
27
+ /* Linting */
28
+ "strict": true,
29
+ "noUnusedLocals": true,
30
+ "noUnusedParameters": true,
31
+ "noFallthroughCasesInSwitch": true,
32
+
33
+ /* Path mapping */
34
+ "baseUrl": ".",
35
+ "paths": {
36
+ "@/*": ["./src/*"],
37
+ "@components/*": ["./src/components/*"],
38
+ "@lib/*": ["./src/lib/*"],
39
+ "@styles/*": ["./src/styles/*"]
40
+ }
41
+ },
42
+ "include": ["src"],
43
+ "references": [{ "path": "./tsconfig.node.json" }]
44
+ }`,
45
+
46
+ // React Node TypeScript config
47
+ reactNode: `{
48
+ "compilerOptions": {
49
+ "composite": true,
50
+ "skipLibCheck": true,
51
+ "module": "ESNext",
52
+ "moduleResolution": "bundler",
53
+ "allowSyntheticDefaultImports": true
54
+ },
55
+ "include": ["vite.config.ts"]
56
+ }`,
57
+
58
+ // Next.js TypeScript config
59
+ nextjs: `{
60
+ "compilerOptions": {
61
+ "target": "es5",
62
+ "lib": ["dom", "dom.iterable", "esnext"],
63
+ "allowJs": true,
64
+ "skipLibCheck": true,
65
+ "strict": true,
66
+ "forceConsistentCasingInFileNames": true,
67
+ "noEmit": true,
68
+ "esModuleInterop": true,
69
+ "module": "esnext",
70
+ "moduleResolution": "bundler",
71
+ "resolveJsonModule": true,
72
+ "isolatedModules": true,
73
+ "jsx": "preserve",
74
+ "incremental": true,
75
+ "baseUrl": ".",
76
+ "paths": {
77
+ "@/*": ["./src/*"],
78
+ "@components/*": ["./src/components/*"],
79
+ "@lib/*": ["./src/lib/*"],
80
+ "@styles/*": ["./src/styles/*"]
81
+ }
82
+ },
83
+ "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"],
84
+ "exclude": ["node_modules"]
85
+ }`,
86
+
87
+ // Vanilla TypeScript config
88
+ vanilla: `{
89
+ "compilerOptions": {
90
+ "target": "ES2020",
91
+ "useDefineForClassFields": true,
92
+ "module": "ESNext",
93
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
94
+ "skipLibCheck": true,
95
+
96
+ /* Bundler mode */
97
+ "moduleResolution": "bundler",
98
+ "allowImportingTsExtensions": true,
99
+ "resolveJsonModule": true,
100
+ "isolatedModules": true,
101
+ "noEmit": true,
102
+
103
+ /* Linting */
104
+ "strict": true,
105
+ "noUnusedLocals": true,
106
+ "noUnusedParameters": true,
107
+ "noFallthroughCasesInSwitch": true,
108
+
109
+ /* Path mapping */
110
+ "baseUrl": ".",
111
+ "paths": {
112
+ "@/*": ["./src/*"],
113
+ "@lib/*": ["./src/lib/*"],
114
+ "@styles/*": ["./src/styles/*"]
115
+ }
116
+ },
117
+ "include": ["src"]
118
+ }`
119
+ };
120
+
121
+ /**
122
+ * Git Configuration Templates
123
+ */
124
+ export const gitTemplates = {
125
+ gitignore: `# Dependencies
126
+ node_modules/
127
+ .pnp
128
+ .pnp.js
129
+
130
+ # Testing
131
+ coverage/
132
+ *.lcov
133
+ .nyc_output
134
+
135
+ # Production
136
+ build/
137
+ dist/
138
+ .next/
139
+ out/
140
+
141
+ # Misc
142
+ .DS_Store
143
+ *.pem
144
+ .env
145
+ .env.local
146
+ .env.development.local
147
+ .env.test.local
148
+ .env.production.local
149
+
150
+ # Debug
151
+ npm-debug.log*
152
+ yarn-debug.log*
153
+ yarn-error.log*
154
+ .pnpm-debug.log*
155
+
156
+ # IDE
157
+ .vscode/
158
+ .idea/
159
+ *.swp
160
+ *.swo
161
+ *~
162
+
163
+ # Atomix
164
+ .atomix/
165
+ themes/*/dist/
166
+
167
+ # OS
168
+ Thumbs.db
169
+ `,
170
+
171
+ gitattributes: `# Auto detect text files and perform LF normalization
172
+ * text=auto
173
+
174
+ # Source code
175
+ *.js text eol=lf
176
+ *.jsx text eol=lf
177
+ *.ts text eol=lf
178
+ *.tsx text eol=lf
179
+ *.json text eol=lf
180
+ *.css text eol=lf
181
+ *.scss text eol=lf
182
+ *.html text eol=lf
183
+ *.md text eol=lf
184
+
185
+ # Binary files
186
+ *.png binary
187
+ *.jpg binary
188
+ *.jpeg binary
189
+ *.gif binary
190
+ *.ico binary
191
+ *.svg binary
192
+ *.woff binary
193
+ *.woff2 binary
194
+ *.ttf binary
195
+ *.eot binary
196
+ `
197
+ };
198
+
199
+ /**
200
+ * Prettier Configuration Templates
201
+ */
202
+ export const prettierTemplates = {
203
+ prettierrc: `{
204
+ "semi": true,
205
+ "trailingComma": "es5",
206
+ "singleQuote": true,
207
+ "printWidth": 100,
208
+ "tabWidth": 2,
209
+ "useTabs": false,
210
+ "arrowParens": "always",
211
+ "endOfLine": "lf"
212
+ }`,
213
+
214
+ prettierignore: `# Dependencies
215
+ node_modules/
216
+
217
+ # Production
218
+ build/
219
+ dist/
220
+ .next/
221
+ out/
222
+
223
+ # Misc
224
+ coverage/
225
+ .cache/
226
+ *.min.js
227
+ *.min.css
228
+
229
+ # Package manager
230
+ package-lock.json
231
+ yarn.lock
232
+ pnpm-lock.yaml
233
+ `
234
+ };
235
+
236
+ /**
237
+ * ESLint Configuration Templates
238
+ */
239
+ export const eslintTemplates = {
240
+ // React ESLint config
241
+ react: `module.exports = {
242
+ root: true,
243
+ env: { browser: true, es2020: true },
244
+ extends: [
245
+ 'eslint:recommended',
246
+ 'plugin:@typescript-eslint/recommended',
247
+ 'plugin:react-hooks/recommended',
248
+ ],
249
+ ignorePatterns: ['dist', '.eslintrc.cjs'],
250
+ parser: '@typescript-eslint/parser',
251
+ plugins: ['react-refresh'],
252
+ rules: {
253
+ 'react-refresh/only-export-components': [
254
+ 'warn',
255
+ { allowConstantExport: true },
256
+ ],
257
+ },
258
+ }`,
259
+
260
+ // Next.js ESLint config
261
+ nextjs: `{
262
+ "extends": ["next/core-web-vitals", "next/typescript"],
263
+ "rules": {
264
+ "@typescript-eslint/no-unused-vars": "warn",
265
+ "@typescript-eslint/no-explicit-any": "warn"
266
+ }
267
+ }`
268
+ };
269
+
270
+ /**
271
+ * Vite Environment Declaration
272
+ */
273
+ export const viteEnvTemplate = `/// <reference types="vite/client" />
274
+ `;
275
+
276
+ /**
277
+ * README Templates
278
+ */
279
+ export const readmeTemplates = {
280
+ react: (projectName) => `# ${projectName}
281
+
282
+ A React application built with Atomix Design System.
283
+
284
+ ## Getting Started
285
+
286
+ ### Prerequisites
287
+
288
+ - Node.js 18+ and npm
289
+
290
+ ### Installation
291
+
292
+ \`\`\`bash
293
+ npm install
294
+ \`\`\`
295
+
296
+ ### Development
297
+
298
+ \`\`\`bash
299
+ npm run dev
300
+ \`\`\`
301
+
302
+ Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
303
+
304
+ ### Build
305
+
306
+ \`\`\`bash
307
+ npm run build
308
+ \`\`\`
309
+
310
+ ### Preview Production Build
311
+
312
+ \`\`\`bash
313
+ npm run preview
314
+ \`\`\`
315
+
316
+ ## Atomix CLI Commands
317
+
318
+ ### Build Theme
319
+
320
+ \`\`\`bash
321
+ npm run build:theme
322
+ \`\`\`
323
+
324
+ ### Generate Component
325
+
326
+ \`\`\`bash
327
+ npm run generate:component
328
+ \`\`\`
329
+
330
+ ### Validate Design Tokens
331
+
332
+ \`\`\`bash
333
+ npm run validate
334
+ \`\`\`
335
+
336
+ ## Project Structure
337
+
338
+ \`\`\`
339
+ src/
340
+ ├── components/ # React components
341
+ ├── lib/ # Utilities, types, constants
342
+ ├── styles/ # SCSS styles (ITCSS)
343
+ └── assets/ # Static assets
344
+ \`\`\`
345
+
346
+ ## Learn More
347
+
348
+ - [Atomix Documentation](https://github.com/shohojdhara/atomix)
349
+ - [React Documentation](https://react.dev)
350
+ - [Vite Documentation](https://vitejs.dev)
351
+ `,
352
+
353
+ nextjs: (projectName) => `# ${projectName}
354
+
355
+ A Next.js application built with Atomix Design System.
356
+
357
+ ## Getting Started
358
+
359
+ ### Prerequisites
360
+
361
+ - Node.js 18+ and npm
362
+
363
+ ### Installation
364
+
365
+ \`\`\`bash
366
+ npm install
367
+ \`\`\`
368
+
369
+ ### Development
370
+
371
+ \`\`\`bash
372
+ npm run dev
373
+ \`\`\`
374
+
375
+ Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
376
+
377
+ ### Build
378
+
379
+ \`\`\`bash
380
+ npm run build
381
+ \`\`\`
382
+
383
+ ### Start Production Server
384
+
385
+ \`\`\`bash
386
+ npm start
387
+ \`\`\`
388
+
389
+ ## Atomix CLI Commands
390
+
391
+ ### Build Theme
392
+
393
+ \`\`\`bash
394
+ npm run build:theme
395
+ \`\`\`
396
+
397
+ ### Generate Component
398
+
399
+ \`\`\`bash
400
+ npm run generate:component
401
+ \`\`\`
402
+
403
+ ### Validate Design Tokens
404
+
405
+ \`\`\`bash
406
+ npm run validate
407
+ \`\`\`
408
+
409
+ ## Project Structure
410
+
411
+ \`\`\`
412
+ src/
413
+ ├── pages/ # Next.js pages
414
+ ├── components/ # React components
415
+ ├── lib/ # Utilities, types, constants
416
+ ├── styles/ # SCSS styles (ITCSS)
417
+ └── public/ # Static files
418
+ \`\`\`
419
+
420
+ ## Learn More
421
+
422
+ - [Atomix Documentation](https://github.com/shohojdhara/atomix)
423
+ - [Next.js Documentation](https://nextjs.org/docs)
424
+ `,
425
+
426
+ vanilla: (projectName) => `# ${projectName}
427
+
428
+ A vanilla JavaScript/TypeScript application built with Atomix Design System.
429
+
430
+ ## Getting Started
431
+
432
+ ### Prerequisites
433
+
434
+ - Node.js 18+ and npm
435
+
436
+ ### Installation
437
+
438
+ \`\`\`bash
439
+ npm install
440
+ \`\`\`
441
+
442
+ ### Development
443
+
444
+ \`\`\`bash
445
+ npm run dev
446
+ \`\`\`
447
+
448
+ Open [http://localhost:5173](http://localhost:5173) to view it in the browser.
449
+
450
+ ### Build
451
+
452
+ \`\`\`bash
453
+ npm run build
454
+ \`\`\`
455
+
456
+ ### Preview Production Build
457
+
458
+ \`\`\`bash
459
+ npm run preview
460
+ \`\`\`
461
+
462
+ ## Atomix CLI Commands
463
+
464
+ ### Build Theme
465
+
466
+ \`\`\`bash
467
+ npm run build:theme
468
+ \`\`\`
469
+
470
+ ### Validate Design Tokens
471
+
472
+ \`\`\`bash
473
+ npm run validate
474
+ \`\`\`
475
+
476
+ ## Project Structure
477
+
478
+ \`\`\`
479
+ src/
480
+ ├── lib/ # Utilities and types
481
+ ├── styles/ # SCSS styles (ITCSS)
482
+ └── assets/ # Static assets
483
+ \`\`\`
484
+
485
+ ## Learn More
486
+
487
+ - [Atomix Documentation](https://github.com/shohojdhara/atomix)
488
+ - [Vite Documentation](https://vitejs.dev)
489
+ `
490
+ };
491
+
492
+ /**
493
+ * Environment Variables Template
494
+ */
495
+ export const envTemplate = `# Environment Variables
496
+ # Copy this file to .env.local and fill in your values
497
+
498
+ # API Configuration
499
+ # VITE_API_URL=http://localhost:3000/api
500
+
501
+ # Feature Flags
502
+ # VITE_ENABLE_ANALYTICS=false
503
+ `;
504
+
505
+ /**
506
+ * ITCSS Index Files
507
+ */
508
+ export const itcssIndexTemplates = {
509
+ settings: `// Settings Layer
510
+ // Global variables, config switches, and brand colors
511
+
512
+ // Import Atomix settings or define your own
513
+ // @use '@shohojdhara/atomix/scss/settings' as *;
514
+ `,
515
+
516
+ tools: `// Tools Layer
517
+ // Globally used mixins and functions
518
+
519
+ // Import Atomix tools or define your own
520
+ // @use '@shohojdhara/atomix/scss/tools' as *;
521
+ `,
522
+
523
+ generic: `// Generic Layer
524
+ // Ground-zero styles (normalize.css, resets, box-sizing)
525
+
526
+ // Import Atomix generic styles or define your own
527
+ // @use '@shohojdhara/atomix/scss/generic' as *;
528
+ `,
529
+
530
+ elements: `// Elements Layer
531
+ // Unclassed HTML elements (type selectors)
532
+
533
+ // Import Atomix element styles or define your own
534
+ // @use '@shohojdhara/atomix/scss/elements' as *;
535
+ `,
536
+
537
+ objects: `// Objects Layer
538
+ // Cosmetic-free design patterns (layouts, grids)
539
+
540
+ // Import Atomix object styles or define your own
541
+ // @use '@shohojdhara/atomix/scss/objects' as *;
542
+ `,
543
+
544
+ components: `// Components Layer
545
+ // Designed components, chunks of UI
546
+
547
+ // Import Atomix components or define your own
548
+ // @use '@shohojdhara/atomix/scss/components' as *;
549
+ `,
550
+
551
+ utilities: `// Utilities Layer
552
+ // Helper classes with ability to override anything
553
+
554
+ // Import Atomix utilities or define your own
555
+ // @use '@shohojdhara/atomix/scss/utilities' as *;
556
+ `,
557
+
558
+ main: `// Main Stylesheet
559
+ // ITCSS Architecture
560
+
561
+ @forward '01-settings';
562
+ @forward '02-tools';
563
+ @forward '03-generic';
564
+ @forward '04-elements';
565
+ @forward '05-objects';
566
+ @forward '06-components';
567
+ @forward '99-utilities';
568
+ `
569
+ };
570
+
571
+ /**
572
+ * Library Index Files
573
+ */
574
+ export const libIndexTemplates = {
575
+ types: `// Type definitions
576
+ export * from './components';
577
+ `,
578
+
579
+ constants: `// Application constants
580
+ export const APP_NAME = 'Atomix App';
581
+ export const APP_VERSION = '1.0.0';
582
+ `,
583
+
584
+ composables: `// React hooks and composables
585
+ `,
586
+
587
+ utils: `// Utility functions
588
+
589
+ /**
590
+ * Combine class names
591
+ */
592
+ export function cn(...classes: (string | undefined | null | false)[]): string {
593
+ return classes.filter(Boolean).join(' ');
594
+ }
595
+
596
+ /**
597
+ * Format date
598
+ */
599
+ export function formatDate(date: Date | string): string {
600
+ return new Date(date).toLocaleDateString();
601
+ }
602
+ `
603
+ };
604
+
605
+ /**
606
+ * Vitest Configuration Template
607
+ */
608
+ export const vitestTemplate = `import { defineConfig } from 'vitest/config';
609
+ import react from '@vitejs/plugin-react';
610
+
611
+ export default defineConfig({
612
+ plugins: [react()],
613
+ test: {
614
+ globals: true,
615
+ environment: 'jsdom',
616
+ setupFiles: './src/test/setup.ts',
617
+ css: true,
618
+ },
619
+ });
620
+ `;
621
+
622
+ /**
623
+ * Export all templates
624
+ */
625
+ export const commonTemplates = {
626
+ typescript: typescriptTemplates,
627
+ git: gitTemplates,
628
+ prettier: prettierTemplates,
629
+ eslint: eslintTemplates,
630
+ viteEnv: viteEnvTemplate,
631
+ readme: readmeTemplates,
632
+ env: envTemplate,
633
+ itcss: itcssIndexTemplates,
634
+ lib: libIndexTemplates,
635
+ vitest: vitestTemplate,
636
+ };