@shohojdhara/atomix 0.4.7 → 0.4.9

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 (176) hide show
  1. package/atomix.config.ts +58 -1
  2. package/dist/atomix.css +172 -157
  3. package/dist/atomix.css.map +1 -1
  4. package/dist/atomix.min.css +4 -4
  5. package/dist/atomix.min.css.map +1 -1
  6. package/dist/charts.d.ts +33 -0
  7. package/dist/charts.js +1274 -164
  8. package/dist/charts.js.map +1 -1
  9. package/dist/core.d.ts +33 -10
  10. package/dist/core.js +1099 -83
  11. package/dist/core.js.map +1 -1
  12. package/dist/forms.d.ts +33 -0
  13. package/dist/forms.js +2106 -1050
  14. package/dist/forms.js.map +1 -1
  15. package/dist/heavy.d.ts +42 -1
  16. package/dist/heavy.js +1663 -638
  17. package/dist/heavy.js.map +1 -1
  18. package/dist/index.d.ts +442 -270
  19. package/dist/index.esm.js +1947 -680
  20. package/dist/index.esm.js.map +1 -1
  21. package/dist/index.js +1982 -712
  22. package/dist/index.js.map +1 -1
  23. package/dist/index.min.js +1 -1
  24. package/dist/index.min.js.map +1 -1
  25. package/package.json +6 -3
  26. package/scripts/atomix-cli.js +136 -1827
  27. package/scripts/cli/__tests__/basic.test.js +3 -2
  28. package/scripts/cli/__tests__/clean.test.js +278 -0
  29. package/scripts/cli/__tests__/component-validator.test.js +433 -0
  30. package/scripts/cli/__tests__/generator.test.js +613 -0
  31. package/scripts/cli/__tests__/glass-motion.test.js +256 -0
  32. package/scripts/cli/__tests__/integration.test.js +719 -108
  33. package/scripts/cli/__tests__/migrate.test.js +74 -0
  34. package/scripts/cli/__tests__/security.test.js +206 -0
  35. package/scripts/cli/__tests__/test-setup.js +3 -1
  36. package/scripts/cli/__tests__/theme-bridge.test.js +507 -0
  37. package/scripts/cli/__tests__/token-provider.test.js +361 -0
  38. package/scripts/cli/__tests__/utils.test.js +5 -5
  39. package/scripts/cli/commands/benchmark.js +105 -0
  40. package/scripts/cli/commands/build-theme.js +115 -0
  41. package/scripts/cli/commands/clean.js +109 -0
  42. package/scripts/cli/commands/doctor.js +88 -0
  43. package/scripts/cli/commands/generate.js +218 -0
  44. package/scripts/cli/commands/init.js +73 -0
  45. package/scripts/cli/commands/migrate.js +106 -0
  46. package/scripts/cli/commands/sync-tokens.js +206 -0
  47. package/scripts/cli/commands/theme-bridge.js +248 -0
  48. package/scripts/cli/commands/tokens.js +157 -0
  49. package/scripts/cli/commands/validate.js +194 -0
  50. package/scripts/cli/internal/ai-engine.js +156 -0
  51. package/scripts/cli/internal/compiler.js +114 -0
  52. package/scripts/cli/internal/component-validator.js +443 -0
  53. package/scripts/cli/internal/config-loader.js +162 -0
  54. package/scripts/cli/internal/filesystem.js +158 -0
  55. package/scripts/cli/internal/generator.js +430 -0
  56. package/scripts/cli/internal/glass-generator.js +398 -0
  57. package/scripts/cli/internal/hook-generator.js +369 -0
  58. package/scripts/cli/internal/hooks.js +61 -0
  59. package/scripts/cli/internal/itcss-generator.js +565 -0
  60. package/scripts/cli/internal/motion-generator.js +679 -0
  61. package/scripts/cli/internal/template-engine.js +301 -0
  62. package/scripts/cli/internal/theme-bridge.js +664 -0
  63. package/scripts/cli/internal/tokens/engine.js +122 -0
  64. package/scripts/cli/internal/tokens/provider.js +34 -0
  65. package/scripts/cli/internal/tokens/providers/figma.js +50 -0
  66. package/scripts/cli/internal/tokens/providers/style-dictionary.js +48 -0
  67. package/scripts/cli/internal/tokens/providers/w3c.js +48 -0
  68. package/scripts/cli/internal/tokens/token-provider.js +443 -0
  69. package/scripts/cli/internal/tokens/token-validator.js +513 -0
  70. package/scripts/cli/internal/validator.js +276 -0
  71. package/scripts/cli/internal/wizard.js +115 -0
  72. package/scripts/cli/mappings.js +23 -0
  73. package/scripts/cli/migration-tools.js +164 -94
  74. package/scripts/cli/plugins/style-dictionary.js +46 -0
  75. package/scripts/cli/templates/README.md +525 -95
  76. package/scripts/cli/templates/common-templates.js +40 -14
  77. package/scripts/cli/templates/components/react-component.ts +282 -0
  78. package/scripts/cli/templates/config/project-config.ts +112 -0
  79. package/scripts/cli/templates/hooks/use-component.ts +477 -0
  80. package/scripts/cli/templates/index.js +19 -4
  81. package/scripts/cli/templates/index.ts +171 -0
  82. package/scripts/cli/templates/next-templates.js +72 -0
  83. package/scripts/cli/templates/react-templates.js +70 -126
  84. package/scripts/cli/templates/scss-templates.js +35 -35
  85. package/scripts/cli/templates/stories/storybook-story.ts +241 -0
  86. package/scripts/cli/templates/styles/scss-component.ts +255 -0
  87. package/scripts/cli/templates/tests/vitest-test.ts +229 -0
  88. package/scripts/cli/templates/token-templates.js +337 -1
  89. package/scripts/cli/templates/tokens/token-generators.ts +1088 -0
  90. package/scripts/cli/templates/types/component-types.ts +145 -0
  91. package/scripts/cli/templates/utils/testing-utils.ts +144 -0
  92. package/scripts/cli/templates/vanilla-templates.js +39 -0
  93. package/scripts/cli/token-manager.js +8 -2
  94. package/scripts/cli/utils/cache-manager.js +240 -0
  95. package/scripts/cli/utils/detector.js +46 -0
  96. package/scripts/cli/utils/diagnostics.js +289 -0
  97. package/scripts/cli/utils/error.js +89 -0
  98. package/scripts/cli/utils/helpers.js +67 -0
  99. package/scripts/cli/utils/logger.js +75 -0
  100. package/scripts/cli/utils/security.js +302 -0
  101. package/scripts/cli/utils/telemetry.js +115 -0
  102. package/scripts/cli/utils/validation.js +37 -0
  103. package/scripts/cli/utils.js +28 -341
  104. package/src/components/Accordion/Accordion.stories.tsx +0 -18
  105. package/src/components/Accordion/Accordion.test.tsx +0 -17
  106. package/src/components/Accordion/Accordion.tsx +0 -4
  107. package/src/components/AtomixGlass/AtomixGlass.test.tsx +37 -3
  108. package/src/components/AtomixGlass/AtomixGlass.tsx +143 -31
  109. package/src/components/AtomixGlass/AtomixGlassContainer.tsx +129 -31
  110. package/src/components/AtomixGlass/PerformanceDashboard.tsx +219 -0
  111. package/src/components/AtomixGlass/README.md +25 -10
  112. package/src/components/AtomixGlass/__snapshots__/AtomixGlass.test.tsx.snap +216 -0
  113. package/src/components/AtomixGlass/animation-system.ts +578 -0
  114. package/src/components/AtomixGlass/shader-utils.ts +4 -1
  115. package/src/components/AtomixGlass/stories/Overview.stories.tsx +157 -6
  116. package/src/components/AtomixGlass/stories/Phase1-Animation.stories.tsx +653 -0
  117. package/src/components/AtomixGlass/stories/Phase1-Test.stories.tsx +95 -0
  118. package/src/components/AtomixGlass/stories/Playground.stories.tsx +51 -51
  119. package/src/components/AtomixGlass/stories/shared-components.tsx +6 -0
  120. package/src/components/Avatar/Avatar.tsx +1 -1
  121. package/src/components/Button/Button.stories.disabled-link.tsx +10 -0
  122. package/src/components/Button/Button.stories.tsx +10 -0
  123. package/src/components/Button/Button.test.tsx +16 -11
  124. package/src/components/Button/Button.tsx +4 -4
  125. package/src/components/Card/Card.tsx +1 -1
  126. package/src/components/Dropdown/Dropdown.tsx +12 -12
  127. package/src/components/Form/Select.tsx +62 -3
  128. package/src/components/Modal/Modal.tsx +14 -3
  129. package/src/components/Navigation/Navbar/Navbar.tsx +44 -0
  130. package/src/components/Slider/Slider.stories.tsx +3 -3
  131. package/src/components/Slider/Slider.tsx +38 -0
  132. package/src/components/Steps/Steps.tsx +3 -3
  133. package/src/components/Tabs/Tabs.tsx +77 -8
  134. package/src/components/Testimonial/Testimonial.tsx +1 -1
  135. package/src/components/TypedButton/TypedButton.stories.tsx +59 -0
  136. package/src/components/TypedButton/TypedButton.tsx +39 -0
  137. package/src/components/TypedButton/index.ts +2 -0
  138. package/src/components/VideoPlayer/VideoPlayer.tsx +11 -4
  139. package/src/lib/composables/index.ts +4 -7
  140. package/src/lib/composables/types.ts +45 -0
  141. package/src/lib/composables/useAccordion.ts +0 -7
  142. package/src/lib/composables/useAtomixGlass.ts +148 -6
  143. package/src/lib/composables/useAtomixGlassStyles.ts +9 -7
  144. package/src/lib/composables/useChartExport.ts +3 -13
  145. package/src/lib/composables/useDropdown.ts +66 -0
  146. package/src/lib/composables/useFocusTrap.ts +80 -0
  147. package/src/lib/composables/usePerformanceMonitor.ts +448 -0
  148. package/src/lib/composables/useResponsiveGlass.presets.ts +192 -0
  149. package/src/lib/composables/useResponsiveGlass.ts +441 -0
  150. package/src/lib/composables/useTooltip.ts +16 -0
  151. package/src/lib/composables/useTypedButton.ts +66 -0
  152. package/src/lib/config/index.ts +62 -5
  153. package/src/lib/constants/components.ts +62 -7
  154. package/src/lib/theme/devtools/__tests__/useHistory.test.tsx +150 -0
  155. package/src/lib/theme/tokens/centralized-tokens.ts +120 -0
  156. package/src/lib/theme/utils/__tests__/domUtils.test.ts +101 -0
  157. package/src/lib/types/components.ts +37 -11
  158. package/src/lib/types/glass.ts +35 -0
  159. package/src/lib/types/index.ts +1 -0
  160. package/src/lib/utils/displacement-generator.ts +1 -1
  161. package/src/styles/01-settings/_settings.testtypecheck.scss +53 -0
  162. package/src/styles/01-settings/_settings.typedbutton.scss +53 -0
  163. package/src/styles/06-components/_components.atomix-glass.scss +17 -21
  164. package/src/styles/06-components/_components.edge-panel.scss +1 -5
  165. package/src/styles/06-components/_components.modal.scss +1 -4
  166. package/src/styles/06-components/_components.navbar.scss +1 -1
  167. package/src/styles/06-components/_components.testbutton.scss +212 -0
  168. package/src/styles/06-components/_components.testtypecheck.scss +212 -0
  169. package/src/styles/06-components/_components.tooltip.scss +9 -5
  170. package/src/styles/06-components/_components.typedbutton.scss +212 -0
  171. package/src/styles/99-utilities/_index.scss +1 -0
  172. package/src/styles/99-utilities/_utilities.text.scss +1 -1
  173. package/src/styles/99-utilities/_utilities.touch-target.scss +36 -0
  174. package/scripts/cli/component-generator.js +0 -564
  175. package/scripts/cli/interactive-init.js +0 -357
  176. package/src/styles/06-components/old.chart.styles.scss +0 -2788
