@shohojdhara/atomix 0.5.9 → 0.6.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@shohojdhara/atomix",
3
- "version": "0.5.9",
3
+ "version": "0.6.0",
4
4
  "description": "Atomix Design System - A modern component library for web applications",
5
5
  "type": "module",
6
6
  "sideEffects": [
package/src/lib/index.ts CHANGED
@@ -13,14 +13,60 @@ export const constants: typeof constantsImport = constantsImport;
13
13
  export const theme: typeof themeImport = themeImport;
14
14
 
15
15
  // NEW: Export individual modules for direct imports
16
- export * from './composables';
16
+ // Selectively export to avoid conflicts between modules
17
+
18
+ // Export non-conflicting items
17
19
  export * from './constants';
18
20
  export * from './constants/cssVariables';
19
21
  export * from './types';
20
22
  export * from './types/partProps';
21
23
  export * from './utils';
22
24
  export * from './utils/componentUtils';
23
- export * from './theme';
24
25
  export * from './patterns';
25
26
  export * from './hooks';
26
- export * from './config';
27
+
28
+ // Selectively export from composables (avoiding conflicting items)
29
+ export * from './composables/useAccordion';
30
+ export * from './composables/useBadge';
31
+ export * from './composables/useHero';
32
+ export * from './composables/useRiver';
33
+ export * from './composables/useSpinner';
34
+ export * from './composables/useNavbar';
35
+ export * from './composables/useSideMenu';
36
+ export * from './composables/useEdgePanel';
37
+ export * from './composables/useTodo';
38
+ export * from './composables/useForm';
39
+ export * from './composables/useFormGroup';
40
+ export * from './composables/useAtomixGlass';
41
+ export * from './composables/useInput';
42
+ export * from './composables/useRadio';
43
+ export * from './composables/useSelect';
44
+ export * from './composables/useTextarea';
45
+ export * from './composables/useResponsiveGlass';
46
+ export * from './composables/useResponsiveGlass.presets';
47
+ export * from './composables/useChartData';
48
+ export * from './composables/useChartScale';
49
+ export * from './composables/useChartInteraction';
50
+ export * from './composables/useLineChart';
51
+ export * from './composables/useBarChart';
52
+ export * from './composables/usePieChart';
53
+ export * from './composables/useBlock';
54
+
55
+ // Skip usePerformanceMonitor from composables to avoid conflict with theme version
56
+
57
+ // Selectively export from theme (including the conflicting items)
58
+ export * from './theme';
59
+
60
+ // Selectively export from config (excluding ValidationResult to avoid conflict)
61
+ export { validateConfiguration, printConfigReport, loadConfig, validateConfig, loadAtomixConfig, resolveConfigPath } from './config';
62
+ export { defineConfig, type AtomixConfig, type ThemeTokens, type ThemeDefinition,
63
+ type CSSThemeDefinition, type JSThemeDefinition, type ColorScale,
64
+ type PaletteColorOptions, type InteractiveEffectsConfig,
65
+ type OptimizationConfig, type VisualPolishConfig, type BuildConfig,
66
+ type RuntimeConfig, type IntegrationConfig, type PluginConfig,
67
+ type TokenProviderConfig, type TokenEngineConfig, type GeneratorConfig,
68
+ type DesignTokenCategory, type DesignTokenValue } from './config';
69
+
70
+ // Explicitly re-export ValidationResult from config to avoid conflict with theme
71
+ export type { ValidationResult } from './config/validator';
72
+ // But we keep the theme's PerformanceMetrics and usePerformanceMonitor to resolve conflicts
@@ -12,28 +12,31 @@
12
12
  display: grid;
13
13
  gap: masonry.$masonry-grid-gap;
14
14
  // Use auto-fit with minmax for responsive columns
15
- grid-template-columns: repeat(auto-fit, minmax(var(--atomix-masonry-min-column-width, 250px), 1fr));
16
-
15
+ grid-template-columns: repeat(
16
+ auto-fit,
17
+ minmax(var(--atomix-masonry-min-column-width, 250px), 1fr)
18
+ );
19
+
17
20
  // Mobile-first responsive adjustments
18
21
  @include mq.media-up('sm') {
19
22
  gap: masonry.$masonry-grid-gap-sm;
20
23
  }
21
-
24
+
22
25
  @include mq.media-up('md') {
23
26
  gap: masonry.$masonry-grid-gap;
24
27
  }
25
-
28
+
26
29
  @include mq.media-up('lg') {
27
30
  gap: masonry.$masonry-grid-gap-lg;
28
31
  }
29
-
32
+
30
33
  .o-masonry-grid__item {
31
34
  // CSS Grid items don't need position: absolute
32
35
  position: static;
33
36
  opacity: 1;
34
37
  visibility: visible;
35
38
  width: 100%;
36
-
39
+
37
40
  // Enhanced accessibility for CSS Grid
38
41
  &:focus {
39
42
  outline: masonry.$masonry-grid-focus-ring-width solid masonry.$masonry-grid-focus-ring-color;
@@ -64,10 +67,6 @@
64
67
  &--animate {
65
68
  .o-masonry-grid__item {
66
69
  transition: masonry.$masonry-grid-item-transition;
67
- // Modern CSS custom property for fine-grained animation control
68
- @supports (transition-behavior: allow-discrete) {
69
- transition-behavior: allow-discrete;
70
- }
71
70
  }
72
71
  }
73
72
 
@@ -77,16 +76,17 @@
77
76
  width: 100%;
78
77
  // Design system color tokens for background
79
78
  background-color: var(--#{config.$prefix}body-bg);
80
-
79
+
81
80
  // Enhanced focus states with design system tokens
82
81
  &:focus {
83
82
  outline: masonry.$masonry-grid-focus-ring-width solid masonry.$masonry-grid-focus-ring-color;
84
83
  outline-offset: masonry.$masonry-grid-focus-ring-offset;
85
84
  z-index: masonry.$masonry-grid-z-index-focus;
86
-
85
+
87
86
  // Subtle scale effect for better visual feedback
88
87
  transform: scale(1.02);
89
- transition: transform var(--#{config.$prefix}transition-duration-fast) var(--#{config.$prefix}transition-timing-base);
88
+ transition: transform var(--#{config.$prefix}transition-duration-fast)
89
+ var(--#{config.$prefix}transition-timing-base);
90
90
  }
91
91
 
92
92
  // High contrast mode support
@@ -100,17 +100,13 @@
100
100
  &:not([style*='position: absolute']) {
101
101
  opacity: 0;
102
102
  visibility: hidden;
103
- // Use CSS Custom Property for progressive enhancement
104
- @supports (view-transition-name: masonry-item) {
105
- view-transition-name: masonry-item;
106
- }
107
103
  }
108
104
  }
109
105
 
110
106
  // Loading states with modern design system colors
111
107
  &__item-loading {
112
108
  position: relative;
113
-
109
+
114
110
  &::before {
115
111
  content: '';
116
112
  position: absolute;
@@ -122,40 +118,24 @@
122
118
  background: var(--#{config.$prefix}gray-10);
123
119
  z-index: masonry.$masonry-grid-z-index-loading;
124
120
  border-radius: var(--#{config.$prefix}border-radius-sm);
125
-
126
- // Smooth fade-in animation
127
- animation: masonry-loading-fade-in 0.5s ease-out forwards;
121
+
122
+ // Simple fade-in
123
+ opacity: 0;
128
124
  }
129
125
 
130
126
  img {
131
127
  opacity: 0;
132
- // CSS @property for smoother opacity transitions
133
- @supports (property: opacity) and (animation-timeline: view()) {
134
- opacity: var(--masonry-img-opacity);
135
- @property --masonry-img-opacity {
136
- syntax: '<number>';
137
- inherits: false;
138
- initial-value: 0;
139
- }
140
- }
141
128
  }
142
129
  }
143
130
 
144
- // Enhanced loaded state with modern CSS features
131
+ // Loaded state
145
132
  &__item-loaded {
146
133
  img {
147
- // Modern CSS animation with design system tokens
148
- animation: masonry-item-fade-in masonry.$masonry-grid-item-animation-duration masonry.$masonry-grid-item-animation-timing forwards;
149
-
150
- // CSS @property for precise opacity control
151
- @supports (property: opacity) and (animation-timeline: view()) {
152
- opacity: var(--masonry-img-opacity);
153
- animation: masonry-item-fade-in-advanced masonry.$masonry-grid-item-animation-duration masonry.$masonry-grid-item-animation-timing forwards;
154
- }
134
+ opacity: 1;
155
135
  }
156
136
  }
157
137
 
158
- // Modern progressive loading indicator
138
+ // Simple loading indicator
159
139
  &--loading-images {
160
140
  position: relative;
161
141
 
@@ -172,7 +152,7 @@
172
152
  animation: masonry-spinner 0.8s linear infinite;
173
153
  z-index: masonry.$masonry-grid-z-index-loading;
174
154
  pointer-events: none;
175
-
155
+
176
156
  // Dark mode support
177
157
  @media (prefers-color-scheme: dark) {
178
158
  border-color: rgba(255, 255, 255, 0.1);
@@ -185,45 +165,11 @@
185
165
  @include mq.media-up('md') {
186
166
  min-height: masonry.$masonry-grid-min-height-desktop;
187
167
  }
168
+ }
188
169
 
189
- // Modern animations with CSS custom properties
190
- @keyframes masonry-spinner {
191
- to {
192
- transform: rotate(360deg);
193
- }
194
- }
195
-
196
- @keyframes masonry-loading-fade-in {
197
- from {
198
- opacity: 0;
199
- transform: scale(0.95);
200
- }
201
- to {
202
- opacity: 1;
203
- transform: scale(1);
204
- }
205
- }
206
-
207
- @keyframes masonry-item-fade-in {
208
- from {
209
- opacity: 0;
210
- transform: translateY(20px);
211
- }
212
- to {
213
- opacity: 1;
214
- transform: translateY(0);
215
- }
216
- }
217
-
218
- // Advanced animation with CSS @property for smooth transitions
219
- @keyframes masonry-item-fade-in-advanced {
220
- from {
221
- --masonry-img-opacity: 0;
222
- transform: translateY(20px) scale(0.95);
223
- }
224
- to {
225
- --masonry-img-opacity: 1;
226
- transform: translateY(0) scale(1);
227
- }
170
+ // Simple spinner animation
171
+ @keyframes masonry-spinner {
172
+ to {
173
+ transform: rotate(360deg);
228
174
  }
229
175
  }