@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/dist/atomix.css +2 -60
- package/dist/atomix.css.map +1 -1
- package/dist/atomix.min.css +1 -1
- package/dist/atomix.min.css.map +1 -1
- package/dist/atomix.umd.js +1 -1
- package/dist/atomix.umd.js.map +1 -1
- package/dist/atomix.umd.min.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.esm.js +42 -42
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +63 -64
- 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 +1 -1
- package/src/lib/index.ts +49 -3
- package/src/styles/05-objects/_objects.masonry-grid.scss +26 -80
package/package.json
CHANGED
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
|
|
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
|
-
|
|
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(
|
|
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)
|
|
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
|
-
//
|
|
127
|
-
|
|
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
|
-
//
|
|
131
|
+
// Loaded state
|
|
145
132
|
&__item-loaded {
|
|
146
133
|
img {
|
|
147
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
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
|
}
|