@@ -349,16 +349,12 @@
349
349
 
350
350
  // Glass Variant Styles
351
351
  .c-edge-panel--glass {
352
- position: absolute;
353
- z-index: unset;
354
-
355
352
  .c-edge-panel__container {
356
353
  background: transparent;
357
354
  box-shadow: none;
358
355
  overflow: hidden;
359
356
  border: none;
360
357
  padding: 0;
361
- z-index: unset;
362
358
  will-change: initial;
363
359
  transform: none !important;
364
360
  border-radius: inherit;
@@ -413,7 +409,7 @@
413
409
  $background-transparency-enable: true
414
410
  );
415
411
  animation: fadeIn 0.3s ease forwards;
416
- z-index: 0;
412
+ z-index: map.get($z-layers, 1);
417
413
 
418
414
  &.is-animating-out {
419
415
  animation: fadeOut 0.3s ease forwards;
@@ -44,10 +44,7 @@
44
44
  inset: 0;
45
45
  @include square(100%);
46
46
  display: none;
47
-
48
- &:not(.c-modal--glass) {
49
- z-index: map.get($z-layers, modal);
50
- }
47
+ z-index: map.get($z-layers, modal);
51
48
 
52
49
  &__backdrop {
53
50
  position: absolute;
@@ -252,7 +252,7 @@
252
252
  &--glass {
253
253
  position: relative;
254
254
  background-color: transparent;
255
- border-bottom: none;
255
+ @include dynamic-background(var(--#{$prefix}navbar-bg), $background-transparency-enable: true);
256
256
  }
257
257
 
258
258
  &--fixed-bottom {
@@ -0,0 +1,212 @@
1
+ // TestButton Component Styles
2
+ // Generated by Atomix CLI
3
+ // ITCSS Layer: Components
4
+ // =============================================================================
5
+
6
+ @use 'sass:map';
7
+ @use '../../01-settings/settings.testbutton' as *;
8
+ @use '../../02-tools/mixins' as *;
9
+ @use '../../02-tools/functions' as *;
10
+
11
+ // Base Component Class
12
+ // =============================================================================
13
+
14
+ .c-testbutton {
15
+ // Layout
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ gap: var(--testbutton-gap);
20
+
21
+ // Spacing
22
+ padding: var(--testbutton-padding-y) var(--testbutton-padding-x);
23
+
24
+ // Typography
25
+ font-size: var(--testbutton-font-size);
26
+ font-weight: var(--testbutton-font-weight);
27
+ line-height: var(--testbutton-line-height);
28
+
29
+ // Appearance
30
+ border-radius: var(--testbutton-radius);
31
+ border: none;
32
+ cursor: pointer;
33
+
34
+ // Transition
35
+ transition: all var(--atomix-duration-fast) var(--atomix-easing-smooth);
36
+
37
+ // Focus
38
+ &:focus-visible {
39
+ outline: none;
40
+ box-shadow: var(--testbutton-focus-ring);
41
+ }
42
+
43
+ // Disabled state
44
+ &:disabled {
45
+ opacity: var(--testbutton-disabled-opacity);
46
+ cursor: not-allowed;
47
+ pointer-events: none;
48
+ }
49
+ }
50
+
51
+ // Variants
52
+ // =============================================================================
53
+
54
+ @if true {
55
+ .c-testbutton--variant-primary {
56
+ background-color: var(--testbutton-primary);
57
+ color: var(--atomix-color-white);
58
+
59
+ &:hover:not(:disabled) {
60
+ background-color: var(--testbutton-primary-hover);
61
+ }
62
+
63
+ &:active:not(:disabled) {
64
+ background-color: var(--testbutton-primary-active);
65
+ }
66
+ }
67
+
68
+ .c-testbutton--variant-secondary {
69
+ background-color: var(--atomix-color-neutral-100);
70
+ color: var(--atomix-color-neutral-900);
71
+
72
+ &:hover:not(:disabled) {
73
+ background-color: var(--atomix-color-neutral-200);
74
+ }
75
+ }
76
+
77
+ .c-testbutton--variant-outline {
78
+ background-color: transparent;
79
+ border: 1px solid var(--atomix-color-neutral-300);
80
+ color: var(--atomix-color-neutral-700);
81
+
82
+ &:hover:not(:disabled) {
83
+ border-color: var(--atomix-color-neutral-400);
84
+ background-color: var(--atomix-color-neutral-50);
85
+ }
86
+ }
87
+ }
88
+
89
+ // Glassmorphism Variant
90
+ // =============================================================================
91
+
92
+ .c-testbutton--glass {
93
+ background: rgba(255, 255, 255, 0.1);
94
+ backdrop-filter: blur(10px) saturate(200%);
95
+ border: 1px solid rgba(255, 255, 255, 0.2);
96
+
97
+ @media (prefers-reduced-transparency: reduce) {
98
+ background: rgba(255, 255, 255, 0.8);
99
+ backdrop-filter: none;
100
+ }
101
+
102
+ &:hover:not(:disabled) {
103
+ background: rgba(255, 255, 255, 0.15);
104
+ }
105
+ }
106
+
107
+ // Animation Variants
108
+ // =============================================================================
109
+
110
+ @if true {
111
+ // Fade In Animation
112
+ .c-testbutton--animate-fade-in {
113
+ animation: atomix-fade-in var(--atomix-duration-base) var(--atomix-easing-smooth);
114
+ }
115
+
116
+ // Slide In Up Animation
117
+ .c-testbutton--animate-slide-in-up {
118
+ animation: atomix-slide-in-up var(--atomix-duration-slow) var(--atomix-easing-smooth);
119
+ }
120
+
121
+ // Scale In Animation
122
+ .c-testbutton--animate-scale-in {
123
+ animation: atomix-scale-in var(--atomix-duration-base) var(--atomix-easing-smooth);
124
+ }
125
+
126
+ // Pulse Animation (for loading states)
127
+ .c-testbutton--animate-pulse {
128
+ animation: atomix-pulse 2s var(--atomix-easing-smooth) infinite;
129
+ }
130
+
131
+ // Shimmer Animation (for skeleton loaders)
132
+ .c-testbutton--animate-shimmer {
133
+ animation: atomix-shimmer 2s linear infinite;
134
+ background: linear-gradient(
135
+ 90deg,
136
+ var(--atomix-color-neutral-100) 0%,
137
+ var(--atomix-color-neutral-200) 50%,
138
+ var(--atomix-color-neutral-100) 100%
139
+ );
140
+ background-size: 200% 100%;
141
+ }
142
+ }
143
+
144
+ // Motion Preferences
145
+ // =============================================================================
146
+
147
+ @media (prefers-reduced-motion: reduce) {
148
+ .c-testbutton,
149
+ .c-testbutton * {
150
+ animation-duration: 0.01ms !important;
151
+ animation-iteration-count: 1 !important;
152
+ transition-duration: 0.01ms !important;
153
+ }
154
+ }
155
+
156
+ // Sizes
157
+ // =============================================================================
158
+
159
+ @if true {
160
+ .c-testbutton--size-sm {
161
+ padding: calc(var(--testbutton-padding-y) * 0.75) calc(var(--testbutton-padding-x) * 0.75);
162
+ font-size: var(--atomix-font-size-sm);
163
+ }
164
+
165
+ .c-testbutton--size-md {
166
+ // Default size - no overrides needed
167
+ }
168
+
169
+ .c-testbutton--size-lg {
170
+ padding: calc(var(--testbutton-padding-y) * 1.25) calc(var(--testbutton-padding-x) * 1.25);
171
+ font-size: var(--atomix-font-size-lg);
172
+ }
173
+ }
174
+
175
+ // States
176
+ // =============================================================================
177
+
178
+ @if true {
179
+ .c-testbutton--state-loading {
180
+ position: relative;
181
+ pointer-events: none;
182
+
183
+ &::after {
184
+ content: '';
185
+ position: absolute;
186
+ inset: 0;
187
+ background: rgba(255, 255, 255, 0.3);
188
+ backdrop-filter: blur(2px);
189
+ }
190
+ }
191
+
192
+ .c-testbutton--state-glass {
193
+ background-color: rgba(255, 255, 255, 0.1);
194
+ backdrop-filter: blur(10px);
195
+ border: 1px solid rgba(255, 255, 255, 0.2);
196
+ }
197
+ }
198
+
199
+ // Responsive Overrides
200
+ // =============================================================================
201
+
202
+ @include atomix-media-breakpoint-up(md) {
203
+ .c-testbutton {
204
+ // Tablet-specific adjustments if needed
205
+ }
206
+ }
207
+
208
+ @include atomix-media-breakpoint-up(lg) {
209
+ .c-testbutton {
210
+ // Desktop-specific adjustments if needed
211
+ }
212
+ }
@@ -0,0 +1,212 @@
1
+ // TestTypeCheck Component Styles
2
+ // Generated by Atomix CLI
3
+ // ITCSS Layer: Components
4
+ // =============================================================================
5
+
6
+ @use 'sass:map';
7
+ @use '../../01-settings/settings.testtypecheck' as *;
8
+ @use '../../02-tools/mixins' as *;
9
+ @use '../../02-tools/functions' as *;
10
+
11
+ // Base Component Class
12
+ // =============================================================================
13
+
14
+ .c-testtypecheck {
15
+ // Layout
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ gap: var(--testtypecheck-gap);
20
+
21
+ // Spacing
22
+ padding: var(--testtypecheck-padding-y) var(--testtypecheck-padding-x);
23
+
24
+ // Typography
25
+ font-size: var(--testtypecheck-font-size);
26
+ font-weight: var(--testtypecheck-font-weight);
27
+ line-height: var(--testtypecheck-line-height);
28
+
29
+ // Appearance
30
+ border-radius: var(--testtypecheck-radius);
31
+ border: none;
32
+ cursor: pointer;
33
+
34
+ // Transition
35
+ transition: all var(--atomix-duration-fast) var(--atomix-easing-smooth);
36
+
37
+ // Focus
38
+ &:focus-visible {
39
+ outline: none;
40
+ box-shadow: var(--testtypecheck-focus-ring);
41
+ }
42
+
43
+ // Disabled state
44
+ &:disabled {
45
+ opacity: var(--testtypecheck-disabled-opacity);
46
+ cursor: not-allowed;
47
+ pointer-events: none;
48
+ }
49
+ }
50
+
51
+ // Variants
52
+ // =============================================================================
53
+
54
+ @if true {
55
+ .c-testtypecheck--variant-primary {
56
+ background-color: var(--testtypecheck-primary);
57
+ color: var(--atomix-color-white);
58
+
59
+ &:hover:not(:disabled) {
60
+ background-color: var(--testtypecheck-primary-hover);
61
+ }
62
+
63
+ &:active:not(:disabled) {
64
+ background-color: var(--testtypecheck-primary-active);
65
+ }
66
+ }
67
+
68
+ .c-testtypecheck--variant-secondary {
69
+ background-color: var(--atomix-color-neutral-100);
70
+ color: var(--atomix-color-neutral-900);
71
+
72
+ &:hover:not(:disabled) {
73
+ background-color: var(--atomix-color-neutral-200);
74
+ }
75
+ }
76
+
77
+ .c-testtypecheck--variant-outline {
78
+ background-color: transparent;
79
+ border: 1px solid var(--atomix-color-neutral-300);
80
+ color: var(--atomix-color-neutral-700);
81
+
82
+ &:hover:not(:disabled) {
83
+ border-color: var(--atomix-color-neutral-400);
84
+ background-color: var(--atomix-color-neutral-50);
85
+ }
86
+ }
87
+ }
88
+
89
+ // Glassmorphism Variant
90
+ // =============================================================================
91
+
92
+ .c-testtypecheck--glass {
93
+ background: rgba(255, 255, 255, 0.1);
94
+ backdrop-filter: blur(10px) saturate(200%);
95
+ border: 1px solid rgba(255, 255, 255, 0.2);
96
+
97
+ @media (prefers-reduced-transparency: reduce) {
98
+ background: rgba(255, 255, 255, 0.8);
99
+ backdrop-filter: none;
100
+ }
101
+
102
+ &:hover:not(:disabled) {
103
+ background: rgba(255, 255, 255, 0.15);
104
+ }
105
+ }
106
+
107
+ // Animation Variants
108
+ // =============================================================================
109
+
110
+ @if true {
111
+ // Fade In Animation
112
+ .c-testtypecheck--animate-fade-in {
113
+ animation: atomix-fade-in var(--atomix-duration-base) var(--atomix-easing-smooth);
114
+ }
115
+
116
+ // Slide In Up Animation
117
+ .c-testtypecheck--animate-slide-in-up {
118
+ animation: atomix-slide-in-up var(--atomix-duration-slow) var(--atomix-easing-smooth);
119
+ }
120
+
121
+ // Scale In Animation
122
+ .c-testtypecheck--animate-scale-in {
123
+ animation: atomix-scale-in var(--atomix-duration-base) var(--atomix-easing-smooth);
124
+ }
125
+
126
+ // Pulse Animation (for loading states)
127
+ .c-testtypecheck--animate-pulse {
128
+ animation: atomix-pulse 2s var(--atomix-easing-smooth) infinite;
129
+ }
130
+
131
+ // Shimmer Animation (for skeleton loaders)
132
+ .c-testtypecheck--animate-shimmer {
133
+ animation: atomix-shimmer 2s linear infinite;
134
+ background: linear-gradient(
135
+ 90deg,
136
+ var(--atomix-color-neutral-100) 0%,
137
+ var(--atomix-color-neutral-200) 50%,
138
+ var(--atomix-color-neutral-100) 100%
139
+ );
140
+ background-size: 200% 100%;
141
+ }
142
+ }
143
+
144
+ // Motion Preferences
145
+ // =============================================================================
146
+
147
+ @media (prefers-reduced-motion: reduce) {
148
+ .c-testtypecheck,
149
+ .c-testtypecheck * {
150
+ animation-duration: 0.01ms !important;
151
+ animation-iteration-count: 1 !important;
152
+ transition-duration: 0.01ms !important;
153
+ }
154
+ }
155
+
156
+ // Sizes
157
+ // =============================================================================
158
+
159
+ @if true {
160
+ .c-testtypecheck--size-sm {
161
+ padding: calc(var(--testtypecheck-padding-y) * 0.75) calc(var(--testtypecheck-padding-x) * 0.75);
162
+ font-size: var(--atomix-font-size-sm);
163
+ }
164
+
165
+ .c-testtypecheck--size-md {
166
+ // Default size - no overrides needed
167
+ }
168
+
169
+ .c-testtypecheck--size-lg {
170
+ padding: calc(var(--testtypecheck-padding-y) * 1.25) calc(var(--testtypecheck-padding-x) * 1.25);
171
+ font-size: var(--atomix-font-size-lg);
172
+ }
173
+ }
174
+
175
+ // States
176
+ // =============================================================================
177
+
178
+ @if true {
179
+ .c-testtypecheck--state-loading {
180
+ position: relative;
181
+ pointer-events: none;
182
+
183
+ &::after {
184
+ content: '';
185
+ position: absolute;
186
+ inset: 0;
187
+ background: rgba(255, 255, 255, 0.3);
188
+ backdrop-filter: blur(2px);
189
+ }
190
+ }
191
+
192
+ .c-testtypecheck--state-glass {
193
+ background-color: rgba(255, 255, 255, 0.1);
194
+ backdrop-filter: blur(10px);
195
+ border: 1px solid rgba(255, 255, 255, 0.2);
196
+ }
197
+ }
198
+
199
+ // Responsive Overrides
200
+ // =============================================================================
201
+
202
+ @include atomix-media-breakpoint-up(md) {
203
+ .c-testtypecheck {
204
+ // Tablet-specific adjustments if needed
205
+ }
206
+ }
207
+
208
+ @include atomix-media-breakpoint-up(lg) {
209
+ .c-testtypecheck {
210
+ // Desktop-specific adjustments if needed
211
+ }
212
+ }
@@ -84,22 +84,26 @@
84
84
  }
85
85
 
86
86
  &--glass {
87
- z-index: unset;
88
87
  #{$root}__content {
89
88
  @include dynamic-background(
90
89
  var(--#{$prefix}tooltip-bg),
91
90
  $background-transparency-enable: true,
92
- $transparency: 0.4
91
+ $transparency: 0.3
93
92
  );
94
93
  }
95
94
  #{$root}__arrow {
96
95
  @include dynamic-background(
97
96
  var(--#{$prefix}tooltip-bg),
98
97
  $background-transparency-enable: true,
99
- $transparency: 0.4
98
+ $transparency: 0.3
99
+ );
100
+ }
101
+ #{$root}__arrow {
102
+ @include dynamic-background(
103
+ var(--#{$prefix}tooltip-bg),
104
+ $background-transparency-enable: true,
105
+ $transparency: 0.3
100
106
  );
101
- clip-path: polygon(0 100%, 100% 100%, 100% 0);
102
- backdrop-filter: var(--atomix-glass-container-backdrop);
103
107
  }
104
108
  }
105
109
  }
@@ -0,0 +1,212 @@
1
+ // TypedButton Component Styles
2
+ // Generated by Atomix CLI
3
+ // ITCSS Layer: Components
4
+ // =============================================================================
5
+
6
+ @use 'sass:map';
7
+ @use '../../01-settings/settings.typedbutton' as *;
8
+ @use '../../02-tools/mixins' as *;
9
+ @use '../../02-tools/functions' as *;
10
+
11
+ // Base Component Class
12
+ // =============================================================================
13
+
14
+ .c-typedbutton {
15
+ // Layout
16
+ display: inline-flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ gap: var(--typedbutton-gap);
20
+
21
+ // Spacing
22
+ padding: var(--typedbutton-padding-y) var(--typedbutton-padding-x);
23
+
24
+ // Typography
25
+ font-size: var(--typedbutton-font-size);
26
+ font-weight: var(--typedbutton-font-weight);
27
+ line-height: var(--typedbutton-line-height);
28
+
29
+ // Appearance
30
+ border-radius: var(--typedbutton-radius);
31
+ border: none;
32
+ cursor: pointer;
33
+
34
+ // Transition
35
+ transition: all var(--atomix-duration-fast) var(--atomix-easing-smooth);
36
+
37
+ // Focus
38
+ &:focus-visible {
39
+ outline: none;
40
+ box-shadow: var(--typedbutton-focus-ring);
41
+ }
42
+
43
+ // Disabled state
44
+ &:disabled {
45
+ opacity: var(--typedbutton-disabled-opacity);
46
+ cursor: not-allowed;
47
+ pointer-events: none;
48
+ }
49
+ }
50
+
51
+ // Variants
52
+ // =============================================================================
53
+
54
+ @if true {
55
+ .c-typedbutton--variant-primary {
56
+ background-color: var(--typedbutton-primary);
57
+ color: var(--atomix-color-white);
58
+
59
+ &:hover:not(:disabled) {
60
+ background-color: var(--typedbutton-primary-hover);
61
+ }
62
+
63
+ &:active:not(:disabled) {
64
+ background-color: var(--typedbutton-primary-active);
65
+ }
66
+ }
67
+
68
+ .c-typedbutton--variant-secondary {
69
+ background-color: var(--atomix-color-neutral-100);
70
+ color: var(--atomix-color-neutral-900);
71
+
72
+ &:hover:not(:disabled) {
73
+ background-color: var(--atomix-color-neutral-200);
74
+ }
75
+ }
76
+
77
+ .c-typedbutton--variant-outline {
78
+ background-color: transparent;
79
+ border: 1px solid var(--atomix-color-neutral-300);
80
+ color: var(--atomix-color-neutral-700);
81
+
82
+ &:hover:not(:disabled) {
83
+ border-color: var(--atomix-color-neutral-400);
84
+ background-color: var(--atomix-color-neutral-50);
85
+ }
86
+ }
87
+ }
88
+
89
+ // Glassmorphism Variant
90
+ // =============================================================================
91
+
92
+ .c-typedbutton--glass {
93
+ background: rgba(255, 255, 255, 0.1);
94
+ backdrop-filter: blur(10px) saturate(200%);
95
+ border: 1px solid rgba(255, 255, 255, 0.2);
96
+
97
+ @media (prefers-reduced-transparency: reduce) {
98
+ background: rgba(255, 255, 255, 0.8);
99
+ backdrop-filter: none;
100
+ }
101
+
102
+ &:hover:not(:disabled) {
103
+ background: rgba(255, 255, 255, 0.15);
104
+ }
105
+ }
106
+
107
+ // Animation Variants
108
+ // =============================================================================
109
+
110
+ @if true {
111
+ // Fade In Animation
112
+ .c-typedbutton--animate-fade-in {
113
+ animation: atomix-fade-in var(--atomix-duration-base) var(--atomix-easing-smooth);
114
+ }
115
+
116
+ // Slide In Up Animation
117
+ .c-typedbutton--animate-slide-in-up {
118
+ animation: atomix-slide-in-up var(--atomix-duration-slow) var(--atomix-easing-smooth);
119
+ }
120
+
121
+ // Scale In Animation
122
+ .c-typedbutton--animate-scale-in {
123
+ animation: atomix-scale-in var(--atomix-duration-base) var(--atomix-easing-smooth);
124
+ }
125
+
126
+ // Pulse Animation (for loading states)
127
+ .c-typedbutton--animate-pulse {
128
+ animation: atomix-pulse 2s var(--atomix-easing-smooth) infinite;
129
+ }
130
+
131
+ // Shimmer Animation (for skeleton loaders)
132
+ .c-typedbutton--animate-shimmer {
133
+ animation: atomix-shimmer 2s linear infinite;
134
+ background: linear-gradient(
135
+ 90deg,
136
+ var(--atomix-color-neutral-100) 0%,
137
+ var(--atomix-color-neutral-200) 50%,
138
+ var(--atomix-color-neutral-100) 100%
139
+ );
140
+ background-size: 200% 100%;
141
+ }
142
+ }
143
+
144
+ // Motion Preferences
145
+ // =============================================================================
146
+
147
+ @media (prefers-reduced-motion: reduce) {
148
+ .c-typedbutton,
149
+ .c-typedbutton * {
150
+ animation-duration: 0.01ms !important;
151
+ animation-iteration-count: 1 !important;
152
+ transition-duration: 0.01ms !important;
153
+ }
154
+ }
155
+
156
+ // Sizes
157
+ // =============================================================================
158
+
159
+ @if true {
160
+ .c-typedbutton--size-sm {
161
+ padding: calc(var(--typedbutton-padding-y) * 0.75) calc(var(--typedbutton-padding-x) * 0.75);
162
+ font-size: var(--atomix-font-size-sm);
163
+ }
164
+
165
+ .c-typedbutton--size-md {
166
+ // Default size - no overrides needed
167
+ }
168
+
169
+ .c-typedbutton--size-lg {
170
+ padding: calc(var(--typedbutton-padding-y) * 1.25) calc(var(--typedbutton-padding-x) * 1.25);
171
+ font-size: var(--atomix-font-size-lg);
172
+ }
173
+ }
174
+
175
+ // States
176
+ // =============================================================================
177
+
178
+ @if true {
179
+ .c-typedbutton--state-loading {
180
+ position: relative;
181
+ pointer-events: none;
182
+
183
+ &::after {
184
+ content: '';
185
+ position: absolute;
186
+ inset: 0;
187
+ background: rgba(255, 255, 255, 0.3);
188
+ backdrop-filter: blur(2px);
189
+ }
190
+ }
191
+
192
+ .c-typedbutton--state-glass {
193
+ background-color: rgba(255, 255, 255, 0.1);
194
+ backdrop-filter: blur(10px);
195
+ border: 1px solid rgba(255, 255, 255, 0.2);
196
+ }
197
+ }
198
+
199
+ // Responsive Overrides
200
+ // =============================================================================
201
+
202
+ @include atomix-media-breakpoint-up(md) {
203
+ .c-typedbutton {
204
+ // Tablet-specific adjustments if needed
205
+ }
206
+ }
207
+
208
+ @include atomix-media-breakpoint-up(lg) {
209
+ .c-typedbutton {
210
+ // Desktop-specific adjustments if needed
211
+ }
212
+ }