@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
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * CSS Variables Constants
3
- *
3
+ *
4
4
  * Comprehensive CSS custom property definitions for all components.
5
5
  * These provide type-safe access to component styling variables.
6
6
  */
@@ -24,7 +24,7 @@ export const BUTTON_CSS_VARS = {
24
24
  '--atomix-button-min-width': 'minimum width',
25
25
  '--atomix-button-min-height': 'minimum height',
26
26
  '--atomix-button-transition': 'transition',
27
-
27
+
28
28
  // State properties
29
29
  '--atomix-button-hover-bg': 'hover background',
30
30
  '--atomix-button-hover-color': 'hover text color',
@@ -35,7 +35,7 @@ export const BUTTON_CSS_VARS = {
35
35
  '--atomix-button-focus-ring-width': 'focus ring width',
36
36
  '--atomix-button-disabled-opacity': 'disabled opacity',
37
37
  '--atomix-button-disabled-bg': 'disabled background',
38
-
38
+
39
39
  // Part properties
40
40
  '--atomix-button-icon-size': 'icon size',
41
41
  '--atomix-button-icon-gap': 'icon spacing',
@@ -57,32 +57,32 @@ export const CARD_CSS_VARS = {
57
57
  '--atomix-card-box-shadow': 'box shadow',
58
58
  '--atomix-card-width': 'width',
59
59
  '--atomix-card-max-width': 'maximum width',
60
-
60
+
61
61
  // State properties
62
62
  '--atomix-card-hover-bg': 'hover background',
63
63
  '--atomix-card-hover-shadow': 'hover shadow',
64
64
  '--atomix-card-hover-transform': 'hover transform',
65
-
65
+
66
66
  // Part properties - Header
67
67
  '--atomix-card-header-padding': 'header padding',
68
68
  '--atomix-card-header-bg': 'header background',
69
69
  '--atomix-card-header-border-bottom': 'header border bottom',
70
-
70
+
71
71
  // Part properties - Body
72
72
  '--atomix-card-body-padding': 'body padding',
73
73
  '--atomix-card-body-font-size': 'body font size',
74
-
74
+
75
75
  // Part properties - Footer
76
76
  '--atomix-card-footer-padding': 'footer padding',
77
77
  '--atomix-card-footer-bg': 'footer background',
78
78
  '--atomix-card-footer-border-top': 'footer border top',
79
-
79
+
80
80
  // Part properties - Title
81
81
  '--atomix-card-title-font-size': 'title font size',
82
82
  '--atomix-card-title-font-weight': 'title font weight',
83
83
  '--atomix-card-title-color': 'title color',
84
84
  '--atomix-card-title-margin-bottom': 'title margin bottom',
85
-
85
+
86
86
  // Part properties - Image
87
87
  '--atomix-card-image-border-radius': 'image border radius',
88
88
  '--atomix-card-image-max-height': 'image max height',
@@ -105,7 +105,7 @@ export const INPUT_CSS_VARS = {
105
105
  '--atomix-input-line-height': 'line height',
106
106
  '--atomix-input-height': 'height',
107
107
  '--atomix-input-placeholder-color': 'placeholder color',
108
-
108
+
109
109
  // State properties
110
110
  '--atomix-input-hover-border-color': 'hover border color',
111
111
  '--atomix-input-focus-border-color': 'focus border color',
@@ -130,27 +130,27 @@ export const MODAL_CSS_VARS = {
130
130
  '--atomix-modal-width': 'width',
131
131
  '--atomix-modal-max-width': 'maximum width',
132
132
  '--atomix-modal-max-height': 'maximum height',
133
-
133
+
134
134
  // Backdrop properties
135
135
  '--atomix-modal-backdrop-bg': 'backdrop background',
136
136
  '--atomix-modal-backdrop-opacity': 'backdrop opacity',
137
137
  '--atomix-modal-backdrop-blur': 'backdrop blur',
138
-
138
+
139
139
  // Part properties - Header
140
140
  '--atomix-modal-header-padding': 'header padding',
141
141
  '--atomix-modal-header-border-bottom': 'header border bottom',
142
142
  '--atomix-modal-title-font-size': 'title font size',
143
143
  '--atomix-modal-title-font-weight': 'title font weight',
144
-
144
+
145
145
  // Part properties - Body
146
146
  '--atomix-modal-body-padding': 'body padding',
147
147
  '--atomix-modal-body-font-size': 'body font size',
148
-
148
+
149
149
  // Part properties - Footer
150
150
  '--atomix-modal-footer-padding': 'footer padding',
151
151
  '--atomix-modal-footer-border-top': 'footer border top',
152
152
  '--atomix-modal-footer-gap': 'footer button gap',
153
-
153
+
154
154
  // Part properties - Close button
155
155
  '--atomix-modal-close-size': 'close button size',
156
156
  '--atomix-modal-close-color': 'close button color',
@@ -171,7 +171,7 @@ export const DROPDOWN_CSS_VARS = {
171
171
  '--atomix-dropdown-min-width': 'minimum width',
172
172
  '--atomix-dropdown-max-height': 'maximum height',
173
173
  '--atomix-dropdown-padding': 'padding',
174
-
174
+
175
175
  // Part properties - Item
176
176
  '--atomix-dropdown-item-padding': 'item padding',
177
177
  '--atomix-dropdown-item-font-size': 'item font size',
@@ -180,11 +180,11 @@ export const DROPDOWN_CSS_VARS = {
180
180
  '--atomix-dropdown-item-active-bg': 'item active background',
181
181
  '--atomix-dropdown-item-active-color': 'item active color',
182
182
  '--atomix-dropdown-item-disabled-opacity': 'item disabled opacity',
183
-
183
+
184
184
  // Part properties - Divider
185
185
  '--atomix-dropdown-divider-color': 'divider color',
186
186
  '--atomix-dropdown-divider-margin': 'divider margin',
187
-
187
+
188
188
  // Part properties - Header
189
189
  '--atomix-dropdown-header-padding': 'header padding',
190
190
  '--atomix-dropdown-header-font-size': 'header font size',
@@ -205,7 +205,7 @@ export const BADGE_CSS_VARS = {
205
205
  '--atomix-badge-font-size': 'font size',
206
206
  '--atomix-badge-font-weight': 'font weight',
207
207
  '--atomix-badge-line-height': 'line height',
208
-
208
+
209
209
  // Part properties
210
210
  '--atomix-badge-icon-size': 'icon size',
211
211
  '--atomix-badge-icon-gap': 'icon spacing',
@@ -219,11 +219,11 @@ export const TABS_CSS_VARS = {
219
219
  '--atomix-tabs-bg': 'background color',
220
220
  '--atomix-tabs-border-color': 'border color',
221
221
  '--atomix-tabs-border-width': 'border width',
222
-
222
+
223
223
  // Part properties - Nav
224
224
  '--atomix-tabs-nav-gap': 'nav gap',
225
225
  '--atomix-tabs-nav-padding': 'nav padding',
226
-
226
+
227
227
  // Part properties - Tab button
228
228
  '--atomix-tabs-btn-padding-x': 'button horizontal padding',
229
229
  '--atomix-tabs-btn-padding-y': 'button vertical padding',
@@ -234,7 +234,7 @@ export const TABS_CSS_VARS = {
234
234
  '--atomix-tabs-btn-active-color': 'button active color',
235
235
  '--atomix-tabs-btn-active-border-color': 'button active border color',
236
236
  '--atomix-tabs-btn-active-border-width': 'button active border width',
237
-
237
+
238
238
  // Part properties - Panel
239
239
  '--atomix-tabs-panel-padding': 'panel padding',
240
240
  '--atomix-tabs-panel-bg': 'panel background',
@@ -248,7 +248,7 @@ export const PROGRESS_CSS_VARS = {
248
248
  '--atomix-progress-bg': 'background color',
249
249
  '--atomix-progress-height': 'height',
250
250
  '--atomix-progress-border-radius': 'border radius',
251
-
251
+
252
252
  // Part properties - Bar
253
253
  '--atomix-progress-bar-bg': 'bar background',
254
254
  '--atomix-progress-bar-transition': 'bar transition',
@@ -268,7 +268,7 @@ export const TOOLTIP_CSS_VARS = {
268
268
  '--atomix-tooltip-max-width': 'maximum width',
269
269
  '--atomix-tooltip-box-shadow': 'box shadow',
270
270
  '--atomix-tooltip-z-index': 'z-index',
271
-
271
+
272
272
  // Arrow properties
273
273
  '--atomix-tooltip-arrow-size': 'arrow size',
274
274
  '--atomix-tooltip-arrow-color': 'arrow color',
@@ -285,7 +285,7 @@ export const CHECKBOX_CSS_VARS = {
285
285
  '--atomix-checkbox-border-width': 'border width',
286
286
  '--atomix-checkbox-border-radius': 'border radius',
287
287
  '--atomix-checkbox-transition': 'transition',
288
-
288
+
289
289
  // State properties
290
290
  '--atomix-checkbox-checked-bg': 'checked background',
291
291
  '--atomix-checkbox-checked-border-color': 'checked border color',
@@ -294,7 +294,7 @@ export const CHECKBOX_CSS_VARS = {
294
294
  '--atomix-checkbox-focus-ring-width': 'focus ring width',
295
295
  '--atomix-checkbox-disabled-opacity': 'disabled opacity',
296
296
  '--atomix-checkbox-invalid-border-color': 'invalid border color',
297
-
297
+
298
298
  // Part properties
299
299
  '--atomix-checkbox-icon-size': 'icon size',
300
300
  '--atomix-checkbox-icon-color': 'icon color',
@@ -313,7 +313,7 @@ export const RADIO_CSS_VARS = {
313
313
  '--atomix-radio-border-color': 'border color',
314
314
  '--atomix-radio-border-width': 'border width',
315
315
  '--atomix-radio-transition': 'transition',
316
-
316
+
317
317
  // State properties
318
318
  '--atomix-radio-checked-bg': 'checked background',
319
319
  '--atomix-radio-checked-border-color': 'checked border color',
@@ -322,7 +322,7 @@ export const RADIO_CSS_VARS = {
322
322
  '--atomix-radio-focus-ring-width': 'focus ring width',
323
323
  '--atomix-radio-disabled-opacity': 'disabled opacity',
324
324
  '--atomix-radio-invalid-border-color': 'invalid border color',
325
-
325
+
326
326
  // Part properties
327
327
  '--atomix-radio-dot-size': 'dot size',
328
328
  '--atomix-radio-dot-color': 'dot color',
@@ -385,6 +385,6 @@ export type ComponentCSSVariables = {
385
385
  */
386
386
  export function getComponentCSSVars<T extends keyof typeof COMPONENT_CSS_VARS>(
387
387
  component: T
388
- ): typeof COMPONENT_CSS_VARS[T] {
388
+ ): (typeof COMPONENT_CSS_VARS)[T] {
389
389
  return COMPONENT_CSS_VARS[component];
390
390
  }
@@ -25,9 +25,7 @@ describe('useComponentCustomization', () => {
25
25
  });
26
26
 
27
27
  it('should handle empty cssVars', () => {
28
- const { result } = renderHook(() =>
29
- useComponentCustomization('Button', {})
30
- );
28
+ const { result } = renderHook(() => useComponentCustomization('Button', {}));
31
29
 
32
30
  expect(result.current.cssVars).toEqual({});
33
31
  });
@@ -77,9 +75,7 @@ describe('useComponentCustomization', () => {
77
75
  });
78
76
 
79
77
  it('should handle empty parts', () => {
80
- const { result } = renderHook(() =>
81
- useComponentCustomization('Button', {})
82
- );
78
+ const { result } = renderHook(() => useComponentCustomization('Button', {}));
83
79
 
84
80
  expect(result.current.parts).toEqual({});
85
81
  });
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Hooks Exports
3
- *
3
+ *
4
4
  * Custom React hooks for component customization
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Component Customization Hook
3
- *
3
+ *
4
4
  * Merges theme-level component overrides with component-level props
5
5
  * for comprehensive customization support.
6
6
  */
@@ -23,7 +23,7 @@ export type ComponentName = keyof ComponentPartsMap;
23
23
  */
24
24
  export interface CustomizableComponentProps<T extends ComponentName> {
25
25
  /** CSS variable overrides */
26
- cssVars?: T extends keyof ComponentCSSVariables
26
+ cssVars?: T extends keyof ComponentCSSVariables
27
27
  ? Partial<Record<ComponentCSSVariables[T], string | number>>
28
28
  : Record<string, string | number>;
29
29
  /** Part-based styling */
@@ -52,13 +52,13 @@ export interface ComponentCustomization<T extends ComponentName> {
52
52
 
53
53
  /**
54
54
  * Hook to merge theme overrides with component props
55
- *
55
+ *
56
56
  * @example
57
57
  * function Button(props: ButtonProps) {
58
58
  * const customization = useComponentCustomization('Button', props);
59
- *
59
+ *
60
60
  * return (
61
- * <button
61
+ * <button
62
62
  * className={customization.className}
63
63
  * style={customization.style}
64
64
  * >
@@ -84,18 +84,12 @@ export function useComponentCustomization<T extends ComponentName>(
84
84
  const parts = useMemo(() => {
85
85
  const themeParts = (theme as any)?.components?.[component]?.parts || {};
86
86
  const propParts = (props.parts || {}) as Record<string, any>;
87
-
87
+
88
88
  const merged: Record<string, any> = {};
89
- const allPartNames = new Set([
90
- ...Object.keys(themeParts),
91
- ...Object.keys(propParts),
92
- ]);
93
-
94
- allPartNames.forEach((partName) => {
95
- merged[partName] = mergePartStyles(
96
- themeParts[partName] as any,
97
- propParts[partName] as any
98
- );
89
+ const allPartNames = new Set([...Object.keys(themeParts), ...Object.keys(propParts)]);
90
+
91
+ allPartNames.forEach(partName => {
92
+ merged[partName] = mergePartStyles(themeParts[partName] as any, propParts[partName] as any);
99
93
  });
100
94
 
101
95
  return merged as ComponentPartsMap[T];
@@ -137,7 +131,7 @@ export function useComponentDefaultProps<T extends ComponentName>(
137
131
  component: T
138
132
  ): Record<string, any> {
139
133
  const { theme } = useTheme();
140
-
134
+
141
135
  return useMemo(() => {
142
136
  return (theme as any)?.components?.[component]?.defaultProps || {};
143
137
  }, [theme, component]);
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Performance Monitoring Hook
3
- *
3
+ *
4
4
  * Tracks component render times and re-render counts
5
5
  * for performance analysis and optimization
6
6
  */
@@ -58,10 +58,10 @@ export interface UsePerformanceMonitorOptions {
58
58
 
59
59
  /**
60
60
  * Hook to monitor component performance
61
- *
61
+ *
62
62
  * @param options - Performance monitoring options
63
63
  * @returns Performance metrics
64
- *
64
+ *
65
65
  * @example
66
66
  * ```tsx
67
67
  * function MyComponent() {
@@ -69,7 +69,7 @@ export interface UsePerformanceMonitorOptions {
69
69
  * componentName: 'MyComponent',
70
70
  * warnThreshold: 16, // Warn if render takes > 16ms (1 frame)
71
71
  * });
72
- *
72
+ *
73
73
  * return <div>Content</div>;
74
74
  * }
75
75
  * ```
@@ -77,7 +77,7 @@ export interface UsePerformanceMonitorOptions {
77
77
  export function usePerformanceMonitor(options: UsePerformanceMonitorOptions) {
78
78
  const {
79
79
  componentName,
80
- logToConsole = (typeof process === 'undefined' || process.env?.NODE_ENV === 'development'),
80
+ logToConsole = typeof process === 'undefined' || process.env?.NODE_ENV === 'development',
81
81
  warnThreshold = 16,
82
82
  onMetrics,
83
83
  } = options;
@@ -114,7 +114,7 @@ export function usePerformanceMonitor(options: UsePerformanceMonitorOptions) {
114
114
  if (renderTime > warnThreshold && logToConsole) {
115
115
  console.warn(
116
116
  `[Performance] ${componentName} render took ${renderTime.toFixed(2)}ms ` +
117
- `(threshold: ${warnThreshold}ms)`
117
+ `(threshold: ${warnThreshold}ms)`
118
118
  );
119
119
  }
120
120
 
@@ -146,4 +146,3 @@ export function getPerformanceMetrics(): PerformanceMetrics[] {
146
146
  // For now, this is a placeholder
147
147
  return [];
148
148
  }
149
-
@@ -24,7 +24,7 @@ describe('slots', () => {
24
24
  it('should render with component', () => {
25
25
  const CustomComponent = ({ text }: { text: string }) =>
26
26
  React.createElement('span', null, `Component: ${text}`);
27
-
27
+
28
28
  const slot = {
29
29
  component: CustomComponent,
30
30
  };
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Pattern System Exports
3
- *
3
+ *
4
4
  * Slot and render prop patterns for advanced component customization
5
5
  */
6
6
 
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Slot Pattern System
3
- *
3
+ *
4
4
  * Provides render props and slot-based customization for components.
5
5
  * Allows complete control over component rendering and structure.
6
6
  */
@@ -21,13 +21,13 @@ export interface SlotProps<T = any> {
21
21
 
22
22
  /**
23
23
  * Render a slot with the given props
24
- *
24
+ *
25
25
  * Priority order:
26
26
  * 1. render function
27
27
  * 2. component
28
28
  * 3. children
29
29
  * 4. fallback
30
- *
30
+ *
31
31
  * @example
32
32
  * renderSlot(
33
33
  * { render: (props) => <CustomButton {...props} /> },
@@ -87,11 +87,9 @@ export function isSlot<T>(value: any): value is SlotProps<T> {
87
87
  * Merge multiple slot configurations
88
88
  * Later slots override earlier ones
89
89
  */
90
- export function mergeSlots<T>(
91
- ...slots: Array<SlotProps<T> | undefined>
92
- ): SlotProps<T> | undefined {
90
+ export function mergeSlots<T>(...slots: Array<SlotProps<T> | undefined>): SlotProps<T> | undefined {
93
91
  const filtered = slots.filter((s): s is SlotProps<T> => s !== undefined);
94
-
92
+
95
93
  if (filtered.length === 0) return undefined;
96
94
  if (filtered.length === 1) return filtered[0];
97
95
 
@@ -103,10 +101,10 @@ export function mergeSlots<T>(
103
101
 
104
102
  /**
105
103
  * Create a slot wrapper component
106
- *
104
+ *
107
105
  * @example
108
106
  * const ButtonSlot = createSlotComponent<ButtonSlotProps>('button')
109
- *
107
+ *
110
108
  * <ButtonSlot slot={customSlot} {...props}>
111
109
  * Default content
112
110
  * </ButtonSlot>
@@ -414,8 +412,5 @@ export function useSlot<T>(
414
412
  props: T,
415
413
  fallback?: React.ReactNode
416
414
  ): React.ReactNode {
417
- return React.useMemo(
418
- () => renderSlot(slot, props, fallback),
419
- [slot, props, fallback]
420
- );
415
+ return React.useMemo(() => renderSlot(slot, props, fallback), [slot, props, fallback]);
421
416
  }
@@ -16,13 +16,10 @@ interface InteractiveDemoProps {
16
16
  children: React.ReactNode;
17
17
  }
18
18
 
19
- export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
20
- controls,
21
- children,
22
- }) => {
19
+ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({ controls, children }) => {
23
20
  const renderControl = (control: ControlOption, index: number) => {
24
21
  const baseId = `control-${index}`;
25
-
22
+
26
23
  switch (control.type) {
27
24
  case 'select':
28
25
  return (
@@ -33,10 +30,10 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
33
30
  <select
34
31
  id={baseId}
35
32
  value={control.value}
36
- onChange={(e) => control.onChange(e.target.value)}
33
+ onChange={e => control.onChange(e.target.value)}
37
34
  className="w-full px-3 py-2 border rounded-lg"
38
35
  >
39
- {control.options?.map((option) => (
36
+ {control.options?.map(option => (
40
37
  <option key={option} value={option}>
41
38
  {option}
42
39
  </option>
@@ -44,7 +41,7 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
44
41
  </select>
45
42
  </div>
46
43
  );
47
-
44
+
48
45
  case 'slider':
49
46
  return (
50
47
  <div key={baseId} className="mb-4">
@@ -58,12 +55,12 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
58
55
  max={control.max}
59
56
  step={control.step}
60
57
  value={control.value}
61
- onChange={(e) => control.onChange(Number(e.target.value))}
58
+ onChange={e => control.onChange(Number(e.target.value))}
62
59
  className="w-full"
63
60
  />
64
61
  </div>
65
62
  );
66
-
63
+
67
64
  case 'text':
68
65
  return (
69
66
  <div key={baseId} className="mb-4">
@@ -74,12 +71,12 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
74
71
  id={baseId}
75
72
  type="text"
76
73
  value={control.value}
77
- onChange={(e) => control.onChange(e.target.value)}
74
+ onChange={e => control.onChange(e.target.value)}
78
75
  className="w-full px-3 py-2 border rounded-lg"
79
76
  />
80
77
  </div>
81
78
  );
82
-
79
+
83
80
  case 'checkbox':
84
81
  return (
85
82
  <div key={baseId} className="mb-4">
@@ -87,14 +84,14 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
87
84
  <input
88
85
  type="checkbox"
89
86
  checked={control.value}
90
- onChange={(e) => control.onChange(e.target.checked)}
87
+ onChange={e => control.onChange(e.target.checked)}
91
88
  className="rounded"
92
89
  />
93
90
  <span className="text-sm font-medium">{control.label}</span>
94
91
  </label>
95
92
  </div>
96
93
  );
97
-
94
+
98
95
  default:
99
96
  return null;
100
97
  }
@@ -105,9 +102,7 @@ export const InteractiveDemo: React.FC<InteractiveDemoProps> = ({
105
102
  <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 mb-6">
106
103
  {controls.map(renderControl)}
107
104
  </div>
108
- <div className="border-t pt-6">
109
- {children}
110
- </div>
105
+ <div className="border-t pt-6">{children}</div>
111
106
  </div>
112
107
  );
113
- };
108
+ };
@@ -33,4 +33,4 @@ export const PreviewContainer: React.FC<PreviewContainerProps> = ({
33
33
  </div>
34
34
  </div>
35
35
  );
36
- };
36
+ };
@@ -12,10 +12,6 @@ export const VariantsGrid: React.FC<VariantsGridProps> = ({
12
12
  gap = 'gap-4',
13
13
  }) => {
14
14
  const gridClass = `grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-${columns} ${gap}`;
15
-
16
- return (
17
- <div className={gridClass}>
18
- {children}
19
- </div>
20
- );
21
- };
15
+
16
+ return <div className={gridClass}>{children}</div>;
17
+ };
@@ -1,3 +1,3 @@
1
1
  export { PreviewContainer } from './PreviewContainer';
2
2
  export { VariantsGrid } from './VariantsGrid';
3
- export { InteractiveDemo } from './InteractiveDemo';
3
+ export { InteractiveDemo } from './InteractiveDemo